Skip to main content
Back to plugins
L

dsh-opencode-go-usage

ltctfer/dsh-opencode-go-usage

OpenCode Go 套餐用量查询插件:opencode_usage 工具实时查询 opencode.ai 官方用量 API(滚动 5h / 每周 / 每月三个窗口的用量百分比与重置时间),API key 自动从 opencode 认证文件 / 环境变量 / 插件配置解析,无需额外登录。

Install

dsh plugin --profile web add github:ltctfer/dsh-opencode-go-usage

README

dsh-opencode-go-usage

DSH(DeepSeek Harness)插件:OpenCode Go 套餐用量查询

通过 opencode_usage 工具实时查询 opencode.ai 官方用量 API,返回滚动 5 小时 / 每周 / 每月三个计费窗口的用量百分比与重置时间。一次查询 = 一次 HTTP 请求,不消耗任何模型额度。

功能

  • opencode_usage agent 工具:查询三个窗口的用量百分比、状态、重置时间(本地时区展示)
  • 侧边栏「用量」可视化面板(客户端插件,无需构建步骤的手写 bundle):
    • 三条进度条(滚动 5 小时 / 每周 / 每月),按用量分级着色(<60% 绿 / 60-85% 黄 / ≥85% 红)
    • 显示百分比、状态、重置倒计时、重置时刻; 手动刷新,打开面板自动刷新;面板右上角 随时关闭
    • 与 SSH / 任务看板面板互斥(共享 dsh-panel-activate 事件与激活属性,自动互踢)
  • key 自动解析,通常零配置
    1. 插件设置里的 apiKey(secret)
    2. 环境变量 OPENCODE_GO_API_KEY / OPENCODE_API_KEY
    3. opencode 自己的认证文件 ~/.local/share/opencode/auth.json 中的 opencode-go 条目(与 opencode CLI 共用,登录 opencode 后即有)
  • 系统提示词自动向 agent 宣告插件存在与用法
  • 兼容 API 返回格式变化(新旧字段名都解析)

安装

方式一:从 npm 安装(已发布)

dsh plugin --profile web add @dsh-ltctfer/dsh-opencode-go-usage

方式二:本地路径安装(开发调试)

dsh plugin --profile web add "@dsh-ltctfer/dsh-opencode-go-usage@file:E:/dsh插件/dsh-opencode-go-usage"

然后在 profile 的 cordis.patch.yml~/.dsh/profiles/web/cordis.patch.yml)追加:

- insert:
    - id: opencode-go-usage
      name: '@dsh-ltctfer/dsh-opencode-go-usage'

重启 DSH Web GUI(或 dsh web 进程)后生效。

配置项(设置页 / 组合条目 config)

字段默认值说明
apiKey字面 API key(sk-...),可选
apiKeyIdopencode-goauth.json 中存放订阅 key 的条目名
authFile~/.local/share/opencode/auth.jsonopencode 认证文件路径
baseURLhttps://opencode.ai/zen/go/v1/usageAPI 端点
timeoutMs15000请求超时(毫秒)
proxy无(直连)代理 URL,如 http://127.0.0.1:7890
forceIPv4falseIPv6 路由黑洞的网络可设 true 强制 IPv4
announceToAgenttrue是否在系统提示词中宣告插件
enabledtrue总开关

使用

面板:重启 GUI 后,侧边栏会出现「用量」入口,点击打开可视化面板,面板右上角 可关闭(再点侧边栏「用量」重新打开)。

对话:直接对 agent 说「查一下 opencode go 用量」,或要求调用 opencode_usage 工具。输出示例:

window   |  used | status | resets in  | resets at
---------|-------|--------|------------|-----------------------------
rolling  |    0% | ok     |       1h 5m | 2026/8/14 18:21:21
weekly   |   26% | ok     |       2d 3h | 2026/8/17 08:00:00
monthly  |   15% | ok     |      23d 7h | 2026/9/7 15:52:27

架构

浏览器(GUI)                          宿主(dsh web 进程)
┌──────────────────────────┐        ┌──────────────────────────────┐
│ lib/client.js(手写 bundle)│  fetch │ lib/routes.js                 │
│  ├ 侧边栏「用量」入口(DOM 自愈) │ ─────▶ │  GET /api/dsh-opencode-     │
│  └ 用量面板(React 进度条)    │  JSON  │  go-usage/usage(回环围栏)    │
│                          │        ├ lib/usage.js(key 解析+API 调用)│
│ opencode_usage 工具       │ ◀───── │ lib/tools.js                  │
└──────────────────────────┘  工具   └──────────────────────────────┘
  • 客户端 bundle 是 window.__ModuleLoader__.load({id, factory}) 格式的手写文件,宿主经 /plugins/@dsh-ltctfer/dsh-opencode-go-usage/client.js 原样服务,无需打包器
  • 面板样式用壳的 --dsw-alias-* 主题变量,明暗主题自适应
  • 宿主侧多注册了一个只读 JSON 路由(dsh.client manifest + exports["./client"] 声明)

说明与限制

  • 用量数据来自官方 API,反映真实计费窗口,可能有短暂延迟
  • 查询本身不消耗 opencode 额度
  • API key 从本机认证文件读取,不跨网络传输密钥以外的任何数据
  • 若自定义了 opencode 的认证文件路径(XDG_DATA_HOME 等),用 authFile 配置指向它

开发与测试

# 在插件仓库内修改代码后,同步已安装副本(pnpm 对 file: 依赖是拷贝):
dsh plugin --profile web install

# 冒烟测试(需在 profile 目录下运行,以解析 @deepseek-ai/* 依赖):
cp test/ocg-smoke.mjs test/client-smoke.mjs ~/.dsh/profiles/web/
cd ~/.dsh/profiles/web
node ocg-smoke.mjs       # 宿主侧:模块形状 / key 解析 / 真实 API / 工具 / 路由
node client-smoke.mjs    # 客户端:bundle 注册 / CSS 注入 / 挂载 / 入口点击 / 互踢 / 清理

License

MIT

Related plugins