DSH Hub
dsh-whale-girl-pet cover

yanzwzz/dsh-whale-girl-pet

dsh-whale-girl-pet

UIPlay33 GitHub stars· updated 2026-10-27

dsh-whale-girl-pet is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-whale-girl-pet

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-whale-girl-pet DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-whale-girl-pet.svg)](https://dshhub.dev/plugins/dsh-whale-girl-pet)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from yanzwzz/dsh-whale-girl-pet, cleaned of badges and images.

🐋 dsh-whale-girl-pet — DeepSeek 娘桌宠

一只住在 DeepSeek Harness Web 界面右下角的「Q 版蓝发鲸鱼女仆(DeepSeek 娘)」桌宠。 她会在你工作时敲键盘、摸鱼时偷懒、任务完成时庆祝,还能报今日 Token 消耗与花费、查天气、喂她吃「TOKEN 小鱼干」。


✨ 功能特色

🖥️ 工作链路(Agent 干活时全程陪伴)

场景动画
🟢 开工「开始工作」:变出悬浮电脑桌 → 站姿开敲
🔄 工作中轮播「认真工作 / 工作摸鱼 / 工作思考 / 摸鱼被抓」每 10.5s 随机切换
🎉 收工「工作结束」:伸懒腰 → 比耶庆祝
😤 忙时点击「工作被打扰」:惊到 → 嫌弃 → 继续干
⏰ 长任务超时「长时间工作看表」:看表叹气(阈值可调)

📊 任务完成统计气泡

每轮任务结束自动弹出多行排版,花费按 缓存命中 / 缓存未命中 / 输出 三桶分别列出:

任务完成啦!
用时 2分35秒
消耗 1.2M tokens
花费 ≈¥3.21
· 缓存命中 ≈¥0.28
· 缓存未命中 ≈¥0.02
· 输出 ≈¥2.91
  • 用量按 DeepSeek 官方价目估算,按每条用量的事件时间选档:跨换价、跨峰谷的一次任务也能算准
  • 峰谷:北京时间工作日 9:00-12:00、14:00-18:00 为高峰(空闲价的 2 倍),周末与中国法定节假日整天按空闲(lib/usage.js 的 CN_STATUTORY_HOLIDAYS,按国务院通知逐年扩表)
  • 2026-09-10 12:00 起 flash 系列调价:空闲 0.02 / 1 / 4(元每百万 tokens),高峰为其 2 倍;pro 维持现价
  • 缓存写入按未命中价计(对应官方 prompt_cache_miss_tokens)
  • 统计包含子代理会话

📈 数据看板 · 分时段花费(📊 按钮)

宠物侧边按钮组的第四枚按钮,点开是一块手写内联 SVG 看板(零图表依赖),回答「钱花在哪段时间」:

两种视图 × 两种指标

今日分时近 7 天
横轴今天已过去的每个北京小时最近 N 个北京日(N 可在设置面板调 1–30)
竖轴该小时花费 / token该天花费 / token
切换「花费 ↔ token」一键切换,右侧「⟳」手动刷新同左

图怎么读

  • 三桶堆叠柱:每根柱按「缓存命中(蓝)/ 缓存未命中(橙)/ 输出(紫)」分三段 → 一眼看出这段时间是"重输入"还是"重输出"
  • 结构化坐标:Y 轴 4 档刻度 + 网格线;柱顶数值只标最高的几根 + 当前格(token 视图 ≤12 格时全标),避免 24 格糊成一片
  • 高峰底纹:高峰计价时段(价 ×2)铺一层橙色底纹——柱色让给三桶,不再一身兼两职
  • 当前时段高亮:当前小时/今天加描边
  • 鼠标悬停任意柱有完整 tooltip:金额、token、三桶明细、调用次数、峰谷

汇总格(5 格)

近 24 小时 · 今日 · 均值 · 输入 · 输出

  • 均值:写"平均每小时 ¥0.14 / 平均每天 ¥6.84",跟随当前视图与指标自动切换,并对"屏幕上这批柱"取平均(不会出现图里 24 格、均值却按 7 天算的错位)
  • 缓存命中率:prompt 侧口径 cacheRead / (input + cacheWrite + cacheRead),直接回答"这段时间省不省"
  • 每格还带副行:tokens、调用次数、输出花费等

面板随手放

  • 默认尺寸 720×480、默认位置视口居中(视口更小则按 视口 − 24 自动收窄,不会顶到屏幕边)
  • 按住头部拖到任意位置;右下角拖拽缩放(300×200 起)
  • 位置与尺寸存 localStorage,刷新/重开都记得;双击头部恢复默认尺寸与居中
  • 记忆带版本号,改动默认值时会自动作废旧记忆,不会出现"新默认值被老记忆盖住"

数据从哪来

  • 实时:宿主侧 ctx.on('session/event') 增量折叠,每条事件 O(1),不轮询、不写盘
  • 历史:启动时用 sessionPersistence 补扫已落盘会话(含重启前的今天早上),面板底部显示"已补扫 N 个会话 · M 条事件"
  • 去重:两条路径共用「每会话已见 seq 集合 + 调用身份(message.id / seq)」双重去重,先来后到都不重复计数;重试按两次调用计费
  • 补扫失败只降级为"仅本次运行统计"并在面板底部说明,不影响其他功能
  • 只读接口:GET /api/whale-pet/usage(可选 ?hours=1..24&days=1..30),响应 no-store,约 10 KB

健壮性:弹层容器经 portalContainer() 校验(非真实 DOM 元素时退回内联渲染,避开 React #200),整个看板包在错误围栏里——看板自身出错只会显示错误文本,绝不会把桌宠打挂。

实现拆成三块:lib/usage-ledger.js(分时段账本,纯逻辑)、宿主路由 /api/whale-pet/usage、浏览器侧 client.js 内的 SVG 图表与布局 hook。

💰 余额 & 今日用量(💰 按钮)

余额 + 今日消耗 tokens + 今日花费(峰谷分开计费,并按命中/未命中/输出三桶拆分),调用官方余额接口。顺手播一段「翻钱包」动画,结果汇入头顶气泡。

账号登录也能查:配了 DEEPSEEK_API_KEY 时走官方 api.deepseek.com/user/balance(既有行为);没有 Key 或 Key 失效(401/网络失败)时自动回退到 DSH 登录账号的开放平台钱包(ctx.deepseekAccount.getBalance(),充值余额 + 赠金余额合计)。所以 DSH 只登录 DeepSeek 账号、不配 Key 也能正常显示余额;两条路都没有时气泡会同时提示"没配 Key / 没登录账号"。

今日花费 = 内部统计,含子代理会话与重启前的历史:数字取自分时段账本(实时折叠所有会话 + 启动/按需补扫已落盘会话),而不是"当前在线会话"。所以主会话派发出去的子代理(subagent)开销、以及进程重启前今天已经花掉的部分,都算在内。

💴 会话费用 pill(输入框下方)

与官方 token 用量 pill 同排显示本会话累计费用,点击展开明细弹层:缓存命中 / 缓存未命中 / 输出三桶金额、高峰与空闲各自累计、计价调用数,并带实时「谷 / 峰」徽标。金额与任务完成气泡、余额按钮共用同一套价目与计费口径(lib/usage.js 为唯一内核,whalePetCost 投影供浏览器读取)。

金额含子会话:whalePetCost 投影只折叠本条会话自己的日志,而子代理是独立会话,所以光靠投影会漏掉它们。宿主半侧按会话树(sessionPersistence 的 parentSession 血统)汇总后代会话的开销,经 GET /api/whale-pet/subtree-cost 提供给前端叠加;明细弹层里单列一行「子会话」。

…

Related plugins