
ParticleLight/dsh-all-usage
dsh-all-usage
dsh-all-usage is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add github:ParticleLight/dsh-all-usageRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-all-usage)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from ParticleLight/dsh-all-usage, cleaned of badges and images.
dsh-all-usage
中文
DeepSeek Harness 全量用量看板:按模型、供应商、工作区和时间范围分析 Token、缓存与账户余额。
功能
- 热力图:53 周使用热力图;按工作区筛选并查看每日回合与 Token 明细
- 模型统计:支持混合查看、按模型合并、按供应商汇总三种维度,展示调用次数、各类 Token 与缓存命中率
- 摘要与工作区:Token 用量、缓存命中、账户余额、连续使用、工作区 Token 分布和明细
- 导出:按当前时间范围和模型聚合方式导出 CSV
- 时间范围:今日、近 30 天、近 90 天、全部,或在全部可扫描历史日数据中自定义起止日期;热力图始终展示最近 53 周
- 工作区别名:在侧栏入口打开看板后管理,持久化保存到 $DSH_HOME/storages 的 KV 单元
all_usage_aliases - 界面语言:在看板顶部切换中文与 English;选择会保存到浏览器本地
- 完整历史与增量重建:基线扫描全部可读历史会话;独立用量账本同时作为每会话游标——未变化的会话直接复用账本,新增事件只增量回填,长历史重启不再全量重建
- Token 口径:输入按「未含缓存命中」计,缓存命中 / 写入与推理独立成桶;全 0 用量的重放事件不会覆盖已记录的真实用量,仅缓存命中的请求也会计入
最近更新
v1.0.7
- 增量游标:启动重扫只增量回填新增事件,未变化的会话直接从独立账本复用,不再全量重建
- 全 0 用量防护:全 0 用量的重放事件不会覆盖已记录的真实用量;纯缓存命中的请求仍会计入
- 结构化语义声明:API 返回机读的 token 口径(输入不含缓存命中,缓存与推理独立成桶)
完整版本记录见 CHANGELOG.md。
截图 / Screenshots
安装
本插件是标准的 DSH 社区插件包(声明 dsh.bundle manifest 与 Web Client),数据来自持久化会话日志和独立用量账本,安装后自动回填历史。
官方插件命令(推荐)
dsh plugin --profile web add github:ParticleLight/dsh-all-usage
安装命令会装配 bundle;随后刷新浏览器页面以加载 Client,无需手动修改 profile。若当前 DSH 版本未动态装配新包,请按 DSH 的提示重载包或重启进程。
手动注册(本地包)
-
把本目录放入任意位置,并在 $DSH_HOME/profiles/node_modules/ 下创建指向本目录的符号链接(Windows 用 junction):
New-Item -ItemType Junction -Path (Join-Path $env:DSH_HOME 'profiles/node_modules/dsh-all-usage') -Target '<本目录绝对路径>' -
在 $DSH_HOME/profiles/web/cordis.patch.yml 添加一行:
- insert: - id: all-usage name: dsh-all-usage
用户 patch 层会被热重载:保存后刷新页面即可。
架构
- Host 端(
lib/index.js):扫描持久化会话日志聚合用量(turn/end+assistant/message.usage),监听session/event实时折叠;通过webServer服务注册数据路由:GET /api/all-usage— 统计快照GET /api/all-usage/balance?force=1— 账户余额(复用llm-deepseek的 API Key 配置)POST /api/all-usage/alias— 设置工作区别名
- Client 端(
lib/client.js):window.__ModuleLoader__工厂格式的浏览器 bundle,注册侧边栏「用量统计」入口(sidebar.footer.action槽位)。所有 API 仅接受本机 loopback 请求并拒绝显式跨域请求;余额读取与别名写入还要求插件启动时生成、仅在当前进程有效的令牌(余额 GET 兼容浏览器省略 Origin)。英文模式的日期分桶、范围筛选、连续使用、热力图和导出时间统一按 UTC;中文模式按本地时区。
数据说明
- 使用次数与 Token 来自 DSH 会话日志,并在
session/flush时写入独立用量账本;插件激活时会回填日志与账本历史,插件卸载/重启后已成功持久化的数据不丢 - 按日范围统计会保留全部可读取历史会话的有使用记录日期;热力图仅作为最近 53 周的固定视图窗口
- 会话删除后,已成功 flush 的用量仍从独立账本恢复;会话销毁提示和周期对账只负责触发重建,不会删除账本记录
- 同一会话的同一
turn / step只保留一份最终 usage;重试或替换消息会替换旧贡献,不重复累计 - 输入 Token 按「未含缓存命中」计(缓存命中 / 写入独立成桶);全 0 用量的重放事件不会覆盖已记录的真实用量,纯缓存命中的请求仍会计入
- 看板中的总处理量 = 输入 + 输出 + 缓存读写 + 推理;缓存命中表示复用的上下文 Token,不等于新生成 Token 或实际费用
- 余额查询走 DeepSeek 官方
/user/balance接口;未配置 API Key 时卡片显示引导文案 - 仅统计能归属到已注册工作区(按会话 cwd 匹配)的会话
开发
- 修改
lib/client.js后刷新页面即可;修改lib/index.js后,需由 DSH 重载该包或重启进程,单纯刷新页面不会替换已运行的 Host 代码 - 插件包无第三方依赖:Host 端只使用 Cordis 服务,Client 端只使用 runtime 提供的 React 模块
English
A full usage dashboard for DeepSeek Harness. Analyze tokens, cache behavior, account balance, and activity by model, provider, workspace, and time range.
Features
…

