🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Token 用量统计 IZRINO/dsh-token-stats

DeepSeek 客户端
IZRINO78 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

按小时天周月汇总全部会话的 token 消耗并绘制折线图

23.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/IZRINO/dsh-token-stats.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 78 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
  • 发起网络请求
    lib/client.js:321
    fetch(`/api/token-stats/series?${params}`, { signal: controller.signal }).then(async (response) => {
  • 发起网络请求
    lib/client.js:326
    fetch(`/api/token-stats/summary?${params}`, { signal: controller.signal }).then(async (response) => {
  • 发起网络请求
    lib/client.js:331
    fetch(`/api/token-stats/breakdown?${params}`, { signal: controller.signal }).then(async (response) => {
  • 读取本地文件
    lib/cache-store.js:48
    const text = await readFile(this.file, 'utf8')
  • 写入本地文件
    lib/cache-store.js:108
    await mkdir(dirname(this.file), { recursive: true })
  • 写入本地文件
    lib/cache-store.js:109
    await writeFile(tmp, `${JSON.stringify(snapshot)}\n`, 'utf8')
  • 写入本地文件
    lib/cache-store.js:110
    await rename(tmp, this.file)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-token-stats English: DeepSeek Harness token usage statistics plugin — all sessions, hourly / daily / weekly / monthly aggregation, and a multi-series line chart for input, cache read, cache write, output, and total tokens. 中文:DeepSeek Harness 的 Token 用量统计插件 —— 统计全部会话,按小时 / 天 / 周 / 月聚合,折线图同时展示输入、缓存读、缓存写、输出和总 token。 DeepSeek Harness(DSH)的 Token 用量统计插件。在设置面板新增一个「Token 统计」页面,统计全部会话的模型调用 token 用量,提供小时 / 天 / 周 / 月四种粒度和自绘 SVG 折线图。
展开完整文档(README 剩余 1 节)
dsh-token-stats

English: DeepSeek Harness token usage statistics plugin — all sessions, hourly / daily / weekly / monthly aggregation, and a multi-series line chart for input, cache read, cache write, output, and total tokens.

中文:DeepSeek Harness 的 Token 用量统计插件 —— 统计全部会话,按小时 / 天 / 周 / 月聚合,折线图同时展示输入、缓存读、缓存写、输出和总 token。

DeepSeek Harness(DSH)的 Token 用量统计插件。在设置面板新增一个「Token 统计」页面,统计全部会话的模型调用 token 用量,提供小时 / 天 / 周 / 月四种粒度和自绘 SVG 折线图。

第一版范围:

- 只统计 token 与调用次数,不做费用统计;
- 全部会话,不按 workspace 过滤;
- 输入 / 输出 / 缓存读 / 缓存写 / 总数 / 调用次数 / 缓存命中率;
- 历史 session 自动 backfill,之后按 session 增量折叠;
- 数据只在本机,API 只接受 loopback 请求。

安装

需要 DSH web profile 和可用的 dsh plugin:

dsh plugin --profile web add <本目录的路径或 npm/GitHub 地址>

然后重启 dsh web,打开 设置 → Token 统计。

本地目录安装示例:

dsh plugin --profile web add /home/izrino/code/dsh-token-stats

配置

在 profile 的 cordis.patch.yml 中给 token-stats 行加 config(不要新增重复插件行):

- insert:
- id: token-stats
name: dsh-token-stats
config:
timezone: Asia/Shanghai
weekStart: monday
retainDays: 365
dataDir: ''
inject:
- webServer
- sessions
- sessionPersistence

| 配置 | 默认值 | 说明 |
| enabled | true | 为 false 时插件不激活 |
| dataDir | '' | 缓存目录。空值使用 $DSH_HOME/storages/dsh-token-stats;相对路径基于 $DSH_HOME 解析;也接受绝对路径 |
| timezone | system | 天/周/月边界时区。system 表示宿主机时区,也可写 IANA 名称,例如 Asia/Shanghai、UTC |
| weekStart | monday | 周统计的起始日:monday 或 sunday |
| retainDays | 365 | 小时桶保留天数,7–3650 |

配置错误会在插件加载时拒绝启动,不会静默忽略。

架构

DSH session log(真源) │ │ session/event(实时) + sessionPersistence.readFrom(历史/增量) ▼ usage-fold.js:每个 session 一个折叠状态 │ usage chunk 与 assistant/message 同 (turn,step) 替换,不重复计数 ▼ cache.json:原子 JSON 快照,可随时删除重建 │ ▼ host API:/api/token-stats/summary|series|breakdown|health │ loopback-only + GET-only ▼ lib/client.js:settings.section「Token 统计」页面 + 多序列 SVG 折线图(输入/缓存读/缓存写/输出/总量,图例可开关;打开时每 60 秒自动刷新)

为什么从 session 事件采集,而不是监听 llm/stream

- session log 是持久化真源,可回放、可重启恢复;
- 历史会话可以在安装插件后 backfill;
- usage 的替换语义与官方 dsh-token-meter 对齐:同一 (turn, step) 先出现的流式 usage chunk 会被最终 assistant/message usage 替换,而不是累加。

指标口径

- inputTokens:未缓存输入;
- outputTokens:输出;
- cacheReadTokens / cacheWriteTokens:缓存读 / 缓存写;
- totalTokens = 上述四项之和,reasoning 不计入;
- calls:最终采用的 usage 样本数;
- cacheHitRate = cacheReadTokens / (inputTokens + cacheReadTokens + cacheWriteTokens),无 prompt token 时为 null。

Host API

所有接口只接受来自 127.0.0.0/8 或 ::1 的 GET 请求。

| 接口 | 参数 | 返回 |
| /api/token-stats/series | granularity=hour\|day\|week\|month,metric,fromMs,toMs,可选 timezone | 折线图数据点,缺失周期补零 |
| /api/token-stats/summary | fromMs,toMs,可选 timezone | 范围汇总、调用数、缓存命中率、活跃天数 |
| /api/token-stats/breakdown | groupBy=model\|provider,fromMs,toMs,limit | 按模型/服务商分组的聚合行 |
| /api/token-stats/health | 无 | 时区、weekStart、已缓存 session 数 |

示例:

curl 'http://127.0.0.1:3080/api/token-stats/series?granularity=day&metric=totalTokens'

开发与测试

无需安装依赖:

npm test
npm run check

- lib/usage-fold.js:纯折叠与聚合逻辑;
- lib/cache-store.js:原子缓存读写;
- lib/index.js:host Cordis 插件 + HTTP API;
- lib/client.js:零构建步骤的浏览器 bundle(window.__ModuleLoader__.load),只从 DSH 客户端模块表 require react。

cache.json 是纯派生数据,删除后下次请求会从 session 日志重建。

已知边界

- /series 为控制折线图点数设有范围上限:小时 90 天、天 730 天、周 1825 天、月 3650 天;页面默认范围远小于上限。
- DSH 目前是 pre-release,插件契约随版本变化;本插件按当前 DSH 0.1.0-rc.x 的 settings.section、session/event、sessionPersistence 契约实现。
- 周/月/天按配置时区归桶;DST 地区的小时桶可能落在两个本地日期的边界上,按 UTC 小时的本地起始归属。
- 缓存只在 API 请求、实时事件防抖和 session/flush 时落盘。
- 设置页只显示汇总,不保存原始调用明细;后续要做逐调用导出需要新增明细表。
预览分享卡片长什么样 ↓IZRINO/dsh-token-stats
分享 · DeepSeek Harness Hub
IZRINO/dsh-token-stats

按小时天周月汇总全部会话的 token 消耗并绘制折线图

这是你的仓库?认领条目

回到顶部