前言¶
在 DeepSeek Harness(DSH)里用 OpenCode Go 时,你往往想一眼看清「还剩多少额度、订阅什么时候到期、会不会自动续费」。OpenCode 公开的用量接口 GET https://opencode.ai/zen/go/v1/usage 用 API key 鉴权即可调用,但响应里只有 rolling 等窗口的百分比和重置时刻,没有金额,也没有订阅到期日。社区里常见的 OpenCode 用量类插件(例如 vinyumao、LTctfer、dsh-go-balance 等)因此通常只能展示百分比,无法给出到期时间。
dsh-opencode-go-status 是维护者 0x-0cd 发布的 DSH Web 插件(分类:联网工具),改读控制台状态接口,在侧边栏提供「用量」入口,并在主区展示套餐用量、剩余额度、到期时间与续费状态。下文介绍它的定位、能力与安装配置方式。
这是什么¶
DSH Web 插件 OpenCode Go 订阅状态面板:侧边栏仪表盘图标进入主区面板,汇总 OpenCode Go 的额度与订阅信息。仓库:0x-0cd/dsh-opencode-go-status;社区目录页:skillhub 条目。许可为 MIT;package 版本为 0.1.1。
与公开 /zen/go/v1/usage 不同,宿主端请求:
GET https://opencode.ai/console/api/go/status
Authorization: Bearer <OPENCODE_GO_API_KEY>
仍使用你已有的 OpenCode Go API key,无需浏览器 cookie。响应中的 access.meters(fiveHour、week、month)含 usedMicroCents / limitMicroCents(1e8 microCents = US$1),以及 access.startsAt / access.endsAt、cancelAtPeriodEnd、renewalPending、paymentMethodKind、useBalance、upgradePrice 等字段,供界面展示金额用量与续费相关信息。
核心功能¶
额度与进度¶
- 三个计费窗口各一张额度卡:已用 / 上限金额(如 $9.96 / $60.00)、剩余金额、百分比、进度条与分级配色。
- 主区面板约 60 秒自动刷新,支持手动立即刷新;界面会标明数据来源与更新时间。
订阅与续费¶
- 到期时间:基于
access.endsAt,含实时倒计时与本期开始时间(access.startsAt)。 - 续费状态:自动续费或到期后取消、是否续费处理中、续费币种与支付方式、Zen 余额兜底开关(
useBalance)等可读字段。
界面挂载¶
- 侧边栏:
sidebar.panellist槽,order 40,仪表盘图标;点击切换到主区面板,图标状态由 shell 维护。 - 主区:
main键控槽,key 与入口 id 一致;三张额度卡 + 到期/续费卡。
宿主与浏览器分工¶
浏览器只访问同源路由 /api/dsh-opencode-go-status/status;API key 仅在 DSH 宿主进程内解析并用于出站 GET,不进入浏览器。出站请求仅指向配置中的 statusURL(默认 https://opencode.ai/console/api/go/status),无遥测与第三方端点。配额快照在宿主内存中缓存(默认 cacheSeconds 30 秒),不落盘。
安装与启用¶
README 给出的安装方式如下(二选一,重复挂载会起两个实例):
dsh plugin --profile web add file:/Users/qianneng/Code/dsh_optimize/dsh-opencode-go-status
或将 cordis.patch.yml 里的 insert 行抄进 $DSH_HOME/profiles/web/cordis.patch.yml,再用 file: 指向本插件目录安装。
装完后刷新浏览器即可;若宿主已在运行,有时需要重启 dsh web 才会加载新的插件行。改动宿主端代码后需重新 file: 安装(拷贝而非软链),否则 profile 仍用旧副本。
配置¶
在 cordis.patch.yml 的 insert 行下增加 config::
| 字段 | 默认值 | 说明 |
|---|---|---|
apiKey |
无 | 直接写死 API key(不推荐,优先用凭证) |
apiKeyRef |
OPENCODE_GO_API_KEY |
DSH 凭证引用名,与 opencode-go provider 的 apiKeyEnv 一致 |
statusURL |
https://opencode.ai/console/api/go/status |
上游状态接口 |
timeoutMs |
15000 |
请求超时 |
cacheSeconds |
30 |
宿主端缓存窗口 |
enabled |
true |
总开关 |
密钥解析顺序:apiKey → DSH 凭证服务(apiKeyRef,覆盖 $DSH_HOME/.credentials.yaml、启动环境、.env)→ 进程环境变量。非回环的 statusURL 强制 HTTPS,避免明文 HTTP 泄露密钥。
典型用法¶
- 确保 OpenCode Go API key 已通过
apiKeyRef(默认OPENCODE_GO_API_KEY)或 DSH 凭证配置好,与 opencode-go provider 环境变量名一致即可。 - 按上一节完成 Web profile 安装并刷新或重启
dsh web。 - 在 DSH Web 侧边栏点击仪表盘「用量」入口,在主区查看三窗口额度、到期倒计时与续费状态;需要时可点立即刷新。
开发与本地验证(来自 README):
git config core.hooksPath .githooks
node --check index.js && node --check client.js
node --test test/*.test.mjs
适用场景与注意¶
适合谁:已在 DSH Web 中使用 OpenCode Go,且希望在同一界面看到美元额度、剩余量、订阅到期与续费状态,而不满足于公开 usage 接口的百分比。
运行权限:插件以当前 dsh 进程权限运行,安装前请自行阅读源码与 MIT 许可证;安全审计说明见仓库内 SECURITY-AUDIT.md。
已知限制(README 原文要点):
/console/api/go/status属于 OpenCode 控制台内部接口,未在官方公开文档中,字段可能随上游变动;宿主端对缺失字段做防御性解析,对应卡片显示「—」而不抛错。- Zen 预充值钱包余额无法通过 API key 读取(
/console/api/billing/status对 key 返回 403);本插件展示的额度指 Go 订阅额度,不是 Zen 钱包余额。 - 宿主需能访问
opencode.ai(README 称直连与 HTTP 代理均可)。 cancelAtPeriodEnd=false时到期时刻即续费日,界面上的「到期」与自动续期语义需按此理解。
DSH 生态强调「一切皆插件」;skillhub.cn 为社区目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-opencode-go-status 把 OpenCode Go 的订阅状态从「只有百分比」补全为「金额 + 到期 + 续费」,并放在 DSH Web 侧边栏与主区面板中,密钥留在宿主、浏览器走同源 API。进一步了解与安装见 目录页 与 GitHub 仓库。