dsh-balance-inquiry

toolstested: passnpmMIT

Balance dashboard, allowing the addition of multiple pay-as-you-go/Token plans, while simultaneously checking balances.

下载量 / Downloads
3,117
依赖体积 / node_modules
1.02 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-balance-inquiry

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-balance-inquiry

[English](./README_en.md) | 简体中文

已发布到 npm:dsh-balance-inquiry

(npm i dsh-balance-inquiry / pnpm add dsh-balance-inquiry)。

在 DSH 左侧边栏底部、「上下文洞察」的上面加一行按钮:

💰 剩余额度:12.34 ¥
  • 多套餐:一个套餐一条配置,侧边栏显示所有套餐里最紧急的那条;左键点这一行打开余额看板,

每个套餐一张圆角长方形卡片(套餐名称 / 剩余额度 / 上次查询时间)。

  • 看板里:左键点卡片打开这个套餐的官网地址,另有「添加套餐」「立即查询」按钮,

按 Esc 或点遮罩关闭;要看/改某个套餐就去 设置 → 余额查询 里点它的长条按钮。

  • 设置页分两级:一级是「添加套餐」+ 已添加套餐的长条按钮列表 + 通用设置;点「添加套餐」弹窗先选

按量计费(API Key)还是 Token Plan / Coding Plan,再选厂商;点长条按钮进入二级编辑页

(改名称 / 厂商 / 令牌 / 接口地址 / 官网地址,或删除套餐)。

  • 支持 New API(one-api / new-api 系)、DeepSeek 官方、StepFun、SiliconFlow(国内 / 国际)、

OpenRouter、Novita AI 六类原生余额接口,以及自定义用量脚本

(({ request: {…}, extractor: function (response) {…} }),支持

{{baseUrl}} / {{apiKey}} / {{accessToken}} / {{userId}} 占位符)。

  • 支持 8 家编程套餐(Token Plan / Coding Plan)的用量查询:Kimi For Coding、智谱 GLM、

智谱 GLM 团队版、MiniMax、ZenMux、火山方舟(Agent / Coding Plan)、OpenCode Go、Command Code;

显示每个时间窗口(5 小时 / 周 / 月)的已用百分比与剩余百分比,剩余不足 10% 时变黄。

  • New API 默认 GET {baseUrl}/api/user/self,显示值 = data.quota ÷ 换算比例

(默认 500000,也就是 1 ¥ = 500000 quota);按积分 / credits 计的套餐不显示换算比例。

  • 没有「自动识别」:厂商由套餐显式指定,接口地址不再参与判断。
  • 切换模型供应商自动联动:套餐的「供应商ID」可以同时绑定多个 DSH provider:

官方登录 deepseek-official、账号登录 deepseek-account,以及 cordis.patch.yml

里 llm-pi-ai 配置的自定义路由(如 cotton-api)。

绑定通过一个独立弹窗完成:列出所有已添加的供应商,支持搜索、全选与逐个勾选,可多选。

当您在 DSH 中切换到其中任意一个供应商时,左下角自动感知并显示该套餐的余额;未匹配或未绑定时回退展示所有套餐中最紧急的一项。

  • 多套餐 / 多币种支持:侧边栏默认显示额度最少(最紧急)或当前激活供应商的那一项,鼠标悬停的 tooltip 里列出所有套餐

(含每个套餐的各档位名称与重置时间)。

  • keep-last-good:瞬时失败(网络错误 / 超时 / 5xx / 429)时,10 分钟内继续展示上次成功的余额,

tooltip 标注「上次成功:…」;鉴权失败等确定性失败立即透出并清掉旧值,避免显示过期额度。

  • 余额只在为 0 时变红;只有按百分比的档位才做「剩余 < 10%」的黄色预警。
  • 请求默认由 DSH 宿主进程发出,不受浏览器跨域限制;宿主通道不可用时自动回落浏览器直连。
  • 安全边界:取消向宿主获取 baseURL 等敏感网络信息的行为;仅通过受约束的本机路由读取 provider id 用于匹配。

安装

dsh plugin --profile desktop add dsh-balance-inquiry
profile 的依赖列表和 bundles 是启动时读取的,所以装好后要重启 DSH 桌面端
(Web 版则重启 dsh web)。重启后侧边栏底部就会多出这一行。

配置

打开 设置 → 余额查询(一级页):

插件不预设任何站点:接口地址与官网地址都是空的,也不会自动去查任何第三方服务。
第一次使用请点「添加套餐」自己填;两个地址都为空时,看板卡片不会跳转。

字段 · 说明

套餐名称 · 看板卡片与侧边栏 tooltip 上显示的名字,留空则用厂商名

计费类型 · 按量计费(API Key) 或 Token Plan / Coding Plan,决定可选的厂商与要填的字段

厂商 · 按量计费:New API / One API、DeepSeek、StepFun、SiliconFlow(国内 / 国际)、OpenRouter、Novita AI、自定义脚本;编程套餐:Kimi For Coding、智谱 GLM、智谱 GLM 团队版、MiniMax、ZenMux、火山方舟、OpenCode Go、Command Code

接口地址 · 例如 https://api.example.com,末尾不要带 /;原生厂商用官方地址、不显示该字段

用量接口地址 · 编程套餐用;ZenMux 必填,火山方舟用来推断区域(形如 https://ark.cn-beijing.volces.com/api/plan/v3)

访问令牌 / 控制台令牌 · New API 用控制台「系统访问令牌」(不是 sk- 开头的 API Key),作为 Authorization: Bearer … 发送;官方厂商 / 编程套餐填对应平台的令牌

用户 ID · 作为 New-Api-User 请求头发送,部分站点必填

组织 ID / 项目 ID · 选「智谱 GLM 团队版」时出现,分别作为 bigmodel-organization / bigmodel-project 请求头发送

AccessKey ID / SecretAccessKey · 选「火山方舟」时出现,用于 OpenAPI 签名(不是推理用的 API Key)

官网地址 · 看板卡片左键打开的网址;留空则改用接口地址

供应商ID · 绑定当前套餐到 DSH 的 provider id,可多选。点「选择供应商」打开独立弹窗,里面列出全部已添加的供应商(官方 API Key 是 deepseek-official、官方账号登录是 deepseek-account,自定义供应商是 cordis.patch.yml 里 llm-pi-ai 路由的 id,如 cotton-api),支持搜索、全选、逐个勾选。切换到其中任意一个供应商时,左下角自动显示这个套餐的余额;一个都不选则始终按最紧急额度展示

额度换算比例 / 货币单位 · 只有 New API 与自定义脚本显示;按积分 / credits 计的套餐不显示

自定义脚本 · 选「自定义脚本」时出现,旁边有「填入 New API 模板 / 通用模板」按钮

自动刷新间隔 · 分钟,0 = 不自动查询;默认 5 分钟(通用设置)

请求超时 · 秒,2–30,默认 10(通用设置)

配置存在 DSH 主目录下的两个 YAML 文件里(默认 $DSH_HOME/dsh-balance-inquiry/,

没设置 DSH_HOME 时退回 ~/.dsh/dsh-balance-inquiry/):

文件 · 内容

config.yml · 通用设置、套餐列表(不含任何密钥)、每个套餐最近一次读数

credentials.yml · 每个套餐的密钥,按套餐 id 分组:访问令牌、用户 ID、组织 / 项目 ID、AccessKey 等

拆成两个文件是为了让 config.yml 可以放心分享或提交到仓库,密钥单独收好即可。

两个文件都是普通 YAML,可以直接用编辑器改;插件每次写入都是「先写 .tmp 再改名」的原子写,

不会因为中途崩溃留下半个文件。目录里只有这两个文件,没有别的。

老版本(0.6.0 及以前)把配置放在渲染进程的 localStorage(dsh-balance-inquiry:accounts /

:settings / :results),升级后第一次打开会自动搬到 config.yml 并把 localStorage 里那份删掉

(留着会变成第二份真相,宿主路由不可用时过期数据会顶上来)。之后 localStorage 只在宿主路由

不可用(纯浏览器环境)时作为唯一存储。设置页底部会显示当前实际使用的目录。

各供应商的端点

计费类型 / 厂商 · 端点 · 取值

按量计费 · New API · GET {baseUrl}/api/user/self · data.quota ÷ 换算比例

DeepSeek · GET https://api.deepseek.com/user/balance · balance_infos[].total_balance(每个币种一条)

StepFun · GET https://api.stepfun.com/v1/accounts · balance(CNY)

SiliconFlow · GET https://api.siliconflow.{cn,com}/v1/user/info · data.totalBalance

OpenRouter · GET https://openrouter.ai/api/v1/credits · total_credits - total_usage

Novita AI · GET https://api.novita.ai/v3/user/balance · availableBalance ÷ 10000(USD)

响应解析、错误文案(Network error: … / Authentication failed (HTTP 401) /

Failed to parse response: …)、脚本引擎的字段校验与 200 字符错误体预览,都由插件自己实现,

可以在「设置 → 余额查询」里看到每次查询的具体原因。

编程套餐(Token Plan / Coding Plan)

在「添加套餐」弹窗里选 Token Plan / Coding Plan,再选厂商(不再有自动识别)。

编程套餐没有"余额"这个概念,所以显示的是每个时间窗口的用量百分比:看板卡片取最紧急的一项

(已用最多 / 剩余最少),tooltip 与编辑页列出全部窗口。

厂商 · 端点 · 需要填写

Kimi For Coding · GET https://api.kimi.com/coding/v1/usages · 访问令牌

智谱 GLM · GET {open.bigmodel.cn \ · api.z.ai}/api/monitor/usage/quota/limit · 访问令牌(按接口地址判断国内 / 国际站)

智谱 GLM 团队版 · GET https://open.bigmodel.cn/api/monitor/usage/quota/limit?type=2 · 访问令牌 + 组织 ID + 项目 ID(不参与自动识别,需手动选)

MiniMax · GET {api.minimaxi.com \ · api.minimax.io}/v1/api/openplatform/coding_plan/remains · 访问令牌(按接口地址判断国内 / 国际站)

ZenMux · GET {接口地址}/api/usage · 访问令牌 + 接口地址(或用 ZenMux 的用量脚本地址)

火山方舟(Agent / Coding Plan) · POST https://open.volcengineapi.com/?Action=GetAFPUsage\ · GetCodingPlanUsage&Version=2024-01-01 · AccessKey ID + SecretAccessKey(OpenAPI 签名,按接口地址推断区域

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::15,最后更新 2026-10-24

Links

GitHub · Homepage · npm

Same category