dsh-opencode-go-status:OpenCode Go 订阅状态面板

前言

在 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 泄露密钥。

典型用法

  1. 确保 OpenCode Go API key 已通过 apiKeyRef(默认 OPENCODE_GO_API_KEY)或 DSH 凭证配置好,与 opencode-go provider 环境变量名一致即可。
  2. 按上一节完成 Web profile 安装并刷新或重启 dsh web。
  3. 在 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜