dsh-quota-dashboard
bricika/dsh-quota-dashboard
DeepSeek Harness 额度面板:跟随当前会话模型的悬浮胶囊,展示 DeepSeek 余额与官网用量图、OpenCode Go 总额度与分模型额度,以及 GLM / 小米 MiMo 余额。
安装
dsh plugin --profile web add github:bricika/dsh-quota-dashboardREADME
dsh-quota-dashboard
DeepSeek Harness 的额度悬浮面板。右侧边缘有一个小胶囊,点开后可以看:
- DeepSeek 官方 API:余额、可用状态、历史累计消费、赠金;
- DeepSeek 官网用量:近 3 / 7 / 30 天或自定义日期,本地自然日聚合的金额与 Tokens 柱状图,可切换金额 / Tokens;包含请求数、日均消耗、模型明细、API Key 拆分;
- OpenCode Go:官方月度用量池、5 小时 / 本周窗口、重置时间、剩余金额;
- Go 分模型额度:DeepSeek V4.1 Flash、GLM-5.3 Flash、MiMo V2.6 Flash 的已用 / 剩余,并标出当前会话使用的模型;
- GLM / 智谱:账户余额、累计消费、Coding Plan 5 小时 / 周窗口;官方不提供按日用量,插件本地按天采样并画图;
- 小米 MiMo:余额(现金 / 赠金)、Token Plan credits、近 3 / 7 / 30 天用量与金额图表。
这是 DeepSeek Harness(DSH) 插件,不是 OpenCode 插件。OpenCode 有独立的插件 API;详见下方「与 OpenCode 的关系」。
安装
插件管理器(推荐)
侧栏 插件 → 已安装 → 添加插件,填入 npm 包名:
dsh-quota-dashboard
或填本地目录 / tgz:
C:\path\to\dsh-quota-dashboard
C:\path\to\dsh-quota-dashboard-0.2.5.tgz
命令行
dsh plugin --profile desktop add dsh-quota-dashboard
profile 按实际客户端调整(desktop / web)。本地开发时可直接装目录:
dsh plugin --profile desktop add C:\path\to\dsh-quota-dashboard
如果只执行了 pnpm add,确认 profile 的 package.json 的 dsh.profile.bundles 里有 dsh-quota-dashboard;插件管理器会自动处理这一步。
使用
- 悬浮按钮默认只显示一个图标;鼠标移到图标上展开为当前会话模型的额度(Go 显示剩余美元 + 使用率,DeepSeek / GLM / MiMo 显示余额),点击打开面板并自动切到对应标签。
- 悬浮胶囊默认在右侧、权限审批盾牌上方;红色表示需要关注。
- 点击打开面板;
Esc、右上角 ×、或点击面板外关闭。 - DeepSeek 标签:余额卡(余额 / 累计消费左右并排)+ 用量卡。日期范围和金额 / Tokens 切换都在用量卡顶部。
- OpenCode Go 标签:官方用量池在顶部,下面是 5 小时 / 本周窗口和三个分模型卡片;当前模型带「当前」徽标,自动校准的模型带「自动校准」。
- GLM 标签:余额卡 + 用量卡(金额 / Tokens 图表,3 / 7 / 30 天或自定义)。GLM 官方 API 只返回累计消费,不返回按日用量;插件从本次运行起按天记录累计消费差,历史会逐步积累。开通 Coding Plan 后还会显示 5 小时 / 周窗口。
- MiMo 标签:余额卡 + 用量卡(金额 / Tokens 图表,3 / 7 / 30 天或自定义),数据来自 MiMo 官方日用量接口;有 Token Plan 时追加 credits 进度。
- 设置:自动刷新、是否读取官网用量 / 分模型用量、自动校准、DeepSeek API 地址、三个模型的手动额度覆盖。凭据状态会额外列出已配置的 GLM / MiMo Key。
数据来源
| 数据 | 请求 | 凭据 |
|---|---|---|
| DeepSeek API 余额 | GET https://api.deepseek.com/user/balance | DEEPSEEK_API_KEY |
| DeepSeek 官网用量 | GET {platform}/api/v0/usage/by_api_key/amount 与 /cost | DSH 已登录的 DeepSeek 账号(deepseekAccount.getPlatformSession()) |
| DeepSeek 官网钱包摘要 | GET {platform}/api/v0/users/get_user_summary | 同上 |
| OpenCode Go 总额度 | GET https://opencode.ai/console/api/go/status | OPENCODE_GO_API_KEY |
| OpenCode Go 分模型用量 | GET https://opencode.ai/console/api/usage/models?range=30d | 同上 |
| OpenCode Go 本期标价用量 | GET https://opencode.ai/console/api/activity/go?range=mtd | 同上 |
| GLM 账户余额 | GET https://open.bigmodel.cn/api/biz/account/query-customer-account-report | ZAI_API_KEY / ZHIPU_API_KEY / GLM_API_KEY |
| GLM Coding Plan 窗口 | GET https://open.bigmodel.cn/api/monitor/usage/quota/limit | 同上;未订阅时返回 hasPlan:false |
| GLM 按日用量 | 官方不提供;插件把累计消费按天采样到 glm-history.json | 同上 |
| MiMo 账户余额 | GET https://api.xiaomimimo.com/v1/platform/balance | XIAOMI_API_KEY / MIMO_API_KEY |
| MiMo Token Plan | GET https://token-plan-cn.xiaomimimo.com/v1/platform/token_plan | XIAOMI_TOKEN_PLAN_API_KEY(tp-) |
| MiMo 近 7 天用量 | GET https://api.xiaomimimo.com/v1/platform/usage/daily?start_date=…&end_date=… | 同余额 Key |
官网用量接口需要 DeepSeek 账号登录态,只配 API Key 不够;没有登录时余额仍然可读,用量区域会提示「未登录 DeepSeek 账号」。
额度口径:$10 是订阅价,$60 是用量池
OpenCode Go 的 go/status 返回的本期用量池是 $60(month.limitMicroCents),不是 $10。$10 是月费;$60 是本期包含的用量价值(约 6 倍)。
各模型表里的 $80 / $100 / $60 / $15 是同一个 $60 池按模型标价折算出的单模型上限,不是独立钱包,不能相加:
- 用 DeepSeek V4.1 Flash 消耗 $80 标价 ≈ 用完 $60 池(账户若还是 $80 额度);
- 若额度是 $100,则 $100 标价 ≈ 用完 $60 池;
- 用 $15 的高价模型,则 $15 标价 ≈ 用完 $60 池。
因此官方池是最终限制,模型条只是同一池的不同刻度。
自动校准
OpenCode 只暴露总池,不暴露账户实际历史额度;官网表格可能已经改成 $100,但账户仍按订阅时的 $80 在执行。插件会用:
实际额度 ≈ 本期标价用量 × 用量池 / 官方池已用
反推本期用量最多模型的额度,并吸附到 OpenCode 实际提供过的档位($80 / $100 / $60 等)。例如:
- 本期 DeepSeek 标价用量约 $80.1
- 官方池已用约 $57.6 / $60
- 反推约 $83.5 → 吸附到 $80
所以模型条会显示 $80 上限、剩余接近 $0,而不是 $100 / $19。
自动校准只对本期用量最多的模型生效;多模型混用时无法可靠拆分,会保留默认值或你手动填的值。账户中途改额度时会随刷新自动调整;如果暂时不准,可在设置里给对应模型填一个数字固定下来(留空恢复自动)。校准结果保存在本地状态文件中,切换模型后不会立刻回退到默认值。
配置与数据文件
- 设置保存在
%USERPROFILE%\.dsh\quota-dashboard\state.json。 - 凭据读取走 DSH 的凭据 seam;插件不复制、不落盘、不写日志任何密钥。
- 浏览器只拿到整理后的数字和状态,不会拿到 API Key 或账号 token。
- 外部请求只有 DeepSeek 与 OpenCode 官方 API,没有遥测。
刷新与缓存
- 悬浮胶囊每 2 分钟刷新一次摘要。
- 面板打开时按设置间隔(默认 5 分钟)刷新;日期范围切换会立即重新读取。
- Host 缓存:余额 / Go 状态 60 秒,官网用量 / Go 分模型用量 / Go 本期标价用量 3–5 分钟;设置页的「立即刷新」会清空缓存。
回滚
- 插件管理器卸载,或
dsh plugin --profile desktop remove dsh-quota-dashboard; - 从 profile 的
dsh.profile.bundles删除dsh-quota-dashboard,重启; - 删除
%USERPROFILE%\.dsh\quota-dashboard可清除设置与校准缓存。
已知限制
- DeepSeek 官网用量依赖账号登录态;DSH 账号退出后用量不可读。
- Go 分模型额度是自动校准的标价折算值,官方只给总额度池、不给逐模型剩余额度;仅对本期用量最多的模型可靠,多模型混用或账户中途改额度时可能短暂偏差,可手动覆盖。
- 日期范围最多 180 天,且不能选未来日期。
- 所有请求在 Host 侧发出;运行机器需要能访问
api.deepseek.com、platform.deepseek.com、opencode.ai。
与 OpenCode 的关系
这个包只适用于 DSH。OpenCode 的插件 API 不同(@opencode/plugin 的 server / TUI / GUI 三部分),不能直接加载本包。
不过数据层是可复用的:DeepSeek 余额/用量、OpenCode Go 额度都是普通 HTTP API。如果要支持 OpenCode,需要另做一个包:
- OpenCode TUI 插件:加
/quota命令; - OpenCode Desktop GUI 插件:用
./gui-experimental做面板; - 或独立 CLI 仪表盘,DSH 和 OpenCode 都能用。
开发
cd dsh-quota
node test/data.test.mjs
node test/host.test.mjs
node tools/live-probe.mjs 7d
tools/live-probe.mjs 会读取本机 DSH 凭据,真实请求一次并输出脱敏快照到 build/quota-snapshot.json,不会打印密钥。
发布到 npm / GitHub 的步骤见 PUBLISHING.md。
License
MIT