前言¶
DSH 通过插件扩展 Web 界面。如果你在 DSH Web 中使用 OpenCode Go 订阅,dsh-go-balance 会把滚动、每周、每月三个配额窗口的剩余百分比放到输入框工具行右侧,方便在输入附近查看额度。
这是什么¶
dsh-go-balance 是 iamfromchangsha 维护的 DSH Web 插件,许可证为 MIT。它面向 DSH Web UI,在输入框工具行右端显示 OpenCode Go 订阅余额胶囊。
核心功能¶
- 在 DSH Web 输入框工具行右侧显示 OpenCode Go 订阅余额胶囊,展示滚动、每周、每月剩余百分比。
- 使用 API 密钥轮询
https://opencode.ai/zen/go/v1/usage,获取配额剩余数据。 - 悬停显示已用百分比、各窗口重置时间、数据更新时间。
- 低余额警示:任一窗口剩余低于
30%变黄,低于15%变红。 - 刷新失败时保留上次快照并淡化标记;未配置凭据或尚无数据时不渲染。
- API 密钥运行时经 DSH 凭据服务解析,仅留在 host 进程内;仓库不含密钥,且不下发到浏览器。
- 包含并发去重、错误脱敏、Origin 防护、每地址
120次/分钟速率限制以及percent范围校验。
安装与启用¶
先确认你有有效的 OpenCode Go 订阅,并准备 OPENCODE_ZERO_API_KEY 凭据。
1、安装插件:
dsh plugin --profile web add dsh-go-balance
2、重启 DSH:
dsh web
安装后插件会自动加入 profile 的 bundle 层,无需其他配置。
也可以从 GitHub 仓库安装:
dsh plugin --profile web add github:iamfromchangsha/dsh-go-balance
在插件仓库目录下执行本地开发目录安装:
dsh plugin --profile web add file:./
典型用法¶
配置凭据:在 $DSH_HOME/.credentials.yaml 或进程环境变量中设置 OPENCODE_ZERO_API_KEY。这里的值是你的 Go 订阅 API 密钥。
重启 DSH 后打开 Web 界面,输入框工具行右侧会出现余额胶囊。悬停胶囊可查看已用百分比、各窗口重置时间和数据更新时间。
如需覆盖轮询间隔,在 $DSH_HOME/profiles/web/cordis.patch.yml 中配置:
- id: go-balance
config:
intervalMs: 120000
intervalMs 用于覆盖轮询间隔,单位由键名表示为毫秒。
开发或校验插件文件时,可以执行:
node --check lib/index.js && node --check lib/client.js
lib/client.js 随仓库提交并随包发布,安装时无需构建。
安全与运行边界¶
- API 密钥仅经
Authorization: Bearer发给opencode.ai。 - API 密钥只存在于 host 进程内存,不落盘、不进日志、不过
/go-usage。 - DSH webServer 默认只绑定回环。
/go-usage拒绝非回环Origin的浏览器跨站读取,并带每地址120次/分钟的内存级速率限制。- 插件对
percent做范围校验。
适用场景与注意¶
适合在 DSH Web 中使用 OpenCode Go 订阅、希望快速查看额度剩余的开发者。使用前注意:
- 需要有效的 OpenCode Go 订阅,且 DSH host 上配置了
OPENCODE_ZERO_API_KEY凭据。 - 仅支持 Web 界面,因为渲染的插槽属于 DSH Web UI。
- 快照是面向用户的账户额度参考,不是计费记录。
- 插件以当前 DSH 进程权限运行,安装前应检查源码、依赖与许可证。
peerDependencies要求:react ^18.2.0@deepseek-ai/cordis ^4.0.1@deepseek-ai/dsh-credentials ^0.1.0-rc.6
链接¶
GitHub:
https://github.com/iamfromchangsha/dsh-go-balance