dsh-account-balance:在 DSH 侧栏底部常驻显示 DeepSeek 账户余额与花费

前言

用 DeepSeek Harness(DSH)做智能体开发或日常对话时,余额和 token 花费往往要切到「设置 → 账号与余额」或另开页面查。侧栏里没有一眼能看到的数字,很难在长时间会话里判断「今天已经花了多少、还剩多少」。

下面介绍社区插件 @lithane/dsh-account-balance(维护者 Lithane,分类:客户端)。它在 DSH 左下角侧栏底部注入一张卡片,常驻显示账户余额与今日花费;点开可展开多层级成本明细,并附带峰谷时段提示与充值入口。项目基于上游 LL-cmyk-so/dsh-balance-widget 的 0.6.3 修改,自 0.1.0 起独立演进,当前 npm 包版本为 0.1.3(MIT)。

这是什么

dsh-account-balance 是 DSH 的客户端插件:宿主半(Node)提供 HTTP 路由与会话日志解析,浏览器半(React)通过槽位 sidebar.footer.action 把 UI 挂在侧栏底部(设置区域上方)。

余额优先读取 DSH 内置账号服务 deepseekAccount,与官方「设置 → 账号与余额」同源,不需要单独配置 API Key;未登录或旧版宿主时,会回退到官方 GET /user/balance,并使用凭据服务里已存的 DEEPSEEK_API_KEY。

成本数字来自本地对 ~/.dsh/sessions/ 下会话日志的估算,不是官方账单;README 说明部分辅助调用(如 web_search)无 usage 字段时会按标定常数估算,误差约 ±30%。

核心功能

卡片与刷新

  • 侧栏底部常驻:账户余额、今日花费。
  • 每 60 秒自动刷新;点击卡片打开弹层时会立即强刷。
  • 余额低于配置阈值时变色:lowThreshold(默认 5)变黄,criticalThreshold(默认 1)变红。

成本明细(五层级)

展开后可查看:

  1. 最近一次提问的花费
  2. 今日 · 本会话
  3. 今日 · 本工作区
  4. 今日 · 所有工作区

(README 将上述与「账户余额」一并归纳为成本估算能力。)

峰谷与定价

  • 峰谷状态:按北京时间工作日 09:00–12:00、14:00–18:00 判峰,并含中国法定节假日表。
  • 官方价格:启动时及每 12 小时抓取官方定价页;失败时使用内置价表。

模型工具

注册工具 account_balance,可在对话里直接问模型「余额多少 / 今天花了多少」。
注意:0.1.1 及更早版本工具名仍为 deepseek_billing,与上游重名会导致 DSH 报 Duplicate tool declaration name;0.1.2 起已改为 account_balance。不建议与上游 dsh-balance-widget 同时启用(虽 0.1.2+ 已改名,但两张外观相近的卡片会叠在同一槽位)。

安装与启用

DSH 生态采用「一切皆插件」思路;插件目录页在 SkillHub 等社区站点,与 DeepSeek / 幻方无官方从属关系。安装前建议自行查看 GitHub 仓库 源码与 LICENSE。插件在 当前 DSH 进程权限 下运行,会读取本地会话目录与账号/凭据服务。

桌面端(DSH Desktop)

设置 → 插件 → 添加插件,填写包名或仓库地址,然后 重启应用并硬刷新。

网页端

# 网页端
dsh plugin --profile web add @lithane/dsh-account-balance
# 或直接装仓库
dsh plugin --profile web add github:Lithane/dsh-account-balance
# 或本地开发目录(改动即生效,最适合开发)
dsh plugin --profile web add link:/绝对路径/dsh-account-balance

peer 兼容:package.json 要求 @deepseek-ai/dsh 范围为 >=0.1.2-rc.1 <0.3.0。DSH 启动时会比对 peer 范围;不匹配且未豁免的 bundle 会被静默跳过(只记入 skippedBundles),表现为插件「凭空消失」且无报错。

运行环境:会话日志解压依赖 Node 内置 zstd,需 Node ≥ 22.15(或 ≥ 24.0.0)。

配置

在 profile 的 cordis.patch.yml 中写入插件块(桌面端 profile 目录示例:~/.dsh/profiles/desktop/):

- id: account-balance
  name: '@lithane/dsh-account-balance'
  config:
    balanceBaseURL: https://api.deepseek.com   # 回退路径的余额接口
    balanceApiKeyEnv: DEEPSEEK_API_KEY         # 凭据服务里的 ref
    requestTimeoutMs: 5000
    modelId: deepseek-v4-flash                 # 计价模型
    lowThreshold: 5                            # 余额低于此值变黄
    criticalThreshold: 1                       # 余额低于此值变红

更多配置项与定价说明见仓库内 docs/upstream/README.md。

典型用法

  1. 安装并重启 DSH(宿主半 lib/index.js 仅在启动时加载);网页端改客户端半后通常 硬刷新 即可。
  2. 在侧栏底部查看余额与今日花费;需要明细时点击卡片展开弹层。
  3. 在对话中询问余额或今日花费,由 account_balance 工具回答。
  4. 开发调试时,可用当前 GUI 地址自测宿主 HTTP 接口(端口随启动变化):
(Invoke-WebRequest 'http://127.0.0.1:<port>/api/account-balance/balance'     -UseBasicParsing).Content
(Invoke-WebRequest 'http://127.0.0.1:<port>/api/account-balance/active-cost' -UseBasicParsing).Content
(Invoke-WebRequest 'http://127.0.0.1:<port>/api/account-balance/today-cost'  -UseBasicParsing).Content

若 active-cost 返回 no session files found,多为会话路径解析问题(Windows 上需注意 HOME 与 DSH_HOME 回退逻辑,见 README「路径解析」表)。

本地改代码无构建步骤:npm run verify 仅做语法检查(node --check lib/index.js && node --check lib/client.js)。

适用场景与注意

适合:长期在 DSH 里跑会话、希望侧栏一眼看到余额与今日花费,并需要按会话/工作区粗算 token 成本的开发者或重度用户。

位置:卡片固定在 sidebar.footer.action,README 写明无法通过配置改槽位;macOS 桌面端收起整个左栏时卡片会随侧栏隐藏(DSH 在 data-platform='darwin' 下不留图标轨),不是插件单独的行为。

与上游关系:本仓库与 dsh-balance-widget 路由、工具名、UI 标识已区分,理论上可共存,但会注入两张相似卡片,一般不推荐同时开。

许可:MIT,继承上游并在 LICENSE 中保留上游版权行。

结尾

@lithane/dsh-account-balance 把官方账号余额视图和本地会话成本估算收到侧栏底部,减少切页查账;配合峰谷提示与 account_balance 工具,适合把「还剩多少钱、今天花了多少」留在开发界面里。

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

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

Xiaoye