持久化 provider 上报的 Token 用量统计,支持按会话、按模型和按日活跃度查看。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-token-usage-counter
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Mu-scorpio/token-usage-counter
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
为 DeepSeek Harness 提供持久、准确的 Token 用量统计。插件读取 provider
上报的真实用量,区分输入(未命中)、输入(命中)、缓存写入和输出,并提供
累计统计、今日数据、热力图、分模型统计以及 /tokens 命令。
功能
| 能力 | 说明 |
|---|---|
| 精确分桶 | 输入(未命中)、输入(命中)、缓存写入和输出保持独立。 |
| 持久化累计 | 数据写入 Harness 的 usage-stats settings 命名空间,重启不会归零。 |
| 多维统计 | 支持全局、会话、Provider / 模型三个维度。 |
| 今日数据 | 单独展示当前本地日的 Token 用量和调用次数。 |
| 动态热力图 | 根据容器宽度在 12–52 周之间调整,避免右侧留下大片空白。 |
| 悬停详情 | 悬停或键盘聚焦热力图单元格,查看日期、总 Token 和调用次数。 |
| 安全提交 | 只在成功消息确认后提交 usage-only chunk,避免失败请求和重试重复计数。 |
| 交互命令 | 挂载 commands 服务时提供 /tokens,随时查看累计摘要。 |
安装
推荐安装已经发布到 npm 的 DSH Bundle。下面的命令会把插件安装到 web
profile,并自动维护 profile 的 Bundle 列表:
dsh plugin --profile web add -w --config.auto-install-peers=false dsh-token-usage-counter
安装后可以先检查最终配置,再启动 Web:
dsh --profile web --dump-config
dsh web
-w 用于允许 pnpm 把包添加到 profile workspace;--config.auto-install-peers=false
用于避免 pnpm 试图从 npm 安装 Harness 内部提供的 peer 包。安装完成后,
dsh.profile.bundles 会自动加入该 Bundle,不需要再手写 cordis.patch.yml。
Bundle 内含 dsh.bundle manifest 和 cordis.patch.yml。安装时会禁用内置的
host-side usage-stats 累加器,再挂载本插件;这样两套累加逻辑不会同时写入
同一个 settings 命名空间。
Web 设置页的展示组件属于 Harness 自带的
ui-usage-stats,本插件提供的是 数据统计与持久化服务,不会重复安装一套前端页面。界面语言跟随 Harness 的 当前语言设置;本仓库默认 README 使用中文。
本地开发
直接使用 checkout 中的源码时,在仓库根目录执行:
dsh web --patch ./cordis.yml
或者在自己的 cordis.yml 中加入:
- id: usage-stats
disabled: true
- insert:
- id: token-usage-counter
name: './src/index.ts'
手动挂载时不要同时启用 @deepseek-ai/dsh-usage-stats,否则会产生 settings
命名空间冲突。
从源码构建
仓库提交了生成后的 lib/index.js,从 npm 或 GitHub 安装时不需要安装阶段的
构建授权。修改源码后,在仓库根目录执行:
pnpm install
pnpm build
统计规则
插件监听持久化的 session/event 事件流,并在加载时接管已经存在的会话。只有
成功完成的锚点才会提交用量:
assistant/message.usage只计入一次;compaction/summary.usage也会作为一次 provider 调用计入;- 单独的
assistant/chunk会等待匹配的assistant/message到达; - 同一个
(turn, step)同时出现 chunk 和最终消息时,以最终值替换早期样本; - 失败请求、重试请求和 fork 会话的种子历史不会重复计入。
因此页面展示的是已完成的 provider 工作量,而不是原始流事件数量。
API
插件提供 ctx.tokenUsageCounter:
ctx.tokenUsageCounter.getSummary()
ctx.tokenUsageCounter.getSession(sessionId)
ctx.tokenUsageCounter.getModel(provider, model)
ctx.tokenUsageCounter.formatSummary()
摘要包含全局、Provider / 模型、会话三个层级的统计。每个计数器都保留四个互不
重叠的 provider 用量分桶,以及 totalTokens 和 calls。
搜索关键词
DeepSeek Harness 插件 · DSH plugin · Token 用量统计 · Token analytics · LLM 用量分析 · AI 用量统计 · Prompt Cache 追踪 · 模型用量仪表盘 · 每日 Token 热力图 · TypeScript Cordis 插件 · 本地优先可观测性 · Provider Token 计费
相关链接
许可证
MIT
链接
同类插件
Ychris12138/dsh-usage-stats★ 43
多供应商用量看板:按供应商/模型统计 Token 与日期下钻,统一展示账户余额,并追踪 OpenCode Go / Z.ai 订阅额度。
Han-1413141/dsh-cost-meter★ 42
会话与当日 API 费用统计、预算图框(已用%)、官方余额、历史看板,支持峰谷计价与官方价格一键同步。
feibi-mochi/deepseek-harness-wallet★ 19
多供应商钱包标签:官方 DeepSeek 余额、本会话花费与 token、第三方合计 token、一键充值、低余额提醒。
zh667/TokenLedger★ 16
侧边栏用量面板:把 Token 归属到实际服务该请求的中转站,站点从已有的 provider 配置中读出,无需额外配置;含今日/本月/累计三窗口、按站点与模型下钻、一年活跃度热力图,以及 New API / Sub2API / DeepSeek 余额。
Ghost011118/dsh-balance-meter★ 15
输入框 dock 显示 DeepSeek 账户余额与会话花费,自动拉取官方定价,支持高峰/低谷计价。
Make0209/dsh-usage-stats★ 14
GitHub 风格用量热力图看板:按工作区统计使用次数与 Token 花费(含缓存命中率)、DeepSeek 账户余额查询、工作区别名管理。