dsh-pets: Pixel Desktop Pet and Real-time Task Panel Plugin for DeepSeek Harness

前言

用 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、子代理及 Session
  • GET /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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye