前言¶
在 DeepSeek Harness(DSH)里开多个会话、连续调模型时,token 消耗和账单往往要另外打开官方用量页才能对照。社区里也有把用量做进侧栏的做法,但若只靠 session/list 的折叠投影,冷会话在首次折叠前可能从列表里漏计,今日总花费会偏低。下面介绍的 dsh-token-pill(维护者 ChrisZqaq)把「今日总花费 + 当前峰谷时段」收在侧边栏底部一枚胶囊里,悬停可展开明细;计价与汇总在宿主侧完成,客户端只负责展示。
这是什么¶
dsh-token-pill 是 DSH 社区目录中的客户端类插件(当前 GitHub 星标为 0)。它在侧边栏底部、用户名上方一行显示常态信息:当前峰谷时段与今日总花费;鼠标悬停展开(点击可钉住)缓存命中、按模型拆分、当前价目、下次变价时间与余额等明细。侧边栏收起时界面退化为一个圆点。
- 插件目录页:https://www.skillhub.cn/plugins/ChrisZqaq/dsh-token-pill
- 源码与说明:https://github.com/ChrisZqaq/dsh-token-pill
- 许可证:MIT(见仓库 README)
- 当前包版本:
0.2.2(见package.json)
社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行查阅源码与许可证,插件以当前 DSH 进程权限运行。
核心功能¶
侧栏胶囊与明细¶
装好后刷新页面即可看到胶囊。展开明细包括:缓存命中情况、按模型拆分、当前价目、下次变价时间、余额等(具体字段由宿主下发的视图与客户端渲染决定)。
计价规则(宿主侧)¶
数据来源为本机 Session 事件流里每条 assistant/message 自带的 usage,按事件发生的那一刻套用当刻 DeepSeek 价目(高峰全价、空闲半价)。
inputTokens:未命中输入;cacheReadTokens:缓存命中(与未命中价差约 30–50 倍);cacheWriteTokens计入未命中。- 模型取自
message.source.model,拿不到时回落到该请求的request/header。价表中没有的模型只统计 token、不计价,并在卡片里点名,不套用邻近模型价格。
价目(元 / 百万 tokens,高峰价)如下;空闲时段 = 高峰价 × 0.5。定价出处见 DeepSeek 定价页(README 注明 2026-11 核对)。
| 模型 | 缓存命中 | 未命中输入 | 输出 |
|---|---|---|---|
deepseek-flash |
0.04 | 2 | 8 |
deepseek-v4-pro |
0.30 | 9 | 27 |
架构要点¶
宿主注册 Session 投影 tokenPill,把每次响应按「本地日期 + 当刻峰谷」累加成按天账本,再汇总为跨会话的今日账本,通过同源路由 GET /dsh-token-pill/usage 交给客户端。客户端不读 RPC、不扫事件,价目只存在于 host/pricing.js,随响应下发。
为减少冷会话漏计,宿主使用 sessionQuery.observeSession() 逐个折叠(冷安全、首次读即落缓存),而不是仅依赖 session/list 里对冷会话可能尚未生成的投影缓存行。宿主只读本地事件,不联网、不外发;聚合结果在宿主内存中缓存 15 秒。投影保留最近 7 天,胶囊只读今天。
主要文件分工(摘自 README):
index.js 注册投影、暴露聚合路由
host/pricing.js 价目、峰谷规则、usage → 成本
host/projection.js 按天账本 + 折叠逻辑 + 下发给客户端的视图
host/usage.js 跨会话聚合(observeSession 冷安全读 + 15s 缓存)
client.js 胶囊、悬停卡、明细、余额
locale/*.json 槽位标题(多语言)
scripts/verify.mjs 离线自检
安装与启用¶
在 DSH 中通过插件面板或 plugin_manager 将本插件目录作为 bundle 安装(target 填插件目录的绝对路径):
plugin_manager({ action: 'install_bundle', target: '<绝对路径>/dsh-token-pill' })
安装后刷新页面,胶囊出现在侧边栏底部。package.json 中客户端配置为 platform: web、immediately: true,并注入 @deepseek-ai/dsh-api-remotes、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-sidebar 等依赖,需与当前 DSH 环境兼容。
典型用法¶
日常无需额外配置:打开 DSH 并刷新后即可在侧栏查看今日花费与峰谷。需要核对计价逻辑或改价表时,维护者将价目集中在 host/pricing.js,改后重装或热更新 bundle 视你的 DSH 插件机制而定。
开发或贡献前可在仓库根目录做离线自检(不依赖宿主、浏览器或网络):
node scripts/verify.mjs
自检覆盖槽位契约、双语字典键集、峰谷判定、价目换算、宿主账本折叠、跨会话聚合与客户端渲染兜底等。
适用场景与注意¶
适合:在本机 DSH 中长时间对话、希望侧栏一眼看到今日 token 花费与峰谷,并需要按模型与缓存命中拆开看的开发者。
局限(摘自 README「已知局限」):
- 节假日不建模:法定节假日 DeepSeek 按空闲计费,但日历每年变化;插件未写死节假日表,节假日高峰读数可能偏高(README 提到社区插件
dsh-board在此类场景亦有类似问题)。 - 金额为本机估算:官方用量在设置页 webview 中,数据不回流 JS,DSH 亦无账单接口;README 称实测与官方约差 0.4%,以官方账单为准。
- 只看本机会话:多设备/多客户端用量不包含在内。
- 仅保留近 7 天投影:历史用量需用官方用量页。
- 首次冷读略慢:冷会话第一次折叠需读日志(十几毫秒级),之后走缓存。
使用前请阅读仓库源码并确认 MIT 许可证与上述边界是否符合你的合规与准确性要求。
结尾¶
dsh-token-pill 把 DeepSeek 今日花费与峰谷收进侧栏一枚胶囊,用宿主侧 observeSession 聚合降低冷会话漏计风险,并把缓存命中与模型价目摊开给需要核对的人。目录与安装说明见 SkillHub 插件页,实现细节与自检脚本见 GitHub 仓库。