AMC-tp/dsh-work-buddy ↗★ 0

dsh-work-buddy

Pixel desk buddy for the DSH Web GUI that keeps a ledger of your turns: a boxy treaded robot that slacks off when idle, thinks and types while a turn runs, raises a hand when a choice is pending, throws confetti when the turn finishes, and reports completed turns plus token spend and estimated USD cost. 适合喜欢趣味交互并需要直观统计Token消耗与费用的用户。

パッケージ
dsh-work-buddy
互換性
未検証
バージョン
1.2.0
ライセンス
MIT
最終更新
2026/09/21

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:AMC-tp/dsh-work-buddy

ドキュメント

README 全文を読む ↗

dsh-work-buddy

DSH Web GUI 右下角的高密度像素机器人 —— 同时是一本产出账本。 一个原创的方脑袋履带机器人:闲时摸鱼、干活时思考/敲代码、等你做选择时举手提问、回合结束撒花,并把完成数、Token 消耗、估算费用记成账,按今日 / 本周 / 本月 / 年度汇总。

造型是原创的——同属「可爱方头履带机器人」这一通用原型,但刻意不是任何已有角色的复刻。

五个状态

状态小人触发条件(只读页面已公开的语义信号)
摸鱼中眼睛眯成缝,脚边一条鱼,头顶飘 z没有运行中的工具、也没有流式输出
思考中举起右臂,右上角冒思考气泡[data-streaming] 存在
写代码面前一台笔记本,双手搭在键盘上,屏幕光标闪动[data-tool][data-state="running"] 存在
等你选择睁大眼睛,左上角粉色问号气泡(闪烁)ctx.uiSession.pendingInteractions 非空
完成!撒花双臂高举,四周落彩纸从忙碌回到空闲(忙够 0.9 秒才算一次)

鼠标移上去显示当前状态文字;点机器人展开账本。

账本

点击后面板第一行是今日的三项:

完成 12      Token 3.42M      费用 $1.07

Token 数字很大,所以以百万(M)为单位显示。第二行是本周同样的三项,点「展开 本月 / 年度」再多出两行和计价模型选择。

  • 完成数:由状态机自己数(MIN_BUSY_MS 防抖,回到空闲连续 3 个采样才记账)。

  • Token:来自会话的持久化计费投影 binding.session.projections.faceOf('tokenUsage'),四个桶 uncachedInputTokens / cacheReadTokens / cacheWriteTokens / outputTokens。 我们记录的是增量:每个会话记住上次读到的值,只把新增部分记进当天的账,所以同一天跨会话切换也不会重复计。

  • 费用:按官方 DeepSeek 价目表(USD / 百万 token)估算,含高峰/非高峰两档:

    模型非高峰 (input / cacheRead / output)高峰
    deepseek-v4-flash0.22 / 0.007 / 0.660.44 / 0.014 / 1.32
    deepseek-v4-pro0.66 / 0.022 / 1.981.32 / 0.044 / 3.96

    高峰窗口是 Asia/Shanghai 周一至周五 09:00–12:00 与 14:00–18:00。

    ⚠️ 这是估算,不是账单。 计价档位取的是「增量落账那一刻」的时间,而不是每次请求自己的时间戳——投影只带 turn/step,不带时间。持续工作时两者几乎一致,但批量补账会有偏差。要精确对账请用 @ychris12138/dsh-usage-stats。

所有数据存在浏览器 localStorage 的 dsh-work-buddy/ledger/v2,卸载插件不删账本;面板里的「清零」只清账本、保留结算基线。

关于清晰度

精灵画在一张 32×32 的一致网格上(没有大小块混用),画布 160px、image-rendering: pixelated,所以放大后边缘是硬像素而不是插值糊。天线顶灯的颜色随状态变:青=摸鱼、黄=思考、绿=写代码、粉=等你选择 / 撒花。想更大或更小改 lib/client.js 里的 SCALE(整数,5 = 160px)。

结构

  • lib/index.js —— host 半区,故意留空(这是纯浏览器端插件,但 loader 需要一行才能挂载)。
  • lib/client.js —— 浏览器半区,手写的 window.__ModuleLoader__.load({...}) 工厂,无构建步骤、无第三方依赖,只 get 官方客户端服务,不 require 任何外部模块。
  • cordis.patch.yml —— 往 profile 里插一行插件。

安装

dsh plugin --profile web add github:AMC-tp/dsh-work-buddy

或本地目录:

dsh plugin --profile web add link:D:\path\to\dsh-work-buddy

装完重启 dsh web。

卸载

dsh plugin --profile web remove dsh-work-buddy