Back to home

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

图集由行号表达动作语义,例如 idlerunning-leftrunning-rightwavingjumpingfailedwaitingrunning。项目中的 convert_pet.py 会把 Codex WebP 图集转换为桌宠运行时使用的帧和清单。

推荐示例:DeepSeek 大肥鱼

  1. 下载或克隆 deepseek-fat-fish-codex-pet
  2. 找到仓库中的 spritesheet.webp
  3. 在 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。用户导入的宠物图集属于各自作者;使用第三方宠物前请遵守其仓库中的许可和声明。