dsh-opencode-go-usage
Floating OpenCode Go quota meter for the DSH Web UI — live remaining % for the 5h / weekly / monthly windows.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 21, 2026
- Updated
- Aug 21, 2026
Introduction
Go Meter — DSH 的 OpenCode Go 剩余额度实时小窗
产品名 Go Meter;npm 包名 / 仓库名
@deepseek-ai/dsh-opencode-go-usage。介绍文案见 GITHUB_INTRO.md。
当当前会话使用的模型来自 OpenCode Go 订阅时,在 DSH Web 界面右侧边缘显示一个常驻小窗,实时展示三个配额窗口的剩余额度:
- 5h 滚动(rolling):最近 5 小时滚动窗口
- 本周(weekly):自然周
- 本月(monthly):自然月/订阅周期
每行显示「剩余百分比 + 重置倒计时」,行下为绿色进度条(自左向右表示剩余比例);剩余 ≤30% 转橙,≤10% 转红。模型切换到其他 provider 时小窗自动隐藏。
特性
- 📍 右侧浮层小窗(
shell.overlay官方加性席位),不遮挡任何列;可折叠为小徽章「Go 剩 xx%」 - 🔄 自动刷新(默认 30s,可配 15/60/120s;会话切换、重连、切回前台时立即刷新)
- ⚙️ 设置页可配:启用开关、provider id、刷新间隔、显示的窗口、默认折叠
- 🔐 代理式数据通路:插件服务端半区经 DSH
credentials服务解析 API key,调 OpenCode 官方GET https://opencode.ai/zen/go/v1/usage;key 永不进入浏览器、不写日志 - 🛡️ 错误兜底:key 未配置 / 鉴权失败 / 未绑定订阅均给出可见错误并可重试;连续失败保留旧数据并标记「数据过期」
界面
- 小窗:右上角小卡片,标题 + 当前模型名 + 三窗口行(剩余% + 倒计时,行下进度条)+「更新于 HH:MM:SS」
- 折叠态:右侧小圆点徽章「Go 剩 xx%」,点击展开
- 设置:「设置 → OpenCode Go 额度」
安装(官方方式)
前置:dsh 已安装且目标 profile(默认 web)在运行。本插件通过官方的 dsh plugin add 安装(dsh plugin 是 pnpm 的薄转发层);包内声明了 dsh.bundle.patch(自带 cordis.patch.yml),因此 plugin add 一步即可完成安装,无需手动编辑任何 profile 配置。
# 方式一:仓库脚本(自动 npm pack + dsh plugin add)
bash install.sh
# 方式二:手动执行官方命令
npm pack -y # 产物 deepseek-ai-dsh-opencode-go-usage-<ver>.tgz
dsh --profile web plugin add ./deepseek-ai-dsh-opencode-go-usage-<ver>.tgz
安装成功后重启 dsh(让 profile 重新组合 bundle 层),刷新浏览器即可看到小窗。
验证
重启并刷新页面后:
- 当前会话模型为
opencode-go(或 baseURL 指向 opencode.ai/zen 的 provider)→ 右侧出现小窗,三窗口数值应与 opencode.ai 工作区页面一致; /model切到其它 provider → 小窗消失,切回恢复;- 命令行核对(把
<dsh-address>换成你实际访问 dsh 的地址):# 客户端插件已加载(应以 window.__ModuleLoader__.load( 开头) curl -s http://<dsh-address>/plugins/@deepseek-ai/dsh-opencode-go-usage/client.js | head -c 80 # 代理端点:ok:true 且三窗口数值与 opencode.ai 工作区页面一致 curl -s http://<dsh-address>/dsh-opencode-go-usage/usage
数据来源与口径
- 上游:OpenCode 官方(未文档化)用量接口
GET https://opencode.ai/zen/go/v1/usage,鉴权Authorization: Bearer <key>(另带x-api-key);返回三个窗口{status, percent, resetsAt},percent为已用百分比,小窗显示剩余 = 100 − percent。 - 接口由社区经 cc-switch#6433(2026-08-13) 公开,OpenCodeMonitor 等项目生产使用;未写入官方文档,若上游变更地址,改
lib/index.js顶部USAGE_URL常量即可。 - Provider 识别:DSH settings 中 id 为
opencode-go的 provider,或自定义 provider 的 baseURL 含opencode.ai/zen;取其apiKeyEnv指向的凭据(dsh-credentials 解析,支持 env/文件)。 - 服务端 15s 缓存 + 单飞去重,轮询不会打爆上游。
卸载(官方方式)
dsh --profile web plugin remove @deepseek-ai/dsh-opencode-go-usage
随后重启 dsh 并刷新页面;plugin remove 会自动把本插件从 dsh.profile.bundles 层移除(不再加载),无需手动清理配置。
打包与发布
npm pack # 产物 deepseek-ai-dsh-opencode-go-usage-<ver>.tgz(已被 .gitignore 排除,不入库)
发布到 npm 前把 package.json 的 "private": true 去掉;GitHub 仓库发布无需改动。