DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

zeheng723 /

zeheng723/dsh-medic-pet

Verified

DeepSeek Harness 本地用量桌宠:逐轮 token 用量气泡 + 按天养成的 Q 版战地医护,含本机统计、每日任务、勋章、久坐/喝水提醒与四套换装主题。不联网、不读凭据。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b3c9c841

蜂医桌宠 · 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 分钟;正在出活(静置 <150 秒)时不打扰
主题换装 橄榄 / 沙色 / 夜巡 / 医护白,只改夹克、裤子、胸挂、臂章配色,人物特征(发色、瞳色、肤色)不动
改名 面板里直接改桌宠名字(≤12 字),出现在标题与面板抬头
隐藏 收成一个角落小圆点(白/绿十字),点它或再按一次快捷键唤回;隐藏期间不弹提醒
快捷键 Alt+Shift+M 开/关面板 · Alt+Shift+B 气泡开关 · Alt+Shift+H 隐藏/唤回 · Esc 关面板
拖拽吸附 按住拖动,距任一边 ≤64 px 自动吸边;吸到左边时形象镜像翻转,气泡/面板始终朝画面内侧
两步重置 「重置全部」需要点两次确认(第二次按钮变成「确认重置?」),确认才清天数、统计与勋章;「清空今日」只清当天

明确不做

  • 不查询余额,不访问任何网络,不读取 DEEPSEEK_API_KEY / 登录态 / Cookie。
  • 不折叠原始会话事件:只消费 Host 已经接好的 tokenUsage / sessionStats 投影。
  • 不显示金额:没有官方单价依据,就不编造「花了多少钱」;「今日线」是 token 数,不是钱。
  • 不为了留存率造假:没有用量的一天就是没有成长——不补签、不倒计时、不发零;任务与勋章只认本机观察到的数字。

数据与持久化

浏览器 localStorage,插件自有键(全部只在本机):

  • dsh.medicPet.v2.settings → { size, bubble, theme, name, budget, breaks, water, hidden }
  • dsh.medicPet.v2.state → { daysUsed, streak, lastActiveDay, pos{x,y,edge}, today{day,input,output,cacheRead,cacheWrite,turns,pat,feed,pats,feeds,treats,salutes,chats,night,early,warned,quests}, history[{d,t,n}](≤60 天), totalIn, totalOut, totalCache, totalTurns, bestTurn, bestDay, bestDayKey, badges{id:时间戳}, counts{pats,feeds,treats,salutes,chats,nudges}, perfectDays, lastPerfectDay, sitStart, waterAt, lastNudgeAt }

字段是增量式加进来的:读到旧记录时缺什么补什么(history 补空数组、counts 补 0、非法值夹回范围),不会另开新键,也不会因为版本升级丢位置。

从 v1(按轮好感)升级时:v1 的好感数不折算成天数(量纲不同,折了就是编数据),只把「今天已经用过」记为第 1 天,同时保留位置与设置;v1 的键读取后不再写入。

首次装载只立基线、不追溯历史,所以刚打开页面时不会把整段会话累计算成「本轮」。 跨日自动重开今日桶;结算窗口内若又推进了几轮,今日轮数按实际推进的轮数记,气泡显示「近 N 轮」。 投影缺失(该页面没有 useProjection)时面板会直接说明,而不是显示假的 0。

装载位置

  • shell.overlay → 可见桌宠(根作用域浮动层,可拖拽,id: medic-pet,order: 900)。
  • conversation.composer.dock → 不可见用量桥(会话作用域,读投影后 return null,id: medic-pet.usage)。

两者共享一个模块闭包内的 store,经 useSyncExternalStore 更新;界面色只取 --dsw-alias-* 主题令牌, 字面色只用于画面本体,因此深色/浅色都跟随主题。inject: ['slots','locale'],仅 require('react')。

已知限制

  • 「今日累计」与所有统计只统计这个页面开着时观察到的轮次;刷新前、别的客户端里的消耗不在其中。
  • 同时打开多个会话时,各会话独立立基线、各自结算本轮增量;天数、今日累计与历史合并入账。
  • 一轮如果没有产生新的 token(增量为 0),不会计入轮数,也不会把当天算成活跃日。
  • 一天只在第一次观察到用量时记一次;同一天开多少个标签页都只算 1 天(共享同一个 localStorage 键)。
  • 历史柱状图按本地日期分桶,跨时区旅行或改系统时间会改变分桶结果(插件不做服务器校时)。
  • 提醒依赖标签页在前台被渲染:setInterval 在后台标签页会被浏览器降频,静置判定因此偏保守。
  • 挂件浮在框架最上层,拖到界面控件上会遮挡;吸边、隐藏或拖开即可。

安装

零运行时依赖,也没有构建步骤。装进你的 Harness profile:

1 · 让 DSH 助手装(最省事)

对你的 Harness 说一句:

用 plugin_manager 把 github:zeheng723/dsh-medic-pet 安装成 bundle(本地目录就给绝对路径),装完把结果告诉我。

它走的是 profile 自己的包管理器。Desktop profile 由应用独占管理,终端里的 dsh plugin 会被拒绝,所以别在命令行试这条路。

2 · 命令行(非 Desktop profile)

dsh plugin --profile <profile名> add github:zeheng723/dsh-medic-pet
dsh plugin --profile <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 或转发时请把两个文件一起保留。

—/ 5

No ratings yet

Verified DSH bundle

Commit b3c9c841123d

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout