DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Ai Worker — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
A

dsh-ai-worker

Ai Worker

DSH 界面右下角的像素风「AI 打工人」悬浮挂件:随当前会话状态切换「摸鱼中 / 思考中 / 敲代码中 / 等待确认 / 完成任务」,任务完成撒花并统计今日完成数。适用于 DeepSeek Harness 的像素风 AI 打工人挂件:实时反映会话状态(空闲 / 思考中 / 编码中 / 等待确认 / 完成),并在每项任务完成时庆祝。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:jiang-yang/dsh-ai-worker#65d9665fd7839625c0129dba445c7e1c908a9980
README兼容性版本
完成任务时的撒花五种状态

兼容性与来源证明

Ai Worker 以 dsh-ai-worker 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/10

版本

0.2.1stable
2026/10/10

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/12
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH 技能中心:按来源(bundled / project / user / custom / runtime)浏览已加载的技能,在 Web GUI 面板中启用或禁用、创建和删除技能。

README

AI 打工人 · DSH 客户端插件

一个挂在 DeepSeek Harness Web 界面右下角的像素风悬浮小挂件:一名坐在电脑前干活的 AI 员工,会随着当前会话的状态切换动作——摸鱼中、思考中、敲代码中、等待确认、完成任务。

  • 纯客户端插件(挂在 shell 的 shell.overlay 插槽上),不是独立网页,也不是 iframe
  • 全部图形由 DOM + CSS 关键帧绘制:没有外部图片、没有 CDN、没有网络请求、没有额外依赖
  • 颜色读取 DSH 自己的 --dsw-* 主题变量,因此自动跟随浅色/深色主题
  • 可拖动、可折叠成小头像、可关闭;关闭 / 折叠 / 位置 / 今日完成数都存在浏览器 localStorage,刷新与重启后仍然记得
  • 任务完成时播放撒花动画,并把「今日完成 N 件」计数加一(跨天自动归零)

状态怎么来的

状态不是随机动画,而是从会话数据推导出来的:

显示触发条件
等待确认useSessionStatus 里当前会话的 pendingInteraction 非空
敲代码中当前会话 running,且行内 updatedAt(或本轮开始时间)在 2 秒内
思考中当前会话 running,但已经安静超过 2 秒(通常在推理)
完成任务会话从 running 变成非 running 的那一次跳变(计数 +1,撒花 7 秒)
摸鱼中空闲,且超过 45 秒没有任何动静
待命中没有选中任何会话

数据来源是两个 slot 标准属性(standardProps):

  • useSessions——会话列表快照 { ids, byId, phase, projectionsBySession };
  • useSessionStatus——实时状态表 Map<sessionId, { running, pendingInteraction, completionUnread }>, 由宿主通过 api-session/status 事件推送,是唯一会在一个回合进行中变化的状态源。

「当前会话」由 byId 中 retainedBy.mainView > 0 的那一行推导(DSH 侧边栏也这样找主会话), 宿主没有该字段时退回 current,再退回「列表里只有一个会话」。

交互

  • 拖动:按住标题栏拖动;也可以用键盘:聚焦标题栏后按方向键(按住 Shift 步长更大)
  • 再来个撒花:点一下挂件本体(小人的画面区),或聚焦它之后按 Enter / 空格。纯动画,不计入「今日完成」
  • 折叠:点标题栏右侧 —,或按 Esc,变成右下角小头像(右上角有今日完成数角标);点小头像展开
  • 关闭:点 ✕,关闭状态会记住,下次打开 DSH 不再出现
  • 重新打开:清除 localStorage 里的 dsh.aiWorker.closed.v1 后刷新,或执行 localStorage.removeItem('dsh.aiWorker.closed.v1')

目录结构

plugins/dsh-ai-worker/
├── package.json              # 插件清单:dsh.bundle.patch / dsh.client / dshhub / peerDependencies
├── build.mjs                 # 打包脚本:把 src 包成浏览器加载的 client bundle
├── verify.mjs                # 离线自检:模拟浏览器加载并跑通所有状态
├── cordis.patch.yml          # 包自带的 bundle 补丁:装包即自动登记 ai-worker 行
├── install.sh / uninstall.sh # 安装 / 卸载:调用 dsh plugin add / remove
├── src/client/ai-worker.js   # 全部源码(唯一的源文件)
└── lib/
    ├── index.js              # node 侧(空实现,只为让 Loader 里有一行条目)
    └── client.js             # 构建产物,DSH 实际下发给浏览器的文件

构建、自检、安装

cd plugins/dsh-ai-worker
node build.mjs     # 重新生成 lib/client.js
node verify.mjs    # 离线自检(不需要浏览器)
bash install.sh    # dsh plugin add:装进 profile(默认 web,认 DSH_PROFILE / DSH_BIN)
DSH_PROFILE=desktop bash install.sh    # 指定目标 profile(桌面版 DSH 用 desktop)
bash uninstall.sh  # dsh plugin remove:从 profile 卸载(同样认 DSH_PROFILE / DSH_BIN)

改完 src/client/ai-worker.js 之后要重新 node build.mjs,然后刷新页面。

它是一个标准 DSH 插件

本包按 DSH 插件规范组织,装进 profile 后自带装载条目,不需要手工改 profile 的 cordis.patch.yml:

文件 / 字段作用
cordis.patch.yml包自带的 bundle 补丁:- insert: - id: ai-worker, name: dsh-ai-worker
package.json → dsh.bundle.patch告诉 DSH:装这个包时自动应用上面那份补丁
package.json → dsh.client声明浏览器 bundle:platform: web,注入 layout / session,外部依赖 primitives
package.json → dsh.manifestVersionmanifest 格式版本,规范目前是 1
package.json → engines.dsh / engines.node兼容的 DSH / Node 区间。规范把运行时要求放在顶层 engines(与 engines.node 并列),并把 DSH 兼容性定义成声明式字段;dsh.engines 是被明确否决过的位置
package.json → peerDependencies宿主提供的 UI 包;三个都标了 optional,解析不到也能跑

install.sh 只是 DSH 官方 CLI 的一层包装:

dsh plugin --profile desktop add "$(pwd)"

它把包装进 profile 的 node_modules/ 并写进 dsh.profile.bundles;DSH 扫描到 dsh.client 声明后把 lib/client.js 作为浏览器 bundle 下发,浏览器里的 window.__ModuleLoader__ 拿到它,apply(ctx) 把挂件注册进 shell.overlay。

0.2.0 起不再使用「复制目录 + 手工登记 profile 的 cordis.patch.yml」那套老办法:两条路同时走会出现重复的 id: ai-worker,DSH 可能拒绝加载。

已知边界

  • 只挂在 DSH Web 界面;终端 TUI 没有这个插槽。
  • 「思考中 / 敲代码中」由会话活跃度推断:推理阶段没有工具事件,会话行会安静下来,因此用「running 且 2 秒内有无更新」来区分两者;宿主没有行时钟时退回本轮开始时间,都没有则视为刚开始。这是启发式,不是精确的模型状态。
  • 不再使用自造的 dshhub 块:显示名与简介由 README 和插件市场条目承载,宿主要求由 engines.dsh 承载——dshhub 不是 DSH manifest 规范字段,DSH 与插件市场都不读它。
  • 0.2.1 起改用宿主真正提供的 useSessionStatus:0.2.0 依赖的 useSessionPendingInteraction 与 jobsBySession 在当前 DSH 构建里并不存在,导致挂件此前永远停在「待命中」。
  • 折叠 / 关闭 / 位置按浏览器保存(localStorage),换浏览器或清缓存会重置。