dsh-session-usage-meter:在侧边栏会话悬浮卡片里看 Token 与预估成本

前言

在 DeepSeek Harness(DSH)里开多个会话时,模型调用会逐条产生 usage,但界面侧栏通常只显示会话标题,很难快速判断「这一条会话累计花了多少 Token、大致多少钱」。若要到后端或账单里对照,又和当前正在悬停的那条会话对不上号。

下面介绍维护者 limingwei-88 的客户端插件 dsh-session-usage-meter(npm 包名同插件名,当前版本 0.1.0,MIT 许可证):在侧边栏会话行的悬浮卡片里汇总该会话的累计 Token,并按可配置价格表给出人民币估算,数据只读当前会话已落盘事件,不额外发请求。

这是什么

dsh-session-usage-meter 是 DSH 的 Web 客户端插件,分类为客户端。Host 端(index.js)仅用于让 bundle 可被解析,不注册资源;实际 UI 在 client.js 中通过 ctx.slots.inject('sidebar.session.row.hover', ...) 注入区块。

它解决的是「按会话一眼看清用量与粗略成本」的问题,和在整个应用里做全局计费仪表盘不同:数字只在鼠标悬停该会话行时出现,且明确标注为估算而非账单。

核心功能

  1. 按会话汇总 usage
    对当前会话每个 assistant/message 事件上的 usage 求和,包含输入、输出、缓存命中(cacheRead)、缓存写入(cacheWrite)。

  2. 悬浮卡片展示
    一行摘要形如:12.4k Tokens · 估算 ¥0.0081;继续悬停可见分项明细。

  3. 内置价格表与本地覆盖
    默认价格在 client.js 的 DEFAULT_PRICES 中,按模型名匹配;匹配不到则用 default。可在浏览器 localStorage 写入 dsh-session-usage-meter.prices 覆盖,无需改代码或重新构建。

  4. 界面与主题
    跟随 DSH 主题,不单独引入配色;中英文文案随界面语言切换。

  5. 数据边界
    数据全部来自该会话自身的事件窗口,不把用量写回会话,也不发起额外 HTTP 请求。

安装与启用

安装前请自行查看 GitHub 仓库 源码与 MIT 许可证;插件随当前 dsh 进程与 Web 前端运行,权限与所用 profile 一致。

README 给出的安装方式如下(--profile web 为默认 Web profile;若本机用 Desktop 等其它 profile,请换成实际启动名,否则会装到别的 profile 里当前界面看不到):

# 从 npm 安装(发布后)
dsh plugin --profile web add dsh-session-usage-meter

# 从 GitHub 安装
dsh plugin --profile web add github:limingwei-88/dsh-session-usage-meter

# 从本地目录安装(开发调试)
dsh plugin --profile web add "C:\\path\\to\\dsh-session-usage-meter"

安装后重启 dsh 并刷新页面。dsh plugin ... add 只是把包加入 profile 依赖;bundle 挂载还需 dsh.bundle.patch 被 profile 选中。本包自带 cordis.patch.yml,在支持 dsh.bundle 的 DSH 版本上会自动登记。

运行环境要求(来自 package.json):Node >= 20。

典型用法

日常查看

  1. 完成安装并重启、刷新后,在侧边栏将鼠标移到目标会话行上。
  2. 在会话行悬浮卡片中查看累计 Token 与「估算 ¥…」;需要明细时保持悬停即可。

覆盖默认价格(人民币 / 每百万 Token)

默认字段含义与默认值:

字段 含义 默认值
input 输入(缓存未命中) 2
cacheRead 缓存命中 0.2
cacheWrite 缓存写入 2
output 输出 3

在浏览器控制台执行后刷新页面:

localStorage.setItem(
  'dsh-session-usage-meter.prices',
  JSON.stringify({ default: { input: 2, cacheRead: 0.2, cacheWrite: 2, output: 3 } })
)

可按模型名在 JSON 中增加与 DEFAULT_PRICES 相同的键,实现按模型区分单价;自定义 provider 下模型名对不上表项时会落到 default。

金额仅为估算:不含套餐折扣、阶梯计价、缓存策略差异,也不包含未被 usage 覆盖的消耗。

适用场景与注意

适合谁

  • 在 DSH Web 侧栏频繁切换会话、希望悬停即可对比各会话 Token 与粗略成本的开发者或智能体调试者。
  • 需要本地自定义单价、又不想动插件源码重新打包的场景。

已知限制(来自 README)

  • 只统计带 usage 的 assistant/message;早期历史或中断的调用可能没有 usage。
  • 悬浮卡片仅在悬停该会话行时挂载,没有常驻数字。
  • 价格按模型名精确匹配;陌生模型名走 default。

DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-session-usage-meter 把单会话 Token 汇总与人民币粗算放进侧栏会话行悬浮卡片,只读本地会话事件、可 localStorage 调价,适合边跑 Harness 边对照用量。安装与价格细节以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye