dsh-balance-card:在 DSH Web 侧边栏常驻监测当前模型厂商余额

前言

在 DSH 里切换不同厂商的模型时,余额往往分散在各家的控制台或账单 API 里,要确认「当前会话用的是哪家、还剩多少」通常得另开页面或自己记。下面介绍的 dsh-balance-card(npm 包名 @utmotc/dsh-balance-card)把各厂商 API 余额或订阅额度聚合到 dsh Web 左侧:一张贴在设置按钮上方的卡片,随当前会话所选模型切换厂商,并可在原地展开详情,不跳转页面。

这是什么

dsh-balance-card 由社区维护者 Utmotc 发布,分类为客户端插件(面向 dsh Web)。它解决的是:在当前对话所用模型背后,一眼看到该厂商的余额、额度或积分,并区分金额(元 / 美元等)与积分,避免把不同量纲混在同一套展示里。

读数经宿主解析 API Key 等凭据后,通过 GET /api/dsh.balance 提供给浏览器;设置走 GET/POST /api/dsh.balance.settings,与 Connection 同一套鉴权。密钥不写入插件磁盘,浏览器侧只收到数字。

核心功能

侧边栏卡片与详情

  • 卡片显示当前会话所用模型对应厂商的余额:环形进度、百分比、各套餐进度条及最后更新时间。
  • 切换模型,卡片跟着切换;点击卡片在原地展开详情面板,会话不离开当前页。

内置厂商与数据来源

插件通过各厂商官方账单接口或生态内其它插件的状态路由读数,主要包括:

类型 厂商 / 场景 说明
API 余额 DeepSeek、StepFun、Kimi Coding、OpenRouter、MiniMax、xAI/Grok 各自官方 GET 接口;金额或额度按读数类型展示
积分 WorkBuddy、Qoder 不重复实现登录逻辑,读取 dsh-workbuddy-connect / dsh-qoder-connect 已发布的状态路由
订阅额度 ChatGPT (Codex)、Claude、Grok (X Premium)、GitHub Copilot、Google Antigravity 与 dsh-plugin-subscriptions 联动,展示订阅配额与重置时间等

另可在用户文件 $DSH_HOME/model-balance-providers.json(默认 ~/.dsh/model-balance-providers.json)中声明额外厂商或覆盖内置 endpoint,无需改插件代码。

没有 API 级账单的厂商(如部分仅控制台计费的路线)会显示「暂不支持」,有控制台链接时会给出链接。

单位与展示

  • 金额用 ¥ / $ 等及「元 / 美元」等词;积分单独标「积分」;额度用次数等形式;无法辨认单位时显示「单位未知」,不强行当成人民币。
  • 余额监测设置页可配置:显示位置(侧边栏卡片 / 输入框胶囊 / 两处 / 都不显示)、轮询间隔、告警阈值、单位写法、更新时间格式、千位分隔等;写入插件自有配置,不触发 loader 重建、无需重启 dsh。

安全与降级

  • 构造上不要求 dsh 额外授权;某服务缺失时仅少显示一块,不阻止应用启动。
  • WorkBuddy / Qoder / 订阅类读数在对应插件未安装、未登录或路由失败时,会显示「未安装」「未登录」「读取失败」等明确状态,而不是 silent 错误。

安装与启用

需要 dsh 0.1.7 或更新,Node 22.19+(或 24+),与 dsh 本体要求一致。当前 npm 发布版本为 1.4.0(MIT 许可证)。

方式一:终端安装(推荐)

在终端执行(资料原文命令):

dsh plugin --profile web add @utmotc/dsh-balance-card

若使用带社区安装统计的 dsh1024 CLI,也可执行:

dsh1024 plugin --profile web add @utmotc/dsh-balance-card

安装会自动将包加入 $DSH_HOME/profiles/web、通过 dsh.bundle.patch 写入 dsh.profile.bundles 并应用 loader 补丁,从而自动激活。升级可在插件页更新,或执行:

dsh plugin --profile web add @utmotc/dsh-balance-card@latest

方式二:Web 插件页

在 dsh Web 侧边栏插件页的安装框中粘贴并确认:

  • npm 包名(推荐):@utmotc/dsh-balance-card
  • 或 GitHub 归档:https://github.com/Utmotc/dsh-balance-card/archive/refs/tags/v1.4.0.tar.gz

安装后在同一页面可开关插件。

典型用法

1. 配好凭据后随模型看余额

各厂商通过 dsh 凭据或环境变量解析,例如 DeepSeek 常用 DEEPSEEK_API_KEY(设置命名空间 llm-deepseek-api-key 或 llm-pi-ai),OpenRouter、MiniMax、xAI 等多在 llm-pi-ai 下配置。在 Web 里选好某厂商路由上的模型,侧边栏卡片应显示该厂商名称与读数;若失败,点开详情面板查看 HTTP 或解析错误信息。

2. 与 WorkBuddy / Qoder 联用

选中 workbuddy / workbuddy-ai 或 qoder / qoder-global 模型组时,需已安装并登录对应 connect 插件;本插件从环回状态路由读取积分,例如:

  • workbuddy → /plugins/dsh-workbuddy-connect/status
  • qoder-global → /plugins/dsh-qoder-connect/global/status

3. 自定义厂商(零代码)

  1. 确认厂商提供带 Bearer API Key 的账单 GET 接口。
  2. 编辑 ~/.dsh/model-balance-providers.json(或 DSH_MODEL_BALANCE_CONFIG 指向的文件),在 providers 下增加条目,例如:
{
  "providers": {
    "my-vendor": {
      "name": "My Vendor",
      "baseURL": "https://api.example.com",
      "endpoint": "/v1/balance",
      "keyEnv": "MY_VENDOR_API_KEY",
      "response": { "type": "currency", "currency": "CNY", "balance": "data.balance" }
    }
  }
}
  1. 将 MY_VENDOR_API_KEY 存入凭据或环境变量,重启 dsh(厂商列表按进程缓存),再选中该 my-vendor 路由上的模型验证侧边栏读数。

厂商 id 须与 harness 路由 id 一致;可用 aliases 声明别名。

4. 调整展示与轮询

打开 dsh Web 中的 余额监测 设置页,选择显示位置与轮询间隔、告警阈值等,保存后即可生效,无需重启。

适用场景与注意

适合:经常在 dsh Web 里切换多厂商模型、希望在不离开对话页的前提下核对 API 余额、订阅窗口或 WorkBuddy/Qoder 积分的开发者。

注意:

  • 插件在当前 dsh 进程权限下运行,凭据由宿主解析;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
  • 订阅类额度依赖 dsh-plugin-subscriptions 及相应登录/OAuth;未安装或未登录时会降级显示。
  • 自定义 providers.json 中若使用 expr 表达式,配置文件相当于受信代码,应保证仅本人可写。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-balance-card 把「当前模型对应厂商」的余额、额度或积分收到 Web 侧边栏一张卡里,并与其他 connect / subscriptions 插件分工协作,单位展示也做了区分。若你需要在 harness 里常驻看账,可按上文命令安装 @utmotc/dsh-balance-card,再在插件页或「余额监测」设置里按需开关与调参。

  • 目录页:https://www.skillhub.cn/plugins/Utmotc/dsh-balance-card
  • GitHub:https://github.com/Utmotc/dsh-balance-card
羽毛球分组比赛记分
小程序二维码

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

小夜