DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Roccn /

Roccn/dsh-usage-footer

Verified

DeepSeek balance and burn-rate status strip for the DeepSeek Harness Web UI

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

dsh-usage-footer

一个给 DeepSeek Harness Web 界面加底部状态条的插件:余额、赠送额度、本次打开消耗、消耗速度(元/秒),无需改 DSH 本体。

状态条

在 DSH Web 窗口底部(shell.bottom 槽位)常驻一条状态条,顺序为:

↻ · 余额 · 赠送 · 本次打开消耗 · 消耗速度 · 最近刷新时间

安装

见 INSTALL.md。最省事的方式:在 Harness 里让 agent 用 plugin_manager 的 install_bundle,target 填 https://github.com/Roccn/dsh-usage-footer.git;装完按 Ctrl+R 刷新页面即可,不必重启应用。

  • ↻:手动刷新按钮,16×16 的圆角方框(0.5px 边框、4px 圆角、悬停时 12% 当前色填充),高度与 12px 正文的文字盒等高。点击后立刻重读余额并重新采样会话,按钮会短暂变淡表示进行中;也可用键盘 Enter / 空格触发。
  • 余额:DeepSeek 账户剩余额度与币种,来自已有的 account/getBalance Remote(与「设置 → 账户」同一数据源)。账户可能有多个币种钱包,按币种分别汇总后取总额最大的那个显示(符号随币种:CNY 用 ¥、USD 用 $);否则一个排在前面、余额为 0 的 CNY 钱包会把真实额度盖住,整条永远是 0。
  • 赠送:赠送钱包余额合计,> 0 时显示。
  • 本次打开消耗:打开本窗口时第一次读到的(充值余额 + 赠送余额)减去当前两者之和;充值显示为 +。因为 DeepSeek 抵扣先走赠送额度,只看充值余额会一直是 0——第一版就踩了这个坑。
  • 消耗速度:所有正在运行会话的 token 增量折算成人民币,单位 元/秒,取近 2 分钟平均。

消耗速度怎么算

  1. 每 5 秒调 session/list,只取 running === true 的会话,累加它们的整段日志 token 用量 (uncachedInputTokens / cacheReadTokens / cacheWriteTokens / outputTokens)。

  2. 与 2 分钟窗口内最早一次采样求差,得到 Δtoken / Δt。

  3. 按 deepseek-flash 单价折算(元 / 百万 tokens):

    时段 缓存命中输入 缓存未命中输入 输出
    高峰 0.04 2 8
    空闲 0.02 1 4

    高峰 = 北京时间周一至周五 9:00–12:00、14:00–18:00,其余为空闲。价格来源:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/。

  4. 如果账户钱包不是 CNY(例如 USD),用 CNY_PER_CURRENCY 里的汇率折算成钱包币种,使「消耗速度」与「余额」同为 $ 或同为 ¥。当前常量:USD = 6.67(中间市场汇率,2026-11-04 查自 wise.com)。汇率漂移后改 client.js 顶部这个常量即可。

「消耗速度」的悬浮提示:首行是「当前时段价格」,按系统时间取高峰价或空闲价,写成 每百万token(命中:X元 未命中:X元 输出:X元);非 CNY 账户会多一行折算说明;其后按会话拆分——正在运行的会话数,以及每个会话各自的元/秒与 tok/s;没有会话在跑时写明「当前没有正在运行的会话」。

已知口径限制:

  • 金额显示对齐 Platform Web 的规则:两位小数、千分位分组、正数按分截断(1.6999 显示 1.69,不是四舍五入的 1.70),负数四舍五入且最小 0.01,正数不足一分显示 <0.01。这样和「设置 → 账户」里的数字逐位一致。
  • cacheWriteTokens 按「未命中」单价计费(平台不单列缓存写入价)。
  • 中国法定节假日未建模,按高峰计价。
  • token 用量是按步上报的,所以速率是台阶式的,用 2 分钟窗口平滑;无运行会话时显示 ¥0.00。

刷新

  • 余额每 30 秒轮询;窗口获得焦点、页面可见性变化、hashchange 时立即刷新。
  • 消耗速度每 5 秒采样。
  • 余额没有推送接口,所以「实时」= 轮询,不是逐笔流水。
  • 基线存在 sessionStorage 的 dsh-usage-footer:<path+search+hash>(当前是 dsh-usage-footer:/),格式为 v2(同时记录充值余额与赠送余额)。sessionStorage 随窗口销毁:关闭应用再打开会从 0 重新计,页面内 Ctrl+R 刷新则保留当前计数。sessionStorage 不可用时退回内存基线。

安装状态

以 junction 形式装进 ~/.dsh/profiles/desktop/node_modules/@local/dsh-usage-footer, 并在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾追加:

- insert:
    - id: usage-footer
      name: "@local/dsh-usage-footer"

卸载

删除 cordis.patch.yml 末尾那段 insert,并删掉 node_modules/@local/dsh-usage-footer 链接。

注意

  • CLIENT_VERSION 硬编码为 0.2.1-rc.5,仅用于账户接口的客户端标识头;DSH 升级后如接口校验变严,需要同步改这个常量。
  • 客户端 inject 必须同时声明 remote 与 remote.account / remote.session:只写后者时访问 ctx.remote 会抛 cannot get property "remote" without inject,而桌面端 web boot 审计会把它当成致命错误,导致整个窗口打不开。
—/ 5

No ratings yet

Verified DSH bundle

Commit a19155a1a09b

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