前言¶
在 DeepSeek Harness(DSH)里跑智能体或对话时,你往往更关心「还剩多少钱、累计花了多少、Token 用了多少」,而不是只在某个设置页里偶尔点开看一眼。DSH 自带的账户服务会请求平台接口 GET /api/v0/users/get_user_summary,但解析结果只保留 normal_wallets 与 bonus_wallets,total_costs 等字段在投影阶段被丢弃,因此官方 UI 里通常看不到累计消费。若你希望这些信息在 Web 客户端左侧栏底部始终可见,可以安装社区插件 dsh-client-ui-usage-hud(维护者 bjpd6,分类:客户端)。它在侧栏 foot 区域提供一块 HUD,并自行向平台读取完整摘要,同时从 DSH 本地会话投影缓存汇总 Token 数据。
这是什么¶
dsh-client-ui-usage-hud 是一个 DSH 客户端(Web) 插件 bundle:在浏览器侧栏底部展示账户余额、赠送余额、累计消费,以及 Token 总用量与最近一次请求的明细。视觉风格参考社区皮肤「深海女仆工坊」(@smalltailqwq/dsh-client-ui-skin-maid-atelier):海军蓝、金色与瓷白、Georgia 衬线、蕾丝边玻璃面板;会读取该皮肤发布的 CSS 变量,未启用皮肤时使用相同 fallback,亮暗主题均可工作。
插件无第三方运行时依赖,无构建步骤,lib/*.js 为可直接执行的 JavaScript。当前 package 版本为 0.1.0,许可证 MIT,要求 Node >=18。
侧栏里显示什么,数据从哪来¶
收起时,触发器会缩成约 34px 的圆形鲸鱼按钮;展开后面板标题为「深海账户 · Token 用量」,并提供刷新与跳转官方用量链接。
| 展示项 | 数据来源 |
|---|---|
| 账户余额 | 平台 GET /api/v0/users/get_user_summary → normal_wallets(按币种) |
| 赠送余额 | 同上 → bonus_wallets |
| 累计消费 | 同上 → total_costs(DSH 账户服务未向 UI 投影此字段,本插件在 host 侧自行解析) |
| Token 总用量与会话数 | <dshHome>/storages/session_projcache/sessions/*.json 中 record.rows.tokenUsage.totals |
| 最近一次用量(未命中 / 命中 / 输出等) | 同上缓存 → tokenUsage.last |
金额字段均为平台返回的十进制字符串,格式化前保持原样,避免浮点精度损失;面板注明「金额来自 DeepSeek 平台账户接口」,不做估价或价目表推算。
为什么要单独请求平台¶
DSH 的 deepseek-account 虽会调用同一摘要接口,但 parse 逻辑只输出余额与赠送钱包,total_costs 在此处被丢掉;平台文档也说明 host 项目通常只消费 normal_wallets / bonus_wallets。因此本插件的 host 半部在取得平台凭证后,自行请求 https://platform.deepseek.com 上的 get_user_summary,并解析累计消费。
凭证方面需注意:deepseekAccount.resolveToken(url) 仅在与推理域 https://api.deepseek.com 匹配时有效;平台域应使用 getPlatformSession(),返回 { origin, token, userId, requestHeaders },并在 issuer 匹配 platformOrigin 时导出已存储的 grant。本插件采用后者。
数据流概览:
client.js ──GET /api/dsh/usage-hud──► lib/index.js
├─ deepseekAccount.getPlatformSession()
│ └─ GET platform .../get_user_summary
└─ session_projcache/sessions/*.json
→ Token 汇总与最近一次用量
Token 统计来自持久化的投影缓存,而非仅当前活跃会话,因此冷启动与已归档会话也会计入。路由响应封装与账户服务一致(code / data.biz_code / data.biz_data),并处理 401 与 40003 等失效路径。Token 仅存在于 host 进程,浏览器通过同源 API 获取聚合结果,路由拒绝跨站调用。
安装与启用¶
前提:DSH 已启用 deepseek-account 平台插件,且使用官方账户登录。纯 API Key 模式下没有 platform grant,金额相关行会如实说明而非显示虚构的零。
DSH bundle 通过 package.json 中的 dsh.bundle.patch 声明;安装到某个 profile 目录后,DSH 会将 patch 合入该 profile。
方式 A:插件管理器(依赖 pnpm 与 git)¶
将 <this-repo-url> 替换为仓库地址(例如 GitHub 上的 https://github.com/bjpd6/dsh-client-ui-usage-hud):
dsh plugin --profile desktop add <this-repo-url>
新安装的 bundle 默认启用。安装后重启 DSH 一次。
方式 B:手动安装(无需 pnpm、无需 git)¶
- 将整个插件目录复制到 profile 的
node_modules:
<dshHome>/profiles/<profile>/node_modules/dsh-client-ui-usage-hud/
- 在该 profile 的
package.json的dsh.profile.bundles中追加包名:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-client-ui-usage-hud"
]
}
}
}
-
重启 DSH。加载器会应用本包的
cordis.patch.yml(插入ui-usage-hud行),并向浏览器提供lib/client.js。 -
刷新页面。
若需在不重启 DSH 的情况下迭代 host 半部(lib/index.js),可在 profile 的 cordis.patch.yml 里为 hmr 插件增加本插件目录为 config.root;lib/client.js 可由 dsh-client-hmr 轮询,改完后刷新页面即可。
典型用法¶
安装并重启、刷新 Web 客户端后,在左侧栏底部找到 HUD 触发器(收起时为圆形鲸鱼按钮)。点击展开面板,可查看余额、赠送余额、Token 总用量与会话数、最近一次请求的 token 分项,以及累计消费;使用面板上的刷新重新拉取数据,或通过查看官方用量跳转到 DeepSeek 平台用量页面。
本地开发或验收时,仓库提供脚本(需 Node >=18):
node tests/client-test.mjs lib/client.js
node tests/host-e2e.mjs ./lib/index.js
前者在最小 React hooks shim 下渲染客户端组件;后者驱动真实路由并调用平台(e2e 场景需有效登录环境)。
适用场景与注意¶
适合:已在 DSH Web 客户端日常使用、并已登录 DeepSeek 官方账户的开发者或用户;希望在侧栏一眼看到余额、累计消费与 Token 汇总,且接受 HUD 与「深海女仆工坊」皮肤视觉一致或独立 fallback 样式。
不适合或未覆盖:仅 API Key、无 platform session 时,无法展示真实账户金额行(插件会说明而非伪造数据)。
安全与信任:插件以当前 DSH 进程权限运行,host 半部持有平台 session 并访问本地 session_projcache。安装前请自行阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。DeepSeek Harness 生态强调「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-client-ui-usage-hud 补上了 DSH 默认 UI 未投影的累计消费,并把 Token 用量与会话统计固定在侧栏 foot,数据路径在 README 中有明确表格与流程说明。若你的 profile 已配置 deepseek-account 且为官方账户登录,可按上文命令或手动步骤装入 profile 后重启并刷新页面使用。