klein-cat-pet:DSH 网页端三状态桌面宠物

前言

在使用 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 插件页(推荐)

  1. 打开 DSH Desktop → 设置 → 插件。
  2. 在安装框填入仓库文档给出的规格:
github:BeyondGu/klein-cat-pet#v0.1.2
  1. 若不想走 Git,可从 Release v0.1.2 下载 dsh-klein-cat-pet-0.1.2.tgz;插件页若支持本地文件则直接安装。
  2. 装好后刷新页面(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 风险。

已知限制(来自仓库说明,摘要):

  1. 音效为代码合成,非录音素材。
  2. 状态由用户点击切换,不自动跟随「AI 是否正在生成」。
  3. 宠物只在 DSH 界面内,不是系统级桌面悬浮窗。
  4. 若桌面端每次启动换端口(换 origin),localStorage 偏好可能重置。
  5. 兼容说明针对 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜