dsh-pet
August 25, 2026 · View on GitHub
DeepSeek 桌宠(桌面置顶悬浮窗)——多宠物可切换,随 Harness 状态反应,支持自定义像素素材。
A floating desktop pet for DeepSeek Harness with switchable pixel pets and custom sprite support.
English version: README.en.md
功能特性
- 桌面置顶悬浮窗:透明、置顶、无边框、点击穿透、可拖动,漂浮在所有软件之上
- 11 只内置宠物:whale / dog / cat / pony / rabbit / pig / fox / panda / duck / bear / sheep
- 随 Harness 状态反应:
- 无活动 → 睡觉冒 Z
- 干活中 → 摆尾
- 干完活 → 冒爱心(点击消失)
- 需要你(提问 / 审批)→ 右上角红点
- 右键切换宠物(选择会被记住)
- 左键点击跳转到 Harness 页面(不新开标签、保持窗口大小)
- 支持自定义素材
安装
dsh plugin --profile web add link:/path/to/dsh-pet
然后重启 dsh --profile web。插件常驻:每次 web profile 启动都会自动拉起桌宠,重启不丢失。
如果暂时只想保留插件而不自动启动桌宠,可设置环境变量 DSH_PET_AUTOSTART=0。
桌宠默认低频重绘、后台轮询状态,只有点击宠物时才会切换前台窗口,避免影响 DSH 和其他应用。
使用
- 右键宠物 → 弹出菜单切换宠物
- 左键点击 → 跳转到 Harness 页面
- 拖动 → 换位置
自定义素材
把 你的宠物-frames.json 放进 ~/.dsh/pets/,并在 ~/.dsh/pets/palettes.json 里加一行调色板,右键菜单就会出现新宠物。
帧格式(<名字>-frames.json):
[
{ "name": "STANDARD", "w": 40, "h": 25, "rows": ["000...", "..."] },
"..."
]
6 帧:STANDARD / BLINK / WAG / THINK / LOVE / SLEEP。
调色板(palettes.json,6 色 = 描边 / 身体 / 强调 / 浅色 / 爱心 / Z):
{ "你的宠物": ["#203864", "#0066ff", "#b4c7e7", "#f2f2f2", "#cc3399", "#808080"] }
生成更多宠物素材
`assets/source/pipeline.py$ 能把「一张 2 \times 3 网格的宠物精灵图」自动分割成 6 帧 64 \times 40 像素画。它会先在整张图上找主体和效果,再按网格中心归属,允许角色稍微越过网格边界;相比旧的 40 \times 25 输出,能保留更多后来绘制的脸部和道具细节:
$``sh pip install pillow numpy python assets/source/pipeline.py --preserve-source-effects
默认会保留爱心、思考泡泡和 Z 等独立效果,同时去掉边缘背景和小噪点。需要只保留主体时可以使用 `--drop-effects`。背景和噪点参数也可调:`--background-tolerance 38 --min-component-area 96$。
\text{WAG} 第三帧会在 64 \times 40 网格里补上物种专属的小道具:狗叼骨头、猫玩毛线球、兔子拿胡萝卜、熊拿蜂蜜罐、熊猫拿竹子、羊戴铃铛、小马举花、狐狸拿橡果、猪拿苹果、鸭子划出水波;鲸鱼素材保持原样。\text{LOVE} 的爱心和 \text{SLEEP} 的 \text{Z} 特效仍由统一像素图案绘制,避免缩放后变成噪点。
生成结果在 $assets/source/sprites/`(`*-frames.json` + `palettes.json`),用 `python assets/source/verify.py` 校验尺寸、脚底对齐和碎片警告。想让新宠物成为「内置宠物」,把它的 `-frames.json` 和调色板合并进 `assets/source/sprites/` 即可。
## 目录结构
dsh-pet/ ├── lib/index.js # Host 插件(状态接口 + 自动拉起窗口) ├── package.json ├── cordis.patch.yml # 自动插入 dsh-pet 行 ├── README.md / README.en.md └── assets/ ├── pet-window.ps1 # 桌面置顶窗口(多宠物渲染) └── source/ # 素材源 ├── pipeline.py # 宠物图 → 像素帧 ├── verify.py # 帧数据校验 ├── *.png # 源图 └── sprites/ # 完整 sprites(frames.json + PNG 帧 + 调色板)
## License
BSD-3-Clause