前言¶
如果你在 DSH 里使用 OpenCode Go 的订阅跑任务,滚动、周、月三档用量和各自的重置时间分散在服务端接口里。想确认还剩多少额度、什么时候重置,就得中断手头的工作去另外查。
dsh-opencode-go-usage 把这块信息做成一个悬浮小部件,常驻 DSH Web GUI 右下角,每 60 秒刷新一次,让你不用离开当前页面就能掌握用量。
这是什么¶
dsh-opencode-go-usage 是由 kkishapppy 维护的一个 DSH Web 插件,当前版本 0.1.0,MIT 协议。它的定位一句话可以说清:在 DSH Web GUI 右下角实时显示 OpenCode Go 订阅的滚动/周/月用量百分比与重置倒计时。
它分服务端和浏览器两个部分:服务端负责代理用量接口并保管 API key,浏览器部分负责渲染小部件。
核心功能¶
已实现的能力如下:
- 右下角悬浮胶囊显示三档用量与重置倒计时,形如
ⓖ 滚动 0% · 周 2% (2天13时) · 月 1% (30天18时) - 每 60 秒自动刷新,窗口切回前台时立即刷新
- 样式跟随 DSH 主题,基于
--dsw-alias-*token,深浅主题和皮肤自动适配 - API key 只存在服务端(经 dsh 凭据服务解析),不落浏览器
安装与启用¶
安装只需要一条命令:
dsh plugin --profile web add dsh-opencode-go-usage
然后在 profiles/<profile>/cordis.patch.yml 中加入配置:
- id: opencode-go-usage
config:
apiKeyEnv: OPENCODE_GO_API_KEY # 凭据名(默认 OPENCODE_GO_API_KEY)
cacheMs: 60000 # 服务端代理缓存毫秒
两个配置项的含义:
1、apiKeyEnv 指定凭据名,默认为 OPENCODE_GO_API_KEY。key 通过 dsh 凭据服务解析,可以在 .credentials.yaml 或 GUI Models 页配置,与 llm-pi-ai 同源。
2、cacheMs 控制服务端代理的缓存时长,默认 60000 毫秒。
工作原理¶
插件的数据流分两段:
1、服务端代理。插件在服务端请求 GET https://opencode.ai/zen/go/v1/usage(Bearer sk- 认证,OpenAI 兼容端点),并把结果暴露为 /plugins/dsh-opencode-go-usage/usage,带 60 秒缓存。API key 只在服务端出现,浏览器端拿不到。
2、浏览器渲染。小部件挂载在 document.body 顶层,使用 position: fixed 定位,不受容器 transform 或 backdrop-filter 的影响,保证始终显示在右下角。
开发与构建¶
如果要自行构建:
npm i
npx -y tsdown@0.22.2 --config ./tsdown.config.ts
改动的生效方式不同:
1、服务端改动需要重启 DSH。
2、client 改动硬刷新页面即可生效。
依赖方面,package.json 标注 private: true,peerDependencies 为 cordis ^4.0.0-rc.7 和 react ^18.2.0;client inject 依赖 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-slots,platform 为 web。
适用场景与注意¶
这个插件适合通过 OpenCode Go 订阅使用 DSH、需要随时掌握用量与重置时间的开发者。如果你只在偶发场景下调用,60 秒一次的常驻显示可能不是必需的。
安装前注意:插件以当前 dsh 进程权限运行,API key 会经 dsh 凭据服务读取。建议安装前检查源码与许可证,确认无误再启用。
结尾¶
dsh-opencode-go-usage 解决的问题很具体:把 OpenCode Go 订阅的用量和重置时间放到眼前,不用额外操作。如果你正好有这个需求,可以试试。
- GitHub:https://github.com/kkishapppy/dsh-opencode-go-usage
- 社区目录页:https://www.skillhub.cn/plugins/kkishapppy/dsh-opencode-go-usage