dsh-client-ui-usage-hud:在 DSH 侧栏常驻查看账户余额与 Token 用量

前言

在 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)

  1. 将整个插件目录复制到 profile 的 node_modules:
   <dshHome>/profiles/<profile>/node_modules/dsh-client-ui-usage-hud/
  1. 在该 profile 的 package.json 的 dsh.profile.bundles 中追加包名:
   {
     "dsh": {
       "profile": {
         "bundles": [
           "@deepseek-ai/dsh-base",
           "@deepseek-ai/dsh-web-app",
           "dsh-client-ui-usage-hud"
         ]
       }
     }
   }
  1. 重启 DSH。加载器会应用本包的 cordis.patch.yml(插入 ui-usage-hud 行),并向浏览器提供 lib/client.js。

  2. 刷新页面。

若需在不重启 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 后重启并刷新页面使用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜