@local/dsh-quota
DeepSeek Harness 状态栏多厂商额度监控插件:智谱 GLM、OpenCode Go、Kimi、小米 Token 套餐、DeepSeek 官方(余额 + 消耗估算),附今日/7天/30天 Token 用量统计。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:shy3130/dsh-quota說明文件
閱讀完整 README ↗配置
凭据
| 厂商 | 需要的凭据 | 获取方式 |
|---|---|---|
| 智谱 GLM | ZAI_CODING_CN_API_KEY | 智谱开放平台 API Key(与模型路由同一个) |
| OpenCode Go | OPENCODE_GO_API_KEY | OpenCode Zen 后台的 API Key |
| Kimi For Coding | KIMI_API_KEY,或 DSH 里 Kimi 的 OAuth 登录 | 优先读 DSH 凭据记录 llm-pi-ai/kimi-coding 的 access token;没有时用 sk-kimi-... API Key |
| 小米 Token 套餐 | XIAOMI_MIMO_SESSION_COOKIE | 用量接口只认浏览器 SSO Cookie(tp-... API Key 查不了):登录 platform.xiaomimimo.com → DevTools → Cookies → 整条复制 |
| DeepSeek 官方 | 通常不用(DSH 已登录 DeepSeek 账号即可);否则 DEEPSEEK_API_KEY | 账号模式走 DSH 的 deepseekAccount 服务;API Key 模式走官方 GET /user/balance |
凭据可以放在环境变量里,也可以经 DSH 的凭据服务按上面的名字保存(插件只持引用名,不落盘)。
来源地址与凭据引用(可选)
插件行上的 config 可覆盖各来源的 baseUrl 与凭据引用:
- insert:
- id: dsh-quota
name: '@local/dsh-quota'
config:
sources:
zhipu:
baseUrl: 'https://open.bigmodel.cn'
credentialRef: 'ZAI_CODING_CN_API_KEY'
opencode:
baseUrl: 'https://opencode.ai'
credentialRef: 'OPENCODE_GO_API_KEY'
kimi:
baseUrl: 'https://api.kimi.com'
credentialRef: 'KIMI_API_KEY'
xiaomi:
baseUrl: 'https://platform.xiaomimimo.com'
credentialRef: 'XIAOMI_MIMO_SESSION_COOKIE'
指示器默认形态
面板底部可随时切换柱状 / 环状指示器,选择记在浏览器 localStorage(键 dsh-quota:indicator),刷新后保持。想改默认值(没点过切换的新环境):
- insert:
- id: dsh-quota
name: '@local/dsh-quota'
config:
indicator: ring # bar(默认)| ring
默认值经宿主路由
/quota/config读取,修改后需重启 DSH;面板内的切换只需刷新页面。
使用与工作原理
自动切换
徽标优先跟随当前会话的模型(与输入框模型芯片同源,modelSelection 投影的 next ?? lastUsed):打开 / 切换会话、或在会话里换模型,徽标立即切换到对应厂商;新会话没有选择记录时退回「默认模型」(agentDefaultModel)。宿主路由 GET /quota/active 把 provider 映射到额度来源(客户端可带 ?provider=&model= 查询参数做会话级覆盖):
| provider | 来源 | 数据接口 |
|---|---|---|
zai-coding-cn / zai | 智谱 GLM | GET https://open.bigmodel.cn/api/monitor/usage/quota/limit |
opencode-go / opencode | OpenCode Go | GET https://opencode.ai/zen/go/v1/usage |
kimi-coding | Kimi For Coding | GET https://api.kimi.com/coding/v1/usages |
xiaomi-token-plan-cn / -ams / -sgp / xiaomi | 小米 Token 套餐 | GET https://platform.xiaomimimo.com/api/v1/tokenPlan/usage |
deepseek-account / deepseek-api-key / deepseek | DeepSeek 官方 | DSH 账号服务(平台钱包)或 GET https://api.deepseek.com/user/balance |
| 其它 | 无 | 徽标自动隐藏 |
客户端每秒查询一次 /quota/active(宿主只读内存,开销可忽略),窗口重新获得焦点、会话切换、模型选择保存时都会立即查询;额度数据本身每 60 秒刷新一次。
徽标示意
套餐等级沿用官方命名(面板右上角显示 套餐 MAX / 套餐 PRO,不做翻译)。
GLM 5h 21% ▰ · 周 6% ▰ ← 智谱(zai-coding-cn)
OpenCode 5h 8% ▰ · 周 3% ▰ · 月 1% ▰ ← OpenCode Go(opencode-go)
Kimi 5h 24% ▰ · 周 42% ▰ ← Kimi For Coding(kimi-coding)
小米 套餐 12% ▰ · 月 17% ▰ ← 小米 Token 套餐(xiaomi-token-plan-*)
DeepSeek 余额 ¥85.31 · 今日 ¥1.26 ← DeepSeek 官方(deepseek-account)
数据口径
各家接口字段与界面细节(点开展开)
- 两个接口返回的都是已用百分比。智谱的
TIME_LIMIT同时给696/4000与percentage: 17,可证percentage= 已用;OpenCode 的rolling/weekly/monthly同理。面板里同时给「剩余」。 - 智谱窗口:
TOKENS_LIMIT(unit=3,number=5)→ 5 小时、TOKENS_LIMIT(unit=6)→ 本周、TIME_LIMIT→ 本月工具额度(含分项)。 - OpenCode 窗口:
rolling→ 5 小时(官方文档:5-hour = 月额度的 20%)、weekly→ 本周(50%)、monthly→ 本月(100%);三个窗口都显示在徽标上。 - Kimi 窗口:
usage→ 本周汇总,limits[]里window.duration=300 MINUTE的是 5 小时窗口;token 数用「万 / 亿」紧凑显示。 - 小米窗口:
usage.items的plan_total_token(套餐)、compensation_total_token(补偿,仅有额度时显示)、monthUsage.items的month_total_token(本月总量);接口给的是 token 数,百分比由 used/limit 计算。 - 重置倒计时用短单位、小写:
3h 12m、6d 21h,整点省略分钟、整天省略小时、不足 1 分钟 `
HTTP 路由
插件注册的路由一览(点开展开)
| 路由 | 用途 |
|---|---|
GET /quota/active | 当前模型 → { provider, model, source } |
GET /quota/config | 界面偏好({ indicator: 'bar' | 'ring' }) |
GET /quota/tokens?range=today|7d|30d[&provider=deepseek] | Token 用量统计(读本机会话日志聚合,可过滤厂商) |
GET /quota/deepseek | DeepSeek 官方余额(总余额 / 充值 / 赠送) |
GET /quota/zhipu | 智谱额度(归一化后) |
GET /quota/opencode | OpenCode Go 额度(归一化后) |
GET /quota/kimi | Kimi For Coding 额度(归一化后) |
GET /quota/xiaomi | 小米 Token 套餐额度(归一化后) |
所有路由都带 DSH 登录门;密钥只在宿主进程内使用,不会进入返回给浏览器的 JSON。