dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 侧栏的 Token 用量看板:从本机会话日志统计每日消耗并给出近 12 个月热力图;按供应商渠道查看今天/近 7 天/近 30 天/全部的用量(今天按小时展开)及各渠道平均输出速度;按会话排行,包含已归档与已删除会话,子代理消耗并入父会话。
在 DeepSeek Harness 左侧栏加一行 Token 用量,点开是一块看板:每天的 Token 消耗、各个供应商渠道的分摊、以及每个会话用了多少。
数据全部来自本机 Harness 自己的会话日志,不联网、不上报、不需要填任何 API Key。
安装后,左侧栏会在「插件市场」和「自动化任务」之间多出一行 Token 用量:
打开 DSH → 插件 → 搜索 dsh-token-dashboard → 安装。
已经 clone 了仓库的话:
E:\dsh-plugin\dsh-tokenDashboard)新装的插件如果侧栏没立刻出现,重启一次 DeepSeek Harness 即可——这是 DSH 对新装宿主插件的既有行为,不是插件本身的问题。
dsh plugin add @zhujiuyi/dsh-token-dashboard
顶部是累计用量概览,下面依次是每日热力图、按供应商渠道、按会话:

按供应商渠道 —— 周期可选「今天 / 近 7 天 / 近 30 天 / 全部」;图例能点掉单个渠道,柱子会重新堆叠; 表格给出每个渠道的用量、日均、平均输出速度、单日峰值和占比,配置了但没用过的渠道标「未使用」。

按会话 —— 每个会话的消耗排行,可按「Token 用量」或「最后活跃」排序,支持状态筛选和搜索; 子代理会话的消耗已并入父会话(行内标注「含 N 个子代理」)。

| 项目 | 口径 |
|---|---|
| 用量 | 会话日志里每条模型回复的 输入(未命中缓存)+ 输出 + 缓存读取 + 缓存写入 |
| 归属到哪个渠道 | 按日志顺序取当时生效的路由;一个会话中途换过供应商,会按实际发生的顺序分别计入 |
| 一天 | 本机时区的自然日 00:00–24:00 |
| 时间范围 | 统计全部历史;页面上的「今天 / 近 7 天 / 近 30 天 / 全部」只是视图筛选,不改变底层数据 |
| 子代理 | 按父会话关系合并,父会话日志缺失时子代理自己成行并标记 |
| 状态 | 进行中 / 已归档 / 已删除(日志还在、但会话已从列表里删掉) |
| 输出速度 | 各条回复「输出 token ÷ 首个 token 到回复完成的时长」的加权平均;未计时的回复不参与,避免拉低 |
和供应商后台的账单对不上? 这里统计的是 Harness 记录的 Token 数量,不是金额;而且账单通常按供应商自己的计费规则(缓存命中折扣、阶梯价)折算,两者本来就不会完全相等。这个看板回答的是「我在哪里、什么时候花了多少 Token」。
为什么会有「已删除」的会话? 会话从侧栏删掉后,日志文件仍在磁盘上。为了不丢历史用量,看板仍然会统计它,并标成「已删除」。你在会话列表里能一眼看出来它不是活跃会话。
为什么「当前连续天数」在半夜没归零? 如果今天还没开始用,连续天数会以昨天为锚继续算,不会在 00:00 闪成 0,等你今天第一次对话后自然延续。
会不会上传我的数据?
不会。宿主侧只读本机 Harness 目录下的会话日志与会话列表,不访问外网,也不写任何 Harness 数据;
页面通过同源的 /api/token-dashboard/snapshot 读取这些本地统计结果,除此之外没有任何网络请求。
也正因为页面里出现了这次同源请求,插件市场的静态扫描会把本插件标注为「network」——它指的是存在网络调用,
不是对外发送数据。
支持哪些版本?
需要带 sidebar.panellist 插槽的 DSH(即左侧栏有「插件」「插件市场」的那一版)。Node.js ≥ 20。
仓库无依赖、无构建步骤:index.js 是宿主侧(读日志、聚合、提供 /api/token-dashboard/snapshot),client/client.js 是浏览器侧单文件页面。
npm test # 宿主侧 57 项单元测试:日志解码、聚合口径、输出速度、缓存与路由响应
npm run test:client # 浏览器侧 35 项桩测:加载器契约、插槽注册、渲染与交互分支
npm run check # 语法检查
目录结构:
index.js 宿主入口:注册数据接口
src/host/ 日志解析、聚合、快照服务(纯 Node 内置模块)
client/client.js 浏览器页:侧栏入口 + 看板 UI
cordis.patch.yml 插件行声明
locale/ 插件卡片标题与描述
docs/images/ 截图
MIT