dsh-quota-cards
DSH 额度查询插件:在消息输入框左侧常驻一张额度 Card,随当前模型自动切换, 展示对应账号的额度/流量,支持手动刷新(带防抖)和按周期自动刷新。
功能
输入框左侧额度 Card(conversation.input.left)
- DeepSeek:显示账号余额(总额,含赠送/充值明细的 tooltip)。凭据与自动刷新周期在设置里配置。
- OpenCode Go:显示 5小时(滚动)/ 每周 / 每月 三个窗口的剩余 Token 流量百分比(tooltip 里附已用百分比与重置时间)。
- 跟随模型切换:Card 每次刷新时都会通过
session.models重新解析当前提供方;
deepseek* 提供方显示余额卡,opencode* 提供方显示流量卡,其余提供方显示占位提示。 回合结束后(running 翻转)、连接重置、设置变更时都会立即重新校验模型。
- 手动刷新按钮:点击立即刷新(绕过 Host 缓存);请求进行中或 2 秒防抖窗口内的重复点击会被忽略。
- 自动刷新:按设置里的周期(1 / 5 / 10 / 30 / 60 分钟)自动拉取;每次成功拉取后按最新周期重排下一次。
设置 → 额度查询
- DeepSeek 余额:Credential 引用(默认
DEEPSEEK_API_KEY)+ 自动刷新周期;带"已配置/未配置"状态徽标。 - OpenCode Go 流量:Credential 引用(默认
OPENCODE_GO_API_KEY)+ 自动刷新周期。 - 保存即生效(
live),密钥值永远不会返回给浏览器。
数据来源与安全
- DeepSeek:
GET https://api.deepseek.com/user/balance,Authorization: Bearer <key>。 - OpenCode Go:
GET https://opencode.ai/zen/go/v1/usage,Authorization: Bearer <key>
(Anthropic 兼容 key,与 ANTHROPIC_BASE_URL 指向 opencode.ai/zen/go 时使用的相同)。
- 密钥只在本机 Host 进程内通过
ctx.credentials.resolve()解析,浏览器端只拿到拉取后的只读结果;POST写设置校验同源请求。 - Host 端按"提供方周期"做内存缓存;手动刷新(
force=1)绕过缓存。
安装
前提:已安装 DSH(dsh web 可正常运行),且 pnpm 在 PATH 上(dsh plugin 依赖 pnpm)。
# 1. 解压 zip,得到 dsh-quota-cards 文件夹(假设在 D:\plugins\dsh-quota-cards)
# 2. 安装到 web profile(file: 形式)
dsh plugin --profile web add file:D:/plugins/dsh-quota-cardsdsh plugin add 会转发给 pnpm 安装,并自动把 @dsh-external/dsh-quota-cards 加入该 profile 的 dsh.profile.bundles 层。
# 3. 重启 dsh web
# 4. 打开设置 → 额度查询,确认/修改两个 Credential 引用
# 在 .credentials.yaml(或环境变量)里保证对应凭据存在,例如:
# DEEPSEEK_API_KEY: sk-xxxx
# OPENCODE_GO_API_KEY: sk-yyyy
# 5. 回到对话页,输入框左侧即可看到额度 Card卸载
dsh plugin --profile web remove @dsh-external/dsh-quota-cards
# 然后重启 dsh web兼容性
- 依赖 DSH 主机组合提供:
settings、credentials、sessions、agentDefaultModel、webServer(可选)服务,以及客户端slots、connection服务与conversation.input.left、settings.section槽位。 - 提供方匹配按 provider id 判断(包含
deepseek→ 余额卡;包含opencode→ 流量卡);DeepSeek 官方提供方为deepseek-official,OpenCode Go 常见提供方名为opencode-go。 - 无第三方 npm 运行时依赖(
schemastery等为 peerDependencies,复用 profile 内已装版本)。