dsh-plugin-opencode-go-usage:在 Harness 输入框旁实时查看 OpenCode Go 套餐额度

前言

在 DeepSeek Harness(DSH)里用 OpenCode Go 跑智能体或对话时,套餐往往按多个时间窗口计费:5 小时滚动、每周、每月。额度还剩多少、何时重置,若只能去 OpenCode 控制台或另开页面查,和当前会话是脱节的。下面介绍社区插件 dsh-plugin-opencode-go-usage:在 Web UI 输入框下方(conversation.composer.dock)常驻一条用量条,与「Token 用量」「会话统计」并列,点击后再展开与官方 stat-dialog 同版式的详情卡片。

这是什么

dsh-plugin-opencode-go-usage 由 keyblues 维护,npm 包名与仓库名一致,许可证 MIT(© 2026 keyblues)。它属于 DSH 生态里的联网工具类插件:Host 侧代你调用 OpenCode 官方用量接口,浏览器只读同源 JSON,不接触 API Key。

一句话定位:在 Harness Web 组合里,实时展示 OpenCode Go 订阅在 5h、本周、本月三个窗口的已用百分比,并支持详情与手动刷新。

界面与交互

安装后,dock 区域大致形态如下(README 示例):

Go  5h ◔6%  ·  本周 ◔2%  ·  本月 ◔15%

每个窗口是一个 14px viewBox、2px 描边的圆环,样式与输入框下方「上下文占用」圆环一致,颜色使用 --dsw-alias-label-tertiary。已用比例达到 70% 圆环变黄,90% 变红。

只有点击整条用量条才会弹出详情卡片,不会在悬停时弹出浮层。卡片版式对齐官方 stat-dialog:内边距 16px、明细两列网格、每个窗口一行名称与加粗百分比、一根进度条、一行重置倒计时与重置时刻;底部有数据来源、更新时间与「刷新」按钮。点卡片外或按 Esc 关闭。

页面每 20 秒轮询一次同源路由(标签页隐藏时暂停)。Host 对上游接口有 15 秒最小请求间隔,多标签共享缓存;轮询失败时保留上一次成功读数,界面不做变暗或闪烁。

数据来源与密钥

Host 请求:

GET https://opencode.ai/zen/go/v1/usage
Authorization: Bearer <OpenCode Go API Key>

返回中 usage.rolling / weekly / monthly 含 status、percent(已用百分比)、resetsAt;旧字段形态 { rollingUsage, weeklyUsage, monthlyUsage } 仍兼容。浏览器仅访问固定路径 GET /opencode-go-usage.json,该路径由插件 Host/Client 约定(index.js 的 ROUTE_PATH 与 client.js 的 ROUTE),不是可配置项。

API Key 解析顺序:

  1. cordis.patch.yml 里插件配置的 apiKey(显式写死,不推荐);
  2. Harness 凭据服务 credentialRef,默认 OPENCODE_GO_API_KEY(对应 ~/.dsh/.credentials.yaml 中 refs.OPENCODE_GO_API_KEY);
  3. OpenCode 本地登录:~/.local/share/opencode/auth.json 的 opencode-go.key(过期时接口返回 api_key_expired,条上显示「API Key 已过期」)。

安装与启用

要求:DSH 的 Web 组合(含 webserver / client-modules / client-ui-conversation)。Node 引擎 >=20(见 package.json)。

从 npm 安装(推荐)

在 Harness 插件管理器里安装 bundle,target 写 npm 包名(可带版本):

plugin_manager install_bundle  target: dsh-plugin-opencode-go-usage
# 或固定版本
plugin_manager install_bundle  target: dsh-plugin-opencode-go-usage@1.0.0

从本地目录安装(开发)

plugin_manager install_bundle  target: <本仓库的绝对路径>

安装后 Host 行激活,浏览器 bundle 经 HMR 载入;必要时刷新页面。卸载:

plugin_manager remove_bundle  target: dsh-plugin-opencode-go-usage

配置

默认无需配置。需要时在 profile 的 cordis.patch.yml 按 id 覆盖:

- id: opencode-go-usage
  name: 'dsh-plugin-opencode-go-usage'
  config:
    # apiKey: oc_sk_xxx
    credentialRef: OPENCODE_GO_API_KEY
    minIntervalMs: 15000
    provider: opencode-go

minIntervalMs 为 Host 上游限流(2000–600000 毫秒),只影响对 opencode.ai 的请求频率,不改变浏览器每 20 秒读本地 JSON 的间隔。

适用场景与注意

适合:已在 DSH Web UI 里长期使用 OpenCode Go,希望在写 prompt 时一眼看到三档窗口用量、并在接近阈值时通过颜色提醒的人。

注意:

  • 插件以当前 DSH Host 进程权限运行,会向 OpenCode 发起联网请求;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,自行评估是否写入凭据或依赖本地 auth.json。
  • 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本介绍仅描述该 bundle 的 documented 行为。

链接

  • 目录页:https://www.skillhub.cn/plugins/keyblues/dsh-plugin-opencode-go-usage
  • 源码与 README:https://github.com/keyblues/dsh-plugin-opencode-go-usage
羽毛球分组比赛记分
小程序二维码

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

小夜