rikfish163-rgb/dsh-pets
Codex Pets 风格的桌面宠物 + DeepSeek Harness(DSH)Web UI 实时任务面板插件
项目介绍Project Overview
dsh-pets 是 DeepSeek Harness Web UI 插件,提供可拖拽的像素桌宠与全局悬浮任务面板。它通过精灵动画联动 Agent 状态(待命、工作、等待回答、完成、失败),面板展示进行中任务、已完成历史与待答提问,并支持角标提醒、深链跳转和自定义形象。适合想在任意页面实时监控 DSH 任务、及时响应提问的场景。注意:内置「噜噜」精灵图版权归 OpenAI,自行分发需合规。
dsh-pets is a DeepSeek Harness Web UI plugin that adds a draggable pixel desktop pet and a global floating task panel. The pet animates with Agent states (idle, working, waiting for input, done, failed), while the panel shows running jobs, completed history, and pending questions, with badge alerts, deep links, and custom pet images. Use it to monitor DSH tasks across pages and catch prompts without switching tabs. Caveat: the bundled "Lulu" sprite is OpenAI-copyrighted; redistribute carefully.
请帮我了解并安装插件:【dsh-pets】【https://github.com/rikfish163-rgb/dsh-pets】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add "github:rikfish163-rgb/dsh-pets"
把 rikfish163-rgb/dsh-pets 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
English · 简体中文
dsh-pets
Codex Pets 风格的 DeepSeek Harness(DSH)Web UI 插件:一个可拖拽的原创二次元像素桌宠 + 一个浮在任意页面上的实时任务面板。
- 🐾 桌面宠物:精灵图序列帧动画,状态随 Agent 联动(待命 / 思考 / 工作中 / 等你回答 / 已完成 / 失败)。
- 📋 任务面板:三个标签页——进行中(后台 Job + Goal + 子代理)、已完成(含重启后保留的历史记录)、等你回答(模型停下提问 / 等待审批时点亮)。
- 🔔 实时提醒:有等待你的提问时,宠物亮起红色角标、浏览器标签页标题显示
([N])。 - 🖱 任意页面悬浮:全局浮层(
shell.overlay),在任何页面都能点开浏览实时进度,无需切回会话页。 - 🔗 一键跳转:任务卡片展开可以看输出 tail / 详情,点「打开会话 →」深链直达对应会话窗口。
- ✨ 现代玻璃拟态 UI:面板使用毛玻璃、渐变与圆角卡片设计,并可将宠物和面板透明度调至 35%–100%。
- 🎨 自定义形象:可直接上传 PNG / WebP / GIF / JPG(最大 8MB),也可随时切回内置精灵图。
- 🚀 Web 快捷入口:面板底部可直达 DSH Web 首页、会话界面和插件管理。
灵感来源:OpenAI Codex Desktop 的 Pets 功能(Codex 会用一只桌面宠物展示正在运行 / 已完成的 Agent 任务,Agent 停下来等你回复时宠物会呼唤你)。本项目是面向 DSH 的同构实现,不依赖 Codex,也非官方项目。
预览
安装
要求:dsh web(DeepSeek Harness Web,Node ≥ 20)。
# 方式一:从 GitHub 安装
dsh plugin --profile web add "github:rikfish163-rgb/dsh-pets"
# 方式二:本地开发安装
dsh plugin --profile web link /path/to/dsh-pets
安装后重启 dsh web,右下角即出现宠物。管理面板:设置 → 插件。
使用
| 操作 | 效果 |
|---|---|
| 单击宠物 | 展开 / 收起任务面板 |
| 拖拽宠物 / 面板标题栏 | 移动位置(自动记住) |
| 双击宠物 | 重新播放当前动画 |
| 尺寸滑杆 | 调整宠物大小(64–280px) |
| 透明度滑杆 | 同步调整宠物与面板透明度(35%–100%,自动记住) |
| 上传宠物 | 选择 PNG / WebP / GIF / JPG 自定义桌宠图案 |
| 底部快捷入口 | 直达 Web 首页、会话和插件管理界面 |
| 任务卡片点击 | 展开详情 / 输出 tail,再点「打开会话 →」跳转 |
| 浏览器标签页 | 有提问等待时标题显示 ([N]) 角标 |
宠物动画状态含义:
| 状态 | 触发 |
|---|---|
| 待命(原地呼吸) | 无任务运行 |
| 思考(歪头) | ——(保留动画位) |
| 工作中(快速起伏) | 任意会话 running |
| 等你回答(招手) | 会话 pendingInteraction(提问 / 审批) |
| 完成(举手庆祝) | 有任务完成 |
| 失败(垂手) | 有任务失败 |
工作原理
插件由两半组成(与官方 dsh-client-ui-* 同构):
- 宿主半
lib/index.js(Cordis 插件):注册只读 JSON 路由GET /plugins/dsh-pets/tasks— 合并后台 Job、Goal、前台 Task、子代理及活跃/等待中的 Session,兼容不同 DSH 版本的可选服务形态。GET /plugins/dsh-pets/asks— 从ctx.sessions的pendingInteraction/ctx.userQuestions收集「等待你回答」。GET /dsh-pets-assets/lulu-spritesheet.webp— 打包的「噜噜」水豚精灵图(9 行 × 8 列)。GET /dsh-pets-assets/pet-sheet.png— 兜底的原创像素精灵图。- 已完成历史持久化到
~/.dsh/storages/dsh-pets.json(重启不丢失,最多 200 条)。
- 宿主半
lib/client.js(window.__ModuleLoader__客户端 bundle):通过ctx.slots.inject("shell.overlay")注册全局浮层,订阅sessions.liststore 做 Agent 状态联动,每 1.5s 轮询上述路由刷新面板。
所有服务访问均为可选探测(ctx.get + try/catch),某个服务不存在时优雅降级,不会拖垮宿主。
目录结构
dsh-pets/
├── assets/lulu-spritesheet.webp # 「噜噜」水豚精灵图(9 行 × 8 列,主图)
├── assets/lulu-pet.json # 噜噜的 Codex pet.json
├── assets/pet-sheet.png # 兜底原创像素精灵图(scripts/gen-pet.py 生成)
├── scripts/gen-pet.py # 精灵图生成脚本(Pillow)
├── lib/index.js # 宿主半:任务/提问路由 + 历史持久化
├── lib/client.js # 客户端半:宠物动画 + 任务面板浮层
├── cordis.patch.yml # bundle patch(激活插件的 loader 条目)
└── package.json # dsh.bundle.patch + dsh.client 声明
与原版 Codex Pets 的对比
| 维度 | Codex Desktop Pets | dsh-pets |
|---|---|---|
| 平台 | Codex Desktop 专属 | DeepSeek Harness Web(跨平台浏览器) |
| 任务来源 | Codex Agent / task 线程 | DSH 的 Job + Goal + 子代理 |
| 提问唤起 | Codex 停下来问问题时长鸣提醒 | 宠物招手 + 角标 + ([N]) 标题 |
| 跨页面浏览 | 桌面浮层 | 任意页面 shell.overlay 浮层 |
| 历史记录 | Codex 会话存档 | ~/.dsh/storages/dsh-pets.json |
二次开发
更换宠物形象:替换 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 重新生成)。
许可证
MIT。
⚠️ 素材版权说明:
assets/lulu-spritesheet.webp为 OpenAI Codex 官方宠物「噜噜」资产,由作者应发布者要求打包进本仓库。该图版权归 OpenAI 所有,如你自行分发请注意合规;assets/pet-sheet.png为脚本原创生成,可自由使用。
致谢
- 参考了 skr311/dsh-codex-pet(Codex 风格宠物 +
shell.overlay浮层)与 vlln/dsh-task-status(任务状态与输出 tail 路由)的实现模式。 - DSH 插件生态:见 awesome-dsh-plugin。
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS