在设置面板查看各模型每日词元消耗与趋势
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add GIN0076/dsh-token-usage该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 查看各模型词元消耗
- 按日周月统计
- 折线柱状图展示
README
由 DeepSeek 最新模型翻译生成📊 词元用量统计 · Token Usage for DSH
给 DeepSeek Harness 的设置面板装一块「油耗表」——每个模型每天 / 每周 / 每月烧掉多少 token,打开设置一眼看清。
License: MIT
DSH Plugin
Version
Zero Deps
Local Only
English · 简体中文
✨ 为什么需要它
DSH 很能干活,但它花了你多少 token?账户页只给余额,原始日志是一坨 JSONL——
现在,打开 设置 → 📊 词元用量,答案直接画在你面前:
┌───────────────────────────────────────────────────────────────┐
展开完整文档(README 剩余 1 节)
📊 词元用量统计 · Token Usage for DSH
给 DeepSeek Harness 的设置面板装一块「油耗表」——每个模型每天 / 每周 / 每月烧掉多少 token,打开设置一眼看清。
License: MIT
DSH Plugin
Version
Zero Deps
Local Only
English · 简体中文
✨ 为什么需要它
DSH 很能干活,但它花了你多少 token?账户页只给余额,原始日志是一坨 JSONL——
现在,打开 设置 → 📊 词元用量,答案直接画在你面前:
┌───────────────────────────────────────────────────────────────┐
│ 📊 词元用量统计 ( 日 | 周 | 月 ) [近 30 天 ▾] [↻ 重新统计] │ ├───────────────────────────────────────────────────────────────┤ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │ 总词元 🧮 │ │ 输入 ⬇️ │ │ 输出 ⬆️ │ │ 请求数 📞 │ │ │ │ 9.9 亿 │ │ 6.1 亿 │ │ 840 万 │ │ 947 │ │ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │ │ │ 📈 趋势折线图 ✦ 悬浮任意一天 → 当天各模型逐个拆开 │ │ 80M ┤ ╭─╮ │ │ 40M ┤ ╭──╮ ╭──╯ ╰──╮ ─── 合计 │ │ ┼───┴──┴──┴───────┴─── ─── alpha-chat │ │ 06-02 06-06 06-10 ─── beta-reason │ │ │ │ 🏆 模型排名柱状图 │ │ alpha-chat ████████████████░░░░ 62.4% │ │ beta-reason █████░░░░░░░░░░░░░░░ 31.8% │ │ gamma-mini ▍ 5.8% │ └───────────────────────────────────────────────────────────────┘
🖼️ 界面示意图(schematic)。实际渲染跟随 DSH 主题 token,明暗模式都好看。
🎯 功能一览
| 分组 | 能力 |
| 📅 粒度 | 日 / 周 / 月 一键切换——周一起始、自然月;只存日桶,切粒度零成本即时生效 |
| 🗓️ 时间自定义 | 预设(近 7 天 / 30 天 / 12 周 / 12 个月 / 全部)+ 自定义起止日期,任意范围出图 |
| 📈 折线图 | 合计粗线 + 每模型细线,悬浮十字线逐日拆明细,图例点击开关单个模型 |
| 🏆 柱状图 | 模型总量横向排名 + 占比%,一眼看出谁是吞金兽 💸 |
| 🔁 重新统计 | 一键全量重扫重建——幂等,水位防双计、防漏计 |
| 🛡 统计口径 | 脏数据 fail-closed 跳过、重试的请求照样计费、fork 继承不双计、compaction 也入账 |
🚀 安装
方式一 · GitHub 一键(推荐,DSH 标准通道)
dsh plugin --profile web add github:GIN0076/dsh-token-usage
方式二 · 克隆后本地安装(离线可用,本仓开发期实测通道)
git clone https://github.com/GIN0076/dsh-token-usage.git
然后在 DSH 执行 plugin_manager install_bundle,target 选克隆目录;或用 GUI 插件页 → 安装 Bundle。
(装完报 ambiguous-install?先 remove_bundle 再装即可——残留 link 的已知坑。)
装完 硬刷新页面(Ctrl+Shift+R)→ 打开 设置 → 📊 词元用量 🎉
卸载:plugin_manager remove_bundle → @local/token-usage —— 宿主零残留,数据目录可留可删。
🤔 它怎么工作
~/.dsh/sessions 会话日志(唯一事实源,只读) │ ① 实时折叠 session/event ② 启动回填(水位幂等,文件没变直接跳过) ▼ Host 半 ──▶ 日 × provider/model × 六桶计数 ──▶ storage-domain 持久化 │ (坏了也不慌:备份跳过 + 一键重建) ▼ /token-usage-rpc 🔒 连接鉴权 + 回环 Host + 同源 Origin 三重栅栏 ▼ 同源 fetch(数据不出本机) Client 半 ──▶ 设置面板分区 + 纯 SVG 双图(无图表库、无构建、零依赖)
明细口径(stats.js 纯函数,46 项夹具把关):
- ✅ 计入:assistant/message(含流内 usage)、assistant/attempt——重试也花钱!、compaction/summary
- 🏷️ 路由归属:消息自带 provider/model;尝试/压缩归最近一次请求头
- 🚫 跳过:非安全整数、负数、reasoning > output、total 与分桶矛盾的脏数据
- 🕐 时间桶落宿主本地时区;fork 继承前缀按 inheritedEventCount 截断——不算两遍祖先的账
🔒 隐私
- 只读本地:统计完全来自本机 ~/.dsh/sessions,绝不联网、绝不上传
- RPC 三重栅栏:连接鉴权(cookie)+ 回环 Host + 同源 Origin
- MIT 许可,无遥测、无账号、无后门
🧩 架构(给想改代码的你)
~/.dsh/sessions 会话日志(唯一事实源,只读) │ ① 实时:ctx.on('session/event') 折叠 post-commit 事件 │ ② 回填:sessionQuery.listSessions + readSession(水位幂等;字节未变快跳) ▼ Host 半 host.js
· storage-domain 域 token_usage(per-record + backup-and-skip;行键 path-safe base64url)
- daily:日 × provider/model × 六桶计数
- watermark:会话水位 { seq, route, bytes }
· /token-usage-rpc 精确路由(连接鉴权 + 回环 Host + 同源 Origin 三重栅栏)
- stats {granularity, fromDay, toDay} → 聚合(stats.js 纯函数)
- status → { backfill, rebuilding, storageOk, dataSpan }
- rebuild → 清空全量重扫(暂停折叠 + 缓冲补折防竞态) ▼ 同源 POST fetch Client 半 client.js(静态 bundle,__ModuleLoader__)
· settings.section 分区(id: token-usage, order: 50)
· 日/周/月分段 + 预设区间(近7天/30天/12周/12个月/全部/自定义起止日期)+ 重新统计
· 汇总卡 → 趋势折线图(合计粗线 + 每模型细线 + 悬浮十字线明细 + 图例开关)→ 模型排名柱状图
| 文件 | 职责 |
| stats.js | 纯聚合函数;node stats.fixtures.mjs 跑 46 项夹具(口径/去重/周月桶/自定义范围/滚算一致性) |
| host.js | Host 半:折叠、回填、重建、存储、RPC |
| client.js | Client 半:分区、控件、两张 SVG 图表 |
| cordis.patch.yml | bundle patch 行(相对文件符 ./host.js) |
| locale/{zh,en}.json | Plugin Manager 展示元数据;分区文案内联在 client.js |
🛠️ 开发者速查
| 想干什么 | 怎么做 |
| 改 Client 半(界面/图表) | 编辑 client.js → 硬刷新页面即生效(client-hmr 换 rev) |
| 改 Host 半(统计/RPC) | 编辑 host.js → 重启 DSH;运行中不重启热改受 Node ESM 按 URL 缓存所限,需换文件名强制换代(见下) |
| 跑测试 | node stats.fixtures.mjs(46 项) |
| 语法检查 | node --check host.js && node --check client.js && node --check stats.js |
Host 半热更流程(运行中不重启时):改 host.js → Copy-Item host.js host2.js → cordis.patch.yml 行 name 改 './host2.js' → remove_bundle + install_bundle。
原理:Node ESM 按 URL 进程内缓存,新文件名 = 新 URL = 强制加载新代码;全新安装 / 重启无此限制。
⚠️ 踩过的坑(都已修复,写此备查)
| 坑 | 现象 | 根因与修法 |
| connection 未 inject | RPC 全 400 空 body | Cordis Context 是严格代理,访问未 inject 服务直接抛错,被 webserver 兜底成 400。修:inject 加 'connection'(open-in-app 同款) |
| disposer 中断 | 每次 remove 后域永久 already-open | ctx.inject() 返回 fiber 不是函数,offRoute() 抛 TypeError 掐断 dom.close() → reserved 泄漏。修:逐 step try/catch + close 优先,子 fiber 交给父 ctx 级联清理 |
| 错误判定不一致 | 重试一次就放弃 | DomainError.code='already-open'(连字符)vs message="… is already open"(空格)——code/message 必须双查 |
| 失败即永久内存态 | storageOk:false 不再恢复 | 加懒恢复:请求时重试 attachStorage;内存已有数据时跳过 hydrate(防双计)直接覆盖磁盘 |
| 幽灵域占坑 | 死代际占住 reserved | storageDomain.get(name) 取泄漏 handle 直接 close()(同 facility 单例 → 持有者必是死 fiber),已内建到重试路径 |
📦 本体更新后怎么装回来
结论:能,一条命令。 插件源码在你的工作区,不随 ~/.dsh 卸装丢失;更新清掉的只是 profile 注册——重跑安装命令即可(报 ambiguous-install 就先 remove 再装)。
兼容性:零依赖 bundle 未声明 @deepseek-ai/dsh- peer,不会被兼容门拦下;用到的 API(settings.section / sessionQuery / storageDomain / webServer / connection / session/event)都是上游稳定面,更新后跑一遍验收即可:
1. list_plugins 看 include:token-usage 是否 fiberPhase: active
2. RPC 未认证 401 / 认证 200
3. 硬刷新页面 → 设置分区两张图正常
4. 若改过 Host 半,确认 cordis.patch.yml 指向的文件名存在
数据面:统计是派生数据。即使 ~/.dsh 被清,会话日志还原后启动回填自动重建全部用量历史;不放心就点「重新统计」全量重扫。事实源丢不掉,聚合表随时能长回来。
📜 许可
MIT © 2026 GIN0076 —— 欢迎 issue / PR。
灵感来源:ZCode Usage Stats 的用量面板,以及 ccusage / tokscale / token-history 等本地优先统计工具的口径设计。*预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
GIN0076/dsh-token-usage
在设置面板查看各模型每日词元消耗与趋势
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。