在设置里查看各模型每日 Token 消耗与占比
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Gnatnaituy/dsh-token-usage该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
- 发起网络请求lib/client.js:478
return fetch(SUMMARY_ROUTE, { headers: { accept: 'application/json' } }) - 发起网络请求lib/client.js:522
fetch(RESCAN_ROUTE, { method: 'POST', headers: { accept: 'application/json' } }) - 读取本地文件lib/store.js:93
text = await readFile(this.ledgerPath, 'utf8') - 写入本地文件lib/store.js:144
await mkdir(this.#dir, { recursive: true }) - 写入本地文件lib/store.js:145
await appendFile(this.ledgerPath, body, 'utf8') - 读取本地文件lib/store.js:219
const info = await stat(path) - 读取本地文件lib/store.js:228
buffer = await readFile(path) - 读取本地文件lib/store.js:264
parsed = JSON.parse(await readFile(this.cachePath, 'utf8')) - 写入本地文件lib/store.js:284
await mkdir(this.#dir, { recursive: true }) - 写入本地文件lib/store.js:285
await writeFile(this.cachePath, `${JSON.stringify(cache)}\n`, 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 查看各模型Token消耗
- 统计今日7天30天用量
- GitHub风格用量日历
DeepSeek Harness 插件:在设置里加一页 token 用量,从本地会话日志汇总各服务商、各模型的 token 消耗(今日 / 7 天 / 30 天 / 全部),带 GitHub 风格用量日历和分模型明细。
README
由 DeepSeek 最新模型翻译生成dsh-token-usage
DeepSeek Harness 的 Token 用量统计插件:在「设置」里新增一个 Token 用量 页面,展示
- 总用量:跨所有模型供应商、所有模型的 token 汇总(今日 / 近 7 日 / 近 30 日 / 全部),以及输入、输出、缓存读、缓存写、推理的分项;
- 用量日历:GitHub 贡献图风格的热力图,每天一格,悬停查看当日 token 明细与请求数;
- 按供应商分组的模型用量:每个供应商一张表,列出每个模型今日、近 7 日、近 30 日的用量与占比。
数据来自 Harness 自己的会话日志(assistant/message 事件的 provider 上报用量),另外通过 session/event 实时记录,无需任何模型调用或第三方计费接口。
展开完整文档(README 剩余 1 节)
dsh-token-usage
DeepSeek Harness 的 Token 用量统计插件:在「设置」里新增一个 Token 用量 页面,展示
- 总用量:跨所有模型供应商、所有模型的 token 汇总(今日 / 近 7 日 / 近 30 日 / 全部),以及输入、输出、缓存读、缓存写、推理的分项;
- 用量日历:GitHub 贡献图风格的热力图,每天一格,悬停查看当日 token 明细与请求数;
- 按供应商分组的模型用量:每个供应商一张表,列出每个模型今日、近 7 日、近 30 日的用量与占比。
数据来自 Harness 自己的会话日志(assistant/message 事件的 provider 上报用量),另外通过 session/event 实时记录,无需任何模型调用或第三方计费接口。
安装
本机开发安装(软链 + 热挂载,无需重启 DSH Desktop):
node tools/install-into-profile.mjs # 安装
node tools/install-into-profile.mjs --dry-run # 只看会做什么
node tools/install-into-profile.mjs --uninstall
脚本会做三件事(幂等):
1. 把本仓库软链进 profile 的 node_modules/dsh-token-usage;
2. 在 profile 的 package.json 里登记 link: 依赖;
3. 在 profile 的 cordis.patch.yml 里插入一行 Loader 条目(id: token-usage / name: dsh-token-usage),由 DSH 的配置 HMR 热挂载。
装完等一两秒,刷新浏览器页面,打开 设置 → Token 用量 即可。
通过 bundle 安装(发布/市场场景)
本包自带 cordis.patch.yml(dsh.bundle.patch)。把包加入 profile 的 dsh.profile.bundles 也可以,但不要同时既加 bundle 又把行写进 cordis.patch.yml:两处会 insert 同一条目 id,Loader 会报 duplicate loader entry id。二选一即可。
数据存放
插件只写自己的目录 /dsh-token-usage/:
| 文件 | 内容 |
| records.jsonl | 追加式 JSONL 账本,一行一条用量记录(去重键 sessionId:seq) |
| scan-cache.json | 每个会话日志的 {size, mtimeMs} 快照,增量重扫只读有变化的文件 |
启动时异步扫描一次 /sessions 下所有 .jsonl.zstd(多帧 Zstandard 结构扫描,正在写入的撕裂尾帧也能容错读取),与实时事件流汇入同一账本,天然幂等去重。
架构
lib/index.js host 半(Cordis 插件) ├─ session/event 监听 → 实时记录 assistant/message 用量 ├─ UsageStore(lib/store.js) 账本:加载 / 去重 / 追加 / 增量回扫 ├─ 路由 GET /dsh-token-usage/summary 汇总快照(JSON) │ GET /dsh-token-usage/status 账本状态 │ POST /dsh-token-usage/rescan 强制全量重扫 lib/core.js 纯聚合:事件折叠、窗口(今日/7/30/全部)、日历、按供应商分组 lib/session-scan.js 多帧 Zstandard 帧扫描 + 会话日志抽取 lib/client.js browser 半:设置页 UI(模块加载器 CJS 格式,无构建步骤) tools/install-into-profile.mjs 安装 / 卸载 test/ 纯逻辑单元测试 + client 冒烟测试(无浏览器、无 harness)
页面只读 host 的汇总路由,不自己做任何统计,所以页面与账本永不分叉;页面上的「重新扫描」按钮对应 POST /rescan。
开发
npm test # node --test test/(core + session-scan + client 冒烟)
node tools/install-into-profile.mjs --dry-run
改 lib/client.js 后刷新页面即生效(模块系统按文件 mtime/大小算 revision,重新拉 bundle)。
client 半要守 React 的 hook 规则:CalendarCard 自己用 hook,所以必须写
h(CalendarCard, props) 挂载,不能写成 CalendarCard(props)。后者会把它的 hook
追加到 TokenUsageSection 的 hook 链表上——第一次渲染(loading 占位)看不出来,等 fetch 回来第二次渲染就抛 React error #310,整个设置页内容变空白。
test/client-smoke.test.mjs 里的严格 hook 调度器按 React 的规则比较同一组件前后两次渲染的 hook 数量,会复现这个错误。
改 host 半(lib/index.js 等)后需要重启 DSH Desktop:模块热重载默认关闭(@deepseek-ai/dsh-hmr 的行是 root: [],只监视 profile 配置),本包通过软链挂在 profile 之外,文件事件也不会被监视到。想让 host 半也热重载,可在 profile 补丁里把 hmr 行的 config.root 指到本仓库路径。
harness home 的判定
新的 DSH Desktop 把用户数据放在 ~/.dsh,旧的 Electron 版放在 ~/Library/Application Support/dsh-desktop/harness。插件按下面的顺序取第一个存在 sessions 目录*的候选作为 harness home,所以同一台机器上装了两套 DSH 也不会读错账本:
1. ctx.get('dshHomePath')() —— harness 自己的 home 解析服务(与 harness 完全同源);
2. $DSH_HOME;
3. ~/.dsh;
4. 旧 Electron 目录(~/Library/Application Support/dsh-desktop/harness)。
前三个都不存在 sessions 时才退回第 4 个,因此老部署依旧可用;判定结果可在 GET /dsh-token-usage/status 的 ledgerPath / sessionsRoot 里核对。
隐私与边界
- 只读 /sessions 里的会话日志,只写插件自己的目录;从不删除或改写任何数据。
- 汇总口径与 DSH 持久日志一致:只有 provider 上报了 usage 的 assistant/message 才计为一条;assistant/attempt、重试事件不带 usage,不重复计数。
- 没有供应商目录信息时,供应商 id 会做标题化显示;归属不明的记录归到「未标注」。
- 日历配色跟随当前主题(深色/浅色自适应)。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Gnatnaituy/dsh-token-usage
在设置里查看各模型每日 Token 消耗与占比
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目