前言¶
用 DeepSeek Harness(DSH)跑任务时常见的问题是:后台 Job、Goal、子代理各跑各的,你切到别的页面干活,回头才发现某个会话早就停在提问或审批上,白等了半天。Codex Desktop 用一只桌面宠物解决这类问题——任务在跑时宠物有动作,Agent 停下来等你时宠物会提醒你。
dsh-pets 把这套交互搬到 DSH Web 上:一只可拖拽的二次元像素桌宠,加一个浮在任意页面上的实时任务面板。下面介绍它的功能、安装方式和工作原理。
这是什么¶
dsh-pets 是 rikfish163-rgb 维护的 DeepSeek Harness Web UI 插件(包名 @dsh-local/dsh-pets,版本 0.1.0,MIT 许可证),灵感来自 OpenAI Codex Desktop 的 Pets 功能,是面向 DSH 的同构实现——不依赖 Codex,也非官方项目。
它做两件事:一是桌宠,精灵图序列帧动画,状态随 Agent 联动(待命 / 思考 / 工作中 / 等你回答 / 已完成 / 失败);二是任务面板,浮在任意页面上,汇总进行中的任务和等待你回答的提问。
核心功能¶
任务面板¶
面板分三个标签页:
- 进行中:后台 Job + Goal + 子代理
- 已完成:历史记录重启后保留,最多 200 条
- 等你回答:模型停下提问或等待审批时点亮
任务卡片可展开查看输出 tail 和详情,点「打开会话 →」深链直达对应会话窗口。
提醒与全局浮层¶
有等待回答的提问时,宠物亮起红色角标,浏览器标签页标题显示 ([N])。插件通过 shell.overlay 注册全局浮层,在任何页面都能点开查看实时进度,不用切回会话页。
外观与自定义¶
- 玻璃拟态 UI:毛玻璃、渐变与圆角卡片,宠物和面板透明度可在 35%–100% 调节
- 自定义形象:上传 PNG / WebP / GIF / JPG(最大 8MB),可随时切回内置精灵图
- 宠物尺寸 64–280px 可调,位置与透明度自动记住
- 面板底部快捷入口直达 DSH Web 首页、会话界面和插件管理
安装与启用¶
要求 dsh web(DeepSeek Harness Web,Node ≥ 20)。从 GitHub 安装:
dsh plugin --profile web add "github:rikfish163-rgb/dsh-pets"
本地开发可以直接 link:
dsh plugin --profile web link /path/to/dsh-pets
安装后重启 dsh web,页面右下角即出现宠物。插件管理面板在「设置 → 插件」。客户端部分声明了 react ^18.2.0 的 peerDependencies。
典型用法¶
装好后按下面的顺序试一遍:
1、单击宠物展开任务面板,再点一次收起。
2、拖拽宠物或面板标题栏,挪到不碍事的位置,位置会自动记住。
3、双击宠物,重新播放当前动画。
4、用尺寸滑杆调整宠物大小(64–280px),透明度滑杆同步调整宠物与面板透明度(35%–100%)。
5、想换形象时上传 PNG / WebP / GIF / JPG,随时可切回内置精灵图。
6、跑任务时切到任意页面,从浮层看实时进度;点任务卡片展开详情 / 输出 tail,再点「打开会话 →」跳回会话。
7、有提问等待时,留意宠物的红色角标和浏览器标签页标题的 ([N])。
工作原理¶
插件由两半组成:
1、宿主半 lib/index.js(Cordis 插件),注册只读 JSON 路由:
GET /plugins/dsh-pets/tasks:合并后台 Job、Goal、前台 Task、子代理及 SessionGET /plugins/dsh-pets/asks:收集等待回答的提问- 精灵图资产路由:主图与兜底图各一条
- 已完成历史持久化到
~/.dsh/storages/dsh-pets.json,重启不丢失,最多 200 条
2、客户端半 lib/client.js:通过 ctx.slots.inject("shell.overlay") 注册全局浮层,订阅 sessions.list 做 Agent 状态联动,每 1.5s 轮询上述路由刷新面板。
所有服务访问均为可选探测(ctx.get + try/catch),某个服务不存在时优雅降级,不会拖垮宿主。
换一只宠物¶
想替换内置形象,需要替换 assets/lulu-spritesheet.webp:9 行状态序为 idle / run-right / run-left / wave / jump / failed / waiting / sprint / review,每帧 162×198。主图读不到时,插件自动回退到 assets/pet-sheet.png,这张图可用 scripts/gen-pet.py 重新生成。
适用场景与注意¶
适合同时跑多个后台任务、经常离开会话页的人——面板、角标和桌宠动作把「停下来等你」这件事主动推到眼前。
几点注意:
- 素材版权:
assets/lulu-spritesheet.webp是 OpenAI Codex 官方宠物「噜噜」的资产,版权归 OpenAI 所有,自行分发需注意合规;assets/pet-sheet.png为脚本原创生成,可自由使用。 - 插件以当前 dsh 进程的权限运行,安装前建议阅读源码、确认许可证(本项目为 MIT)再装。
- 环境要求:Node ≥ 20。
小结¶
dsh-pets 用一只桌宠加一个全局浮层,把分散在 Job、Goal、子代理和会话之间的任务状态聚到一处,客户端每 1.5s 轮询一次刷新。如果你的工作流里常有长任务在后台跑,可以装一个试试。
- GitHub:https://github.com/rikfish163-rgb/dsh-pets
- 社区插件目录(独立站点,非官方应用商店):https://www.skillhub.cn/plugins/rikfish163-rgb/dsh-pets