前言¶
在使用 DeepSeek Harness(DSH)做对话与开发时,界面通常是功能导向的:侧边栏、输入区、消息流,长时间盯着屏幕时缺少一点「人在场」的视觉反馈。有的在系统托盘或浏览器扩展里放桌面宠物,但和 DSH 会话界面是分离的;也有人用静态壁纸或小组件,无法随操作切换状态。
klein-cat-pet(npm 包名 dsh-klein-cat-pet)是面向 DSH 网页界面的客户端插件:一只落在界面右下角的黑猫,三种工作状态可点击切换,每态有独立 SVG 动效与 Web Audio 音效。它不是独立程序,必须先安装 DSH 桌面客户端,再通过插件机制加载。
这是什么¶
维护者 BeyondGu,分类为趣味换装。当前 Release 版本 0.1.2,代码以 MIT 许可开放;仓库在 GitHub 上星标为 0(以目录页与仓库公开信息为准)。
插件解决的是:在 DSH 网页壳层里增加可拖动、可隐藏、状态可记忆的装饰性宠物,不依赖外部录屏素材或网络音频文件,画面与音效均在浏览器端合成。
核心功能¶
三种工作状态¶
点击猫本体按固定顺序循环:努力工作中 → 累了 → 休息中 → 努力工作中,并播放对应状态音效。
| 状态 | 画面与动效要点 | 音效要点 |
|---|---|---|
| 努力工作中 | 端坐抬爪用黄水晶占卜,脚下暗金法阵;水晶发光、法阵旋转等 | 黄水晶占卜铃音 |
| 累了 | 趴下打瞌睡;呼吸起伏、Zzz 上浮 |
打呼噜(吸气 + 低频震颤) |
| 休息中 | 抱甜冰茶;吸管气泡、冰块晃动 | 吸吮 + 气泡 + 冰块轻碰 |
交互与持久化¶
- 单击猫:切换状态。
- 拖动猫:任意位置,位置会记住。
- 悬停猫:右上角小工具栏——静音 / 复位位置 / 隐藏。
- 侧边栏底部猫爪按钮:显示或隐藏宠物。
- 键盘:Tab 聚焦到猫后,Enter / 空格切换状态。
页面刷新、同源标签页切换时状态会保留;数据写在 localStorage["klein-cat-pet:v1"](含 state、百分比坐标、muted、visible)。系统开启「减少动态效果」时自动关闭循环动画。
实现挂载方式(便于排查)¶
插件通过 Cordis 补丁挂到 shell.overlay 浮层槽位,侧边栏入口为 sidebar.footer.action;浏览器半在 lib/client.js(React + 内联 SVG + CSS 动画 + Web Audio)。首次点击才创建 AudioContext,满足浏览器手势策略。
安装与启用¶
前提:已安装 DSH 桌面客户端(DeepSeek Harness)。desktop profile 由桌面应用独占管理,不能用 dsh plugin --profile desktop ... CLI,应走应用内插件页。
方式一 · DSH Desktop 插件页(推荐)¶
- 打开 DSH Desktop → 设置 → 插件。
- 在安装框填入仓库文档给出的规格:
github:BeyondGu/klein-cat-pet#v0.1.2
- 若不想走 Git,可从 Release v0.1.2 下载
dsh-klein-cat-pet-0.1.2.tgz;插件页若支持本地文件则直接安装。 - 装好后刷新页面(
Ctrl+R);右下角出现猫,侧边栏底部出现猫爪按钮。
文档明确:不要仅把包手动复制到 node_modules,那样不会写入 dsh.profile.bundles,界面上不会出现猫。
方式二 · 非 desktop profile / CLI¶
在 Windows 上示例(将路径替换为本机 DSH 安装目录与 profile 名):
# 本地 tarball(推荐)
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile <profile> add "<dsh-klein-cat-pet-0.1.2.tgz 的绝对路径>"
# 或直接装 git 源
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile <profile> add "github:BeyondGu/klein-cat-pet#v0.1.2"
<profile> 对应 %USERPROFILE%\.dsh\profiles\ 下的目录名;desktop 不适用此 CLI。
卸载¶
在 设置 → 插件 中移除 dsh-klein-cat-pet 或禁用即可。非 desktop profile 也可用 CLI:
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile <profile> remove dsh-klein-cat-pet
典型用法¶
安装并刷新后,默认宠物可见。若被隐藏,点侧边栏底部猫爪恢复。需要安静环境时,悬停猫 → 工具栏点静音;布局乱了可「复位位置」。
想快速对照三态画面而不启动完整 DSH 时,贡献者文档提供本地预览脚本(开发用,Node ≥ 22):
npm run preview
会在 tools/preview.html 生成静态预览页(该文件在 .gitignore 中,需本地执行生成)。
适用场景与注意¶
适合谁:已在用 DSH 桌面端、希望在会话界面内增加轻量趣味元素、且接受粉丝向二创视觉(礼帽、黄水晶、甜冰茶等为项目手绘 SVG,非官方立绘)的用户。
权限与信任:插件作为 DSH 客户端 bundle 注入网页壳层,与当前 DSH 进程同源运行;安装前应阅读仓库源码与 MIT 许可证,并知悉 README 中的 IP 声明——公开发布或上架前需自行评估 IP 风险。
已知限制(来自仓库说明,摘要):
- 音效为代码合成,非录音素材。
- 状态由用户点击切换,不自动跟随「AI 是否正在生成」。
- 宠物只在 DSH 界面内,不是系统级桌面悬浮窗。
- 若桌面端每次启动换端口(换 origin),
localStorage偏好可能重置。 - 兼容说明针对 DSH
0.2.2-rc.1客户端槽位契约;宿主升级后可能需要回归。
package.json 中 peerDependencies 要求 @deepseek-ai/dsh ^0.2.0。
结尾¶
klein-cat-pet 把三态动效、拖动记忆和侧边栏开关收进标准 DSH 客户端插件包,安装命令以 README 为准:github:BeyondGu/klein-cat-pet#v0.1.2 或 Release 的 .tgz。
- 社区目录页:https://www.skillhub.cn/plugins/BeyondGu/klein-cat-pet
- 源码与文档:https://github.com/BeyondGu/klein-cat-pet