dsh-usage-widget:在 DSH 侧边栏查看余额与用量

前言

在 DeepSeek Harness(DSH)里跑会话时,token 会分散写在本地会话日志里,官方设置页能看到账号余额,但很难在对话界面一眼对照「今天用了多少、大概花了多少」。若要到平台用量页或自己翻日志,打断成本较高。

下面介绍社区插件 dsh-usage-widget(维护者 ZeroOT-Liu):在桌面端侧边栏左下角(Settings 上方)集中展示余额、今日与本月 token 消耗及按价目表推算的花费。插件归属「客户端」类,当前 GitHub 星标为 1;仓库与目录页见文末链接。

这是什么

dsh-usage-widget 是 DSH 的零依赖插件(MIT,package 版本 1.3.0)。宿主半边注册汇总 API 并做信任校验,客户端半边通过 sidebar.footer.action 在页脚渲染部件;不接触账号凭证,余额走官方账号服务 ctx.deepseekAccount.getBalance,与「设置 → 账号」同源。

用量与花费来自本机 $DSH_HOME/sessions/**/session.*.jsonl.zstd 中带 data.usage 的 assistant/message 事件;花费按 cordis.patch.yml 中的价目表与高峰/空闲时段规则推算,不是官方账单。

核心功能

收起与展开

收起时默认三行:余额、今日、本月。第一行示例形态为 余额 ¥5.83 · 赠送 ¥9.56(充值为主色、赠送为弱化色)。第二行以时段徽标开头(高峰时段 ×2 或 空闲时段)。侧边栏缩成 56px 窄栏时只显示图标,完整数值在悬停提示中。

悬停或点击可展开:余额、当前时段(含距切换倒计时)、今日明细(输入缓存命中/未命中、输出、推理 token)、按模型分组、本月累计、当前会话明细、更新时间与刷新按钮。

本月与时段计价

本月累计包含 tokens、花费、请求数、活跃天数与会话数。高峰时段为北京时间周一至周五 9:00–12:00、14:00–18:00,单价按配置的 peakMultiplier(默认 2)计算;其余时段(含周末)按空闲价。中国法定节假日不在规则内,节假日按高峰计价。

数据与性能

会话日志为多帧 Zstandard 容器;插件按帧边界增量读取,跳过未写完的尾帧,避免重复计数。README 记载:本机 15 个会话文件、约 2 万行首轮扫描约 0.3 秒,之后只读增量。

未配置单价的模型仍会统计 token,但不计入花费,展开面板会标注「未配置单价,未计入花费」。

安装与启用

推荐从 GitHub Release 安装(无需克隆仓库):

dsh plugin --profile desktop add "https://github.com/ZeroOT-Liu/dsh-usage-widget/releases/latest/download/dsh-usage-widget.tgz"

或从仓库安装:

dsh plugin --profile desktop add "github:ZeroOT-Liu/dsh-usage-widget"

两种方式会把 dsh-usage-widget 写入 profile 的 dsh.profile.bundles(~/.dsh/profiles/<profile>/package.json),对该 profile 的全部会话生效并跨重启保留。装好后刷新页面(Ctrl+R),让浏览器加载新的模块清单。

卸载:

dsh plugin --profile desktop remove dsh-usage-widget

若安装时出现 UNABLE_TO_VERIFY_LEAF_SIGNATURE / fetch failed(常见于 TLS 拦截代理),可让 Node 使用系统证书库:

NODE_OPTIONS="--use-system-ca" dsh plugin --profile desktop add "https://github.com/ZeroOT-Liu/dsh-usage-widget/releases/latest/download/dsh-usage-widget.tgz"

配置要点

配置写在 cordis.patch.yml 同名行;价格单位为「元 / 百万 tokens」,填空闲时段价格,高峰按 peakMultiplier 倍计。

字段 默认 说明
currency CNY 花费显示币种
refreshSeconds 30 部件轮询间隔
balanceRefreshSeconds 180 余额缓存时长
peakMultiplier 2 高峰单价倍数
keepDays 45 日志聚合保留天数
sessionsDir 自动 默认 $DSH_HOME/sessions,再退回 ~/.dsh/sessions
showMonth true 收起状态是否显示「本月」行
showWindow true 是否显示时段徽标与面板时段行
models DeepSeek 官方价 模型 → { cacheHit, cacheMiss, output }
aliases 见文件 历史/带日期模型名映射到计价键
allowHosts [] 除回环外允许访问汇总路由的主机名

官方调价后需自行更新 models,否则花费会与平台账单不一致。

典型用法

  1. 在 desktop profile 按上文命令安装并刷新页面。
  2. 登录 DeepSeek 账号后,页脚第一行显示余额;未登录时余额为「未登录」,用量与花费仍统计。
  3. 日常对话中看收起三行即可;需要核对模型分项或当前会话时展开面板,或点刷新立即重读日志。
  4. 若 profile 未组合官方账号插件(@deepseek-ai/dsh-deepseek-account-platform),余额处显示「账号服务不可用」,用量与花费照常。

本地开发可用 link: 指向工作目录,改代码后刷新即可,无需重装:

dsh plugin --profile desktop add "link:/绝对路径/dsh-usage-widget"

适用场景与注意

适合谁:长期在 DSH 桌面端跑会话、希望在侧边栏实时对照余额与今日/本月用量的开发者。

环境:DeepSeek Harness 桌面版(desktop profile,README 验证于 0.2.0-rc.2)。也可装在 web profile,前提是组合了官方账号插件。宿主需 Node ≥ 22.15(DSH 运行时为 Node 24)。部件依赖 profile 的 sessions、uiSession 判定当前会话。

安全:汇总路由 /api/dsh-usage-widget/summary 自行校验 Host(回环与 allowHosts)、拒绝跨站 Origin,仅允许 GET/HEAD。插件以当前 dsh 进程权限运行,安装前建议阅读源码与 MIT 许可证。

已知限制:

  • 花费为价目表推算的参考值,以平台用量页为准。
  • 「今日」按宿主本机时区划分。
  • 日志分批写入,显示可能落后一个批次(通常几秒);点刷新可立即重读。
  • keepDays 若低于 32,月初数据可能被清理,面板会提示本月早期数据可能不完整。

结尾

dsh-usage-widget 把账号余额与本地会话日志聚合到侧边栏页脚,减少在设置页、日志与平台之间来回切换。DeepSeek Harness 生态强调「一切皆插件」;社区目录为独立站点,与 DeepSeek/幻方无官方从属关系。

  • 目录页:https://www.skillhub.cn/plugins/ZeroOT-Liu/dsh-usage-widget
  • GitHub:https://github.com/ZeroOT-Liu/dsh-usage-widget
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜