dsh-medic-pet
Local-usage desk pet for DeepSeek Harness: an original chibi field-medic mascot (hand-drawn SVG, no official assets) that reports per-turn token usage, grows one step per day of real use, and adds local stats, daily goals, badges, sit/water reminders and outfit themes. No network, no credentials. 适合需要逐轮Token用量播报、本地数据统计及健康守护提醒,且注重隐私的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zeheng723/dsh-medic-pet蜂医桌宠 · dsh-medic-pet
DeepSeek Harness 插件:一只住在页面角落的养成系桌宠 —— Q 版战地医护形象 + 逐轮 token 用量播报 + 本机统计 / 每日任务 / 勋章 / 守护提醒,养成速度以天为单位。 它只读这张页面已经观察到的用量:不发网络、不读凭据、不查余额、不编造金额。

功能起点是社区挂件 dsh-whale-widget(桌面挂件 + 逐轮用量);形象、代码与玩法都是重画原创。
同人声明:形象以一张玩家社群表情包的人脸为风格参考(深色上扬短发、粗眉、蓝眼睛、下巴胡茬、浅灰绿上衣;那张照片本身不在仓库里,也没有被描摹进 SVG),装备部分沿用《三角洲行动》蜂医的气质与配色(黑色头戴耳机 + 绿色几何徽记、夹克、胸挂、胸口医疗包与三支针剂、腰间棱纹罐、深灰手套配青绿指节)。 画面全部由本插件用 SVG 路径手画,没有使用、内嵌或分发任何官方素材、立绘、照片或图片;不使用受保护的红十字标识(臂章与图标都是白/绿十字);包名
dsh-medic-pet与角色名称均为自定义,非官方产品。形象素材的补充声明单独放在NOTICE.md。
它能做什么
用量与养成
| 能力 | 说明 |
|---|---|
| 逐轮用量气泡 | 每轮回答结束后播报本轮 输入 / 输出(有缓存时追加缓存读、缓存写),延迟 700 ms 结算以等尾部用量落定 |
| 今日累计 | 按本地日期分桶累计,气泡与面板都标注「本页观察累计」,不谎称账号全量 |
| 养成(按天) | 当天观察到至少一轮用量 → 计入 1 天;累计天数决定阶段:新兵 0 → 见习医护 2 → 战地医护 5 → 高级医护 10 → 医护队长 20 天。相邻日期连着算「连续 N 天」 |
| 阶段装备 | 肩章 → 针剂架 + 悬停医疗无人机 → 腰间棱纹罐 + 绿十字臂章 → 光环 + 金色头带饰 |
| 情绪 | 刚有动静眯眼笑;两分钟无动静犯困(闭眼 + z);其余为待机,眉眼带一点「?」的困惑感 |
数据面板(齿轮里)
| 能力 | 说明 |
|---|---|
| 累计与峰值 | 本机累计 tokens / 轮数,单轮最高、单日最高(含日期) |
| 今日 vs 昨天 | 环比百分比;昨天没记录时直说「昨天没有记录」,不编基数 |
| 趋势柱状图 | 7 天 / 30 天切换,逐日本地观察量;只保留最近 60 天 |
| 阶段进度条 | 当前阶段内已走的天数与下一阶所需天数 |
| 复制统计 | 把本机统计(天数、累计、峰值、勋章、历史)以 JSON 写进剪贴板;剪贴板不可用时退化成可全选复制的文本框 |
玩法
| 能力 | 说明 |
|---|---|
| 每日任务 | 同一天目标由日期决定(不是随机):推进 N 轮(3/5/8)+ 用掉 M tokens(2万/5万/10万)+ 互动一次。三项齐 → 记 1 个「全勤日」 |
| 勋章 13 枚 | 第一天 / 连着三天 / 七日同行 / 十天 / 二十天 / 单轮破万 / 单日五万 / 累计百万 / 摸头五十 / 互动一百 / 三日全勤 + 事件两枚「夜班」(23:00–05:00 第一次用量)「起早」(05:00–07:00)。只由观察到的数字解锁,一旦拿到不回收 |
| 互动 5 种 | 摸头、补给(这两个每天各一次);分享、敬礼、搭话(可重复,搭话换一句情境台词)。只影响情绪、计数与勋章,永远不加成长值 |
| 情境台词 | 按当前时段(深夜/清晨/白天/夜里/收工)从台词池里挑一句,中英各一份 |
守护与外观
| 能力 | 说明 |
|---|---|
| 久坐提醒 | 连续在岗 ≥50 分钟且静置 ≥150 秒时提醒起身;真的离开过(≥5 分钟)就重新开始计时 |
| 喝水提醒 | 距上次 ≥45 分钟提醒补给一次 |
| 今日线(预算) | 预设 5万 / 10万 / 20万 / 50万 tokens,超过只提醒一次;— 为关闭。只是本地提示,不是余额、不是金额 |
| 提醒节流 | 两条提醒之间至少隔 20 分钟;正在出活(静置 用 plugin_manager 把 github:zeheng723/dsh-medic-pet 安装成 bundle(本地目录就给绝对路径),装完把结果告诉我。 |
它走的是 profile 自己的包管理器。Desktop profile 由应用独占管理,终端里的 dsh plugin 会被拒绝,所以别在命令行试这条路。
2 · 命令行(非 Desktop profile)
dsh plugin --profile
add github:zeheng723/dsh-medic-pet
dsh plugin --profile
add "C:\path\to\dsh-medic-pet" # 从本地 clone 装
3 · 装完之后:刷新一次 Harness 页面
客户端半在浏览器里注册槽位,pnpm run dev:web 没在跑时不会热更新;替换已在跑的包需要重启才会换掉 JS 模块世代。
刷新后角落就该出现这只桌宠 —— 齿轮里是面板,按住可以拖动,距边 64 px 内自动吸边。
数据只存在浏览器 localStorage 的插件自有键里,卸载插件不会自动清它们;想清空就用面板里的「重置全部」(两步确认),
或直接删键 dsh.medicPet.v2.state 与 dsh.medicPet.v2.settings。
开发自检
npm run check # node --check:client.js / index.js 语法
npm test # 无头冒烟 + 文案审计
npm run preview # 生成 preview.html / preview.svg 对照图(生成物已 gitignore)
npm run banner # 生成 docs/social-preview.png 的源页 banner.html(横幅成品已入库)
smoke.mjs用桩替换 React / DOM / localStorage / 定时器 /Date,因此在无浏览器环境下也能把「51 分钟后久坐提醒会响、20 分钟内不重复响」这类时间逻辑跑成真断言;覆盖装载、按天养成、v1 迁移、逐轮结算、统计/勋章/任务、主题落盘并重绘、隐藏态、导出的两条路径、拖拽吸附、快捷键、两步重置,最后遍历一遍全部按钮确认没有处理器抛异常。audit.mjs检查 ZH/EN 键数对齐、无重复、无缺键、无死键、{占位符}一致。- 更多约定见
CONTRIBUTING.md,尤其:不引入外部素材、不新增网络或凭据访问、界面色只用主题令牌、数据诚实优先于留存率。
许可
MIT。代码与形象用的手写 SVG 均为本仓库原创;形象只是借用玩家社群二创的气质参考,与相关游戏厂商无关联、未获授权,
MIT 授权只覆盖本仓库的原创代码与原创绘制,不覆盖任何第三方 IP —— 这段说明放在 NOTICE.md(LICENSE 保持纯 MIT 正文,
GitHub 才能把许可证识别成 MIT)。fork 或转发时请把两个文件一起保留。