Back to home

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,无声版)。

preview

特性

  • 🫁 待机呼吸:轻微缩放 + 左右摇摆的待机动画(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.jsdist/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

自定义

换素材 / 换形象

  1. 准备一张纯色背景的参考图,裁剪出「待机」和「张嘴尖叫」两个区域

  2. 生成带透明通道的精灵图:

    pip install pillow numpy
    python3 tools/make_sprites.py --input 你的图.png \
      --idle-box x0,y0,x1,y1 --scream-box x0,y0,x1,y1
    
  3. 重新构建发布产物:

    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