theIsAdmin
dsh-marmot-pet
住在 DeepSeek Harness 网页里的土拨鼠桌宠:任务完成时转身尖叫「啊——!!!」(DSH cordis 动态插件)
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 17, 2026
- Updated
- Aug 17, 2026
Introduction
dsh-marmot-pet · 土拨鼠桌宠 🐹
一只住在 DeepSeek Harness 网页界面里的土拨鼠桌宠。 平时安安静静呼吸晃悠,你每完成一项任务,它就转身面向镜头尖叫:「啊——!!!」(经典土拨鼠 meme,无声版)。

特性
- 🫁 待机呼吸:轻微缩放 + 左右摇摆的待机动画(CSS keyframes,GPU 友好)
- 🖱️ 随意拖拽:Pointer Capture 拖拽,松手停在原地;单击 = 手动触发一次尖叫
- 📢 任务完成自动尖叫:监听 DSH 的
agent/status事件,Agent 每完成一轮回复,自动播放 2 秒尖叫动画 + 「啊——!!!」气泡 - 🌗 明暗主题自适应:气泡使用 DSH 主题变量,切换主题无需任何操作
- 📦 自包含:精灵图 base64 内嵌在发布产物里,不依赖本地文件路径
安装
需要 DeepSeek Harness 的 cordis 模式(动态插件能力)。在你的 DSH 会话里对 Agent 说:
帮我安装 https://github.com/theIsAdmin/dsh-marmot-pet 这个土拨鼠桌宠插件:读取仓库 dist/ 下的 marmot-pet.host.js 和 marmot-pet.client.js,用 cordis_define 定义(code.host / code.client 分别对应两个文件的内容),然后 cordis_run 运行。
或者手动操作:打开 dist/marmot-pet.host.js 和 dist/marmot-pet.client.js,把内容分别作为 code.host / code.client 调用 cordis_define,再 cordis_run。
动态插件只存在于当前 DSH 进程:重启后需要重新运行一次(把上面那句话再说一遍即可)。
使用
| 操作 | 效果 |
|---|---|
| 待着不动 | 呼吸 + 轻微摇摆 |
| 拖拽 | 移动到任意位置,松手停住 |
| 单击 | 立即尖叫一次(测试用) |
| Agent 完成一轮任务 | 自动尖叫(约 2 秒后恢复待机) |
想让它停下来:让 Agent 调用 cordis_stop;彻底移除用 cordis_undefine。
工作原理
- Host 半端:
ctx.on('agent/status', …)监听 Agent 状态,每转入idle(一轮任务完成)计数 +1;通过harness.handle提供scream-count/sprites两个包私有 RPC - Client 半端:注册到
shell.overlay全局悬浮 Slot,每秒轮询尖叫计数;拖拽用 Pointer Events +setPointerCapture;气泡颜色使用--dsw-alias-*主题变量 - 不含任何外部依赖,不需要额外 API key
自定义
换素材 / 换形象
-
准备一张纯色背景的参考图,裁剪出「待机」和「张嘴尖叫」两个区域
-
生成带透明通道的精灵图:
pip install pillow numpy python3 tools/make_sprites.py --input 你的图.png \ --idle-box x0,y0,x1,y1 --scream-box x0,y0,x1,y1 -
重新构建发布产物:
python3 tools/build.py
改大小 / 动画 / 文案
编辑 src/client.js:
- 大小:
.marmot-pet { width: 96px } - 气泡文案:搜索
啊——!!! - 尖叫时长:搜索
2000(毫秒)
改完运行 python3 tools/build.py 重新生成 dist/。
目录结构
assets/ 精灵图(idle.webp / scream.webp)与预览图
src/ 插件源码(host.js / client.js)
tools/ build.py 构建脚本、make_sprites.py 素材裁剪脚本
dist/ 可直接安装的自包含产物(由 build.py 生成,勿手改)
License
MIT © theIsAdmin