SundustYc
dsh-pet
DSH Pet 是一个面向 DeepSeek Harness (DSH) 的持久化桌宠插件。它把 Codex 风格的动画桌宠接入 DSH 会话:不开 WebUI 也能查看工作状态、切换会话、发送消息,并处理工具审批。
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
DSH Pet
DSH Pet 是一个面向 DeepSeek Harness (DSH) 的持久化桌宠插件。它把 Codex 风格的动画桌宠接入 DSH 会话:不开 WebUI 也能查看工作状态、切换会话、发送消息,并处理工具审批。
项目不内置任何宠物资源。安装插件后需要自行安装一个兼容 Codex 格式的宠物图集;推荐尝试 deepseek-fat-fish-codex-pet。
特色
- 持久化 DSH 插件:通过标准 bundle 和
cordis.patch.yml安装,DSH 重启后自动加载,不需要每次重新安装动态插件。 - 轻量 WPF 桌宠:当前使用 PowerShell 5.1 + WPF,适合 Windows 桌面和 WSL/Windows 混合部署。
- 多会话状态:按工作区组织会话列表,显示 TOOL、ASSISTANT、APPROVAL 状态,并支持切换目标会话。
- 审批操作:待批准时,收起气泡和展开输入框都提供允许/拒绝入口;审批通过 Host 的官方响应通道转发,和 WebUI 同权。
- 液态玻璃界面:输出框、输入区、设置和会话列表采用统一的半透明玻璃视觉样式。
- 桌宠交互:支持拖拽、悬停动画、随机行走、归位、透明度/大小调节、固定位置和迷你气泡。
- Codex 宠物热切换:通过 WebUI 上传或
/pet upload导入图集,转换后可在设置中切换。 - 跨部署方式:支持 DSH 与 WPF 桌宠都在 Windows,也支持 DSH 在 WSL、WPF 在 Windows。
Electron 目录中的客户端代码仍保留作后续开发,但 Electron 模式目前尚未开发完成,暂时无法切换;当前仅提供 WPF 模式。
安装
plugin/ 是一个可直接安装的 DSH bundle。需要 Node.js、DSH,以及 WPF 所需的 Windows PowerShell 5.1。
在 WSL/Linux 中:
cd /path/to/dsh-pet
dsh plugin --profile web add ./plugin
在纯 Windows PowerShell 中:
cd C:\path\to\dsh-pet
dsh plugin --profile web add .\plugin
安装后重启 DSH。bundle 会自动写入 profile 的持久化插件列表;不要再手工向 profile 的 cordis.patch.yml 重复插入 dsh-pet。
安装宠物
本项目使用 Codex 宠物图集格式,不使用自定义的宠物格式。转换器支持:
- Codex V2:
1536×2288,8 列 × 11 行,单格192×208; - Codex V1:
1536×1872,8 列 × 9 行,单格192×208。
图集由行号表达动作语义,例如 idle、running-left、running-right、waving、jumping、failed、waiting 和 running。项目中的 convert_pet.py 会把 Codex WebP 图集转换为桌宠运行时使用的帧和清单。
推荐示例:DeepSeek 大肥鱼
- 下载或克隆 deepseek-fat-fish-codex-pet。
- 找到仓库中的
spritesheet.webp。 - 在 DSH WebUI 的“宠物”设置中上传该 WebP,上传完成后点击“使用”。
也可以使用 DSH 命令:
/pet upload /path/to/deepseek-fat-fish-codex-pet/spritesheet.webp
/pet list
/pet use <上传后显示的宠物 id>
Windows 下路径可以直接使用 Windows 路径;如果 DSH 运行在 WSL,请确保 DSH 能访问该文件,或直接使用 WebUI 文件选择器上传。这个仓库原本面向 Codex 的 .codex/pets 安装说明不等同于本插件的运行目录;对 DSH Pet,推荐通过 WebUI 上传或 /pet upload 导入。
上传图集需要 Python 3 与 Pillow:
python3 -m pip install Pillow
Windows 也可以使用:
py -3 -m pip install Pillow
首次安装插件而没有宠物时,Host 会保持等待状态,不会启动一个找不到资源的桌宠进程。上传并启用第一只宠物后,WPF 桌宠会启动。
常用操作
| 操作 | 入口 |
|---|---|
| 查看会话进度 | 宠物动画、输出框和收起气泡 |
| 发送消息 | 点击宠物展开,在输入框输入并回车 |
| 切换会话 | 输入框左下角的会话胶囊 |
| 处理审批 | 收起气泡或输入框右侧的允许/拒绝按钮 |
| 随机行走 | 右键菜单或桌宠设置 |
| 归位/重启/退出 | 右键菜单、桌宠设置或/pet restart、/pet stop |
| 管理宠物 | WebUI“宠物”设置,或/pet list、/pet use、/pet upload、/pet delete |
目录结构
dsh-pet/
├── plugin/ # 可安装的 DSH bundle
│ ├── package.json # bundle 清单
│ ├── cordis.patch.yml # 持久化插件行
│ ├── index.js # Host:路由、事件、进程和宠物注册表
│ ├── client.js # WebUI“宠物”设置页
│ ├── src/
│ │ ├── pet.ps1 # WPF 桌宠客户端
│ │ ├── convert_pet.py # Codex 图集转换器
│ │ └── dsh-plugin-*.js # 历史动态插件源码参考
│ ├── electron/ # 未完成、暂不可切换的 Electron 客户端
│ └── pets/ # 用户导入的宠物和 registry.json
├── docs/ARCHITECTURE.md # 技术架构
└── LICENSE # 项目代码许可证
更多 Host 路由、审批转发、状态轮询和跨 Windows/WSL 说明见 docs/ARCHITECTURE.md。
许可
项目代码采用 MIT 许可,见 LICENSE。用户导入的宠物图集属于各自作者;使用第三方宠物前请遵守其仓库中的许可和声明。