前言¶
DeepSeek Harness(DSH)的会话日志里只提供单个会话的 tokenUsage 投影,没有按天分桶的全局用量服务。开发者要了解累计使用情况、模型分布与连续活跃天数,往往需要自己从会话日志里汇总。dsh-usage-stats 插件在 DSH 左侧栏提供一个使用统计面板,汇总全部历史 Token、峰值、连续天数、活动热力图与每日分模型趋势。
插件定位¶
插件名 dsh-usage-stats,作者 zazzzzzzzz。它是一个基于 cordis 的 bundle,负责在 DSH 客户端侧展示统计看板,在宿主侧从会话日志中计算并缓存汇总数据,通过私有路由 /dsh-usage-stats/usage 供前端读取。
核心功能¶
1. 历史累计与峰值¶
面板顶部显示五个数字,始终描述全部历史:
- 全部历史累计 Token
- 单日峰值 Token
- 最长单次会话时长(量的是单次连续活动最长的一段,两次活动相隔超过 host/usage.js 中的 IDLE_GAP_MS 视为断开)
- 当前连续使用天数
- 历史最长连续使用天数
2. Token 活动热力图¶
按天显示活动热力图,支持切换三种口径:
- 每日
- 每周
- 累计
指针停在某一天上时,显示当天用量与轮消息数。
3. 时间范围¶
可切换的时间范围:
- 近 7 日
- 近 30 日
- 全部
决定趋势图与模型占比看哪一段。
4. 每日 Token 趋势图¶
在选定时间范围内,每个模型一条折线。指针移上去会画出竖线与当天的点,并列出当天合计与分模型明细。
5. 模型用量¶
环形图与排名列表,显示每个模型的占比与 Token 数。
数据来源与计算¶
宿主没有提供按天分桶的全局用量服务,插件宿主半边自己读会话日志:
- 用宿主的
sessionQuery.readSession()读取每个会话的完整事件(会话日志是多帧 zstd,必须交给宿主的读取器解码) - 折叠
assistant/message与assistant/attempt上携带的使用量样本,同一turn/step上的重试替换而不是叠加,四个桶 input / output / cacheRead / cacheWrite 互不重叠 - 在此基础上补日期与小时两个维度,让界面能画热力图与趋势线,并按范围重新求和
汇总结果按「日志大小 + 修改时间」缓存在 $DSH_HOME/cache/dsh-usage-stats/usage.json,热启动只重读变过的日志。汇总结果有 60 秒保鲜期,过期后下一次请求会在后台重算。
汇总通过私有路由 GET /dsh-usage-stats/usage 交给界面,该路由只接受同源只读请求,并与宿主的 /api 使用同一道来源校验。
刷新时机¶
- 面板挂载时取一次
- 之后每 20 秒取一次
- 窗口重新可见或重新获得焦点时立即取一次
- 面板被切走即停止,不留后台轮询
宿主侧的汇总有 30 秒保鲜期:保鲜期内直接返回上一次的结果,过期后的第一次请求会在后台重算,界面先拿到旧值、稍后自动补上新值。重算只重读「大小或修改时间变了」的会话日志。
安装¶
插件是一个普通的 cordis bundle:包放进 profile 的 node_modules,再让 profile 认得它。本机开发时用 link: 依赖最省事——源码改了不用重新拷贝。
以桌面 profile(%USERPROFILE%\.dsh\profiles\desktop)为例:
- 在 profile 的
package.json里加依赖并挂进 bundle 清单:
{
"dsh": {
"profile": {
"bundles": [
"dsh-claude-style",
"dsh-usage-stats"
]
}
},
"dependencies": {
"dsh-usage-stats": "link:D:/BigModel/DSH_PLUGIN/dsh-usage-stats"
}
}
- 装依赖:
cd $env:USERPROFILE\.dsh\profiles\desktop
pnpm install
- 重启 DSH。插件包内的
cordis.patch.yml会自己把ui-usage-stats这一行插进 Web 客户端清单,不需要另外改 profile 的cordis.patch.yml。
如果不想走 bundle 清单,也可以只把包拷进 node_modules,再在 profile 的 cordis.patch.yml 末尾加一条:
- id: ui-usage-stats
name: dsh-usage-stats
disabled: false
两种方式都需要重启 DSH 才会装载:profile 的 bundle 清单与 patch 文件在启动时读取。
典型用法¶
安装并重启 DSH 后,左侧栏会出现「使用统计」入口。点击后中间区域显示统计看板,可切换时间范围、查看热力图与趋势图,并通过指针交互查看明细。
适用场景与注意¶
适合需要长期跟踪 DSH 使用情况、关注模型用量分布与连续活跃天数的开发者。
插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。
结尾¶
dsh-usage-stats 为 DSH 提供了一个从会话日志自算的统计面板,帮助开发者量化使用情况与模型偏好。
- 目录页:https://www.skillhub.cn/plugins/zazzzzzzz/dsh-usage-stats
- GitHub:https://github.com/zazzzzzzz/dsh-usage-stats