DeepSeek Harness 用量与消耗插件(dsh-usage)—— 每次调用的 token 用量/缓存命中统计、峰谷计费、余额查询、CSV/JSON/PNG 导出,可经桌面端一键安装或命令行 dsh plugin add 安装。
安装
dsh plugin --profile web add github:feiyang-dev/dsh-usage-pluginGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
DeepSeek Harness 用量与消耗插件(dsh-usage-plugin)
English | 简体中文
由开发者制作的 DeepSeek Harness 插件 —— 记录每一次模型调用的 token 用量与消耗,支持峰谷计费、余额查询、日历热力图与 CSV / JSON / PNG 导出。
🔔 重要通知(2026-08-16):npm 包名已更换
本插件的 npm 包名已由
@feiyang666/deepseekharnessdesktop更名为@feiyang666/dsh-usage-plugin(与 GitHub 仓库名feiyang-dev/dsh-usage-plugin保持一致)。
- 安装 / 升级请使用新包名:
dsh plugin --profile web add @feiyang666/dsh-usage-plugin- 旧包名
@feiyang666/deepseekharnessdesktop仍会保留一段时间,但不再维护、不会更新,请尽快迁移- 桌面端(
DeepSeek Harness 桌面版)已兼容两种包名,旧包名安装的会自动识别并支持「一键更新」迁移到新包名
简介
dsh-usage-plugin 是 DeepSeek Harness 生态的用量与消耗统计插件(DSH plugin,Host + Client 双面一体包)。装好后在 WebUI 顶部「对话」「轨迹」之后会出现 「用量与消耗」 与 「剩余余额查询」 两个 tab:
支持 Windows / macOS / Linux:路径按当前平台处理(
node:path),目录选择与「打开所在目录」均调用系统原生方式(macOS 用osascript/open,Linux 用zenity/xdg-open),余额查询与导出不依赖 Windows 专用命令。
- 用量与消耗:记录每次模型调用的 token 用量与缓存命中(输入·未命中 / 缓存命中 / 缓存写入 / 输出 / 推理 / 结束原因),按 DeepSeek 峰谷/基础价格计算消耗(高峰时段自动按北京时间 9:00–12:00、14:00–18:00 计价)。模型名以请求参数为准如实显示(非 DeepSeek 模型不再显示为「未知模型」,无官方价格的模型消耗按 0 统计)。概览含「按模型」表与「按 API 服务商 × 模型」明细表(每个服务商一组,组内列出各模型的调用与高峰/空闲分列消耗),底部有总费用合计。
- 用量日历:按月查看每日用量热力图(按消耗或调用数着色),悬停查看详情(含高峰 / 空闲消耗拆分)、点击某天查看当日调用明细与高峰/空闲消耗统计,附本月每日统计表(高峰消耗 / 空闲消耗 / 总消耗分列)与月度汇总。
- 缓存命中列表:最新记录排在最前,支持 今天 / 近7天 / 近30天 / 全部 快捷筛选与自定义起止日期区间,汇总行与表尾合计区分高峰消耗 / 空闲消耗 / 总费用合计;列表分页渲染(每页 100 条),记录量大也不卡顿。
- 价格表:DeepSeek 官方 API 价格表,展示基础价与峰谷价(高峰/空闲)单价表,高峰价与空闲价分列展示,支持在面板内直接编辑价格并持久化(数据目录
pricing.json),也可一键恢复默认。 - 剩余余额查询:用当前配置的
DEEPSEEK_API_KEY查询 DeepSeek 账户余额。 - 导出:CSV / JSON / PNG 长图(按最新在前展示,最多含最近 2000 条,超出会提示;PNG 报告含高峰 / 空闲消耗分列统计),可导出到任意目录(原生目录选择器),导出后自动打开所在目录。
- 导入:选择文件(JSON / CSV)合并导入,按时间去重。
- 持久化:记录实时落盘到
<会话工作区>/dsh-usage/usage-records.json,重启自动恢复(上限 100000 条,尽量多存)。 - 界面适配:面板字号跟随应用「显示大小」设置自动缩放(em 相对字号),面板宽度以视口封顶、宽表格在容器内横向滑动(max-content + overflow-x),任何窗口大小下所有列与合计都完整可见,不会裁掉右侧内容。
界面预览
用量与消耗

剩余余额查询

推荐安装方式
两个方法任选其一,效果等价。推荐使用桌面端,全程图形化、无需命令行。
方式一(推荐):桌面端一键安装
安装 DeepSeek Harness 桌面版,打开后点击 「安装插件」→ 推荐插件 → 用量与消耗插件 → 一键安装,完成后点 「立即重启服务」 即可生效。
方式二:命令行安装
# 前提:已安装 dsh(npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add @feiyang666/dsh-usage-plugin
也可对其它 profile 安装:
dsh plugin --profile web add @feiyang666/dsh-usage-plugin
dsh plugin --profile headless add @feiyang666/dsh-usage-plugin
装完重启 dsh web 服务即可。详细的手动安装 / 接线 / 卸载 / 排障说明见下方。
这个包是什么
一个 npm 包 = host 半(Node 侧 Cordis 插件,负责记录、计费、余额查询、导出,见 lib/index.js)+ client 半(浏览器侧面板,见 lib/client.js,通过 /usage/api 与 host 通信)。
包通过两处声明接入 DSH:
| 声明 | 作用 |
|---|---|
dsh.bundle.patch(cordis.patch.yml) |
让 DSH 把它识别为标准 bundle 插件包:dsh plugin --profile <名> add <包名> 一条命令即可安装并自动接线,无需手改任何配置文件 |
dsh.client + exports["./client"] |
让 web 客户端在 /plugins/<包名>/client.js 自动加载浏览器面板 |
所以对使用者来说,安装就是一条命令,不用碰 YAML、不用手动复制文件。
安装(给使用者)
0. 前提条件
- 已安装 DeepSeek Harness(
npm install -g @deepseek-ai/dsh全局安装,或使用基于它的桌面应用 /npx @deepseek-ai/dsh web)。 - 安装方式 A(推荐)需要 pnpm:
npm install -g pnpm(或corepack enable)。 - 确保
dsh命令在 PATH 里(桌面应用自带环境则在其终端中执行)。
1. 方法 A(推荐):一条命令安装
dsh plugin --profile web add @feiyang666/dsh-usage-plugin
这条命令会做三件事(全部自动):
- 在
~/.dsh/profiles/web里通过 pnpm 安装本包(首次使用会自动初始化该 profile); - 检测到包的
dsh.bundle声明,自动把包名写进 profile 的dsh.profile.bundles层列表; - 重启后,DSH 启动时会自动读取包内的
cordis.patch.yml,把插件行挂进应用树——不需要手动编辑任何配置文件。
其它 profile 同理,把 web 换成你的 profile 名即可(如 dsh plugin --profile headless add ...;dsh web 等价于 dsh --profile web)。
想用本地 tarball 测试:
dsh plugin --profile web add C:\path\to\feiyang666-dsh-usage-plugin-1.9.0.tgz
2. 方法 B:手动安装(不使用 pnpm / 无 dsh plugin)
只在没有 pnpm 或需要完全手工控制时才用。请不要在 ~/.dsh/profiles 根目录直接 npm install(该目录没有 package.json,npm 会把整个 node_modules 当残留清掉)。
B1. 用 pnpm 但不用 dsh plugin:
cd ~/.dsh/profiles/web
pnpm add @feiyang666/dsh-usage-plugin
# 然后手动把插件行加进 web/cordis.patch.yml(见 B3),再重启
B2. 或用 npm: 在 profile 目录先补一个最小 package.json 再装:
cd ~/.dsh/profiles/web
# 若该目录还没有 package.json(用 dsh plugin 初始化过才会有):
# echo '{"name":"dsh-profile-web","private":true,"dependencies":{}}' > package.json
npm install @feiyang666/dsh-usage-plugin
B3. 接线(只需做一次,幂等): 在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
- insert:
- id: usage-plugin
name: '@feiyang666/dsh-usage-plugin'
inject:
- fs
- webServer
- subprocess
- credentials
- sandboxPolicy
- agents
也可以直接跑包内的接线脚本(自动找 profile 并追加,幂等):
node node_modules/@feiyang666/dsh-usage-plugin/scripts/wire.js
⚠️ 行上的
inject列表不能省略:它让 Cordis 等到fs/webServer/subprocess/credentials/sandboxPolicy/agents服务就绪后再激活插件。缺了它,/usage/api路由不会注册,面板会报Unexpected end of JSON input。
3. 方法 C:桌面应用
桌面版(如 DeepSeek Harness 桌面版)底层就是同一个 ~/.dsh/profiles。在任意终端执行方法 A 的命令即可,装完重启应用;应用内启动的是同一个 dsh web,插件自动生效。
4. 重启并验证
重启 DeepSeek Harness 的 web 应用(命令行:结束旧进程后重新运行 dsh web;桌面应用:完全退出后重新打开)。然后:
- 刷新 http://127.0.0.1:3080 ,顶部「对话」「轨迹」之后会出现 「用量与消耗」 和 「剩余余额查询」 两个 tab;设置里也有对应入口。
- 「用量与消耗」面板内含 概览 / 用量日历 / 缓存命中列表 / 价格表 四个子页签。
- 发一条消息后,「用量与消耗」面板应出现本次调用的 token / 消耗记录。
5. 配置(余额查询需要)
「剩余余额查询」使用当前配置的 DEEPSEEK_API_KEY:在 设置 → 模型 中配置 API Key(与跑对话用的同一个 key),然后打开「剩余余额查询」tab 点「查询余额」。
卸载
dsh plugin --profile web remove @feiyang666/dsh-usage-plugin
(等价于 pnpm remove;dsh plugin 会自动把包名从 dsh.profile.bundles 层列表里移除。)然后重启应用即可。
手工安装的(方法 B),反向操作:删除 cordis.patch.yml 里的 usage-plugin 行,再 pnpm remove / npm uninstall 该包,重启。
从 1.0.x 手工接线版升级到 1.1.x 时:先删掉旧
cordis.patch.yml里的usage-plugin行(或整体按卸载流程走一遍),再按方法 A 重装,避免同一插件被挂载两次。
数据与位置
- 数据文件:
<会话工作区>/dsh-usage/usage-records.json - 价格配置(面板内编辑后保存):
<会话工作区>/dsh-usage/pricing.json - 导出目录(默认):
<会话工作区>/dsh-usage/{csv,json,images}/ - 自定义导出目录:在面板「导出目标目录」里填写或点「选择目录…」
- 启动诊断日志(若插件激活失败):会话工作区下的
dsh-usage-boot.log
常见问题
| 现象 | 原因 / 处理 |
|---|---|
面板报 Unexpected end of JSON input |
插件行缺少 inject 列表,路由未注册。按方法 B3 补上 inject 后重启 |
| 面板一直空白 / 顶部无 tab | 插件未激活。看会话工作区 dsh-usage-boot.log;确认 cordis.patch.yml 里的行存在且 name 正确 |
| 余额查询失败「未配置 DEEPSEEK_API_KEY」 | 在 设置 → 模型 里配置 API Key |
| 余额查询失败网络错误 | 确认能访问 api.deepseek.com(国内网络请配置代理) |
dsh plugin 报 pnpm not found |
安装 pnpm:npm install -g pnpm |
| 安装时连不上 npm 官方源 | 配置镜像:npm config set registry https://registry.npmmirror.com(或对 pnpm 设 pnpm config set registry ...)后再执行安装命令 |
卸载后仍报 Cannot find package '@feiyang666/...' |
profile 里残留了包引用。删掉 cordis.patch.yml 中对应行与 dsh.profile.bundles 里的包名,重启 |
相关项目
| 项目 | 说明 | 安装方式 |
|---|---|---|
| DeepSeek Harness 桌面版 | Windows 桌面控制台:一键安装/启动/停止/重启 dsh web 服务,内置插件管理,推荐插件区一键安装本插件 | 下载桌面版,点几下即可 |
| 数据保险箱(dsh-vault) | 自动备份 / 清空检测 / 一键恢复,保护聊天记录与工作区数据 | 桌面端一键安装,或 dsh plugin add @feiyang666/dsh-vault |
| DeepSeek-Harness | 官方 CLI / Web 服务 | 见下方「运行 DeepSeek Harness」 |
运行 DeepSeek Harness
快速安装(通过 npm)
安装 Node.js,然后运行:
npx @deepseek-ai/dsh web
该命令会启动 Web UI,默认地址为 http://127.0.0.1:3080。详见 Web UI 指南。
从源码运行
如需从仓库源码运行:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
致谢
许可
MIT © dsh-usage-plugin
原始 README: https://github.com/feiyang-dev/dsh-usage-plugin/blob/main/README.zh.md ↗
同类插件
查看全部 →
dsh-whale-report
🐋 鲸鱼记事本 — 你的 Agent 年度报告:从会话事件日志生成日报/周报/月报/年报,任意区间、只读不改写

dsh-balance-meter
输入框 dock 显示 DeepSeek 账户余额与会话花费,自动拉取官方定价,支持高峰/低谷计价。

dsh-usage-stats
DeepSeek Harness 使用统计插件|Token 总量与构成、7/30 天趋势、年度活跃热力图、模型占比、工作区/任务筛选、CSV/JSON 导出

dsh-balance
DeepSeek 余额实时显示插件: 在 dsh Web UI 输入框 下方、命中率/输入输出 token 统计条所在的同一行 , 实时显示:

dsh-balance-monitor
DeepSeek 账户余额、剩余比例条与今日花费,显示在 dsh 侧边栏底部 · DeepSeek balance, remaining-ratio bar and today's spend in the dsh si

dsh-cost-meter
会话与当日 API 费用统计、预算图框(已用%)、官方余额、历史看板,支持峰谷计价与官方价格一键同步。