v587d/dsh-opencode-go-usage
一个DeepSeek Harness(dsh)捆绑包,用于在Web GUI的编辑器停靠栏中显示OpenCode Go订阅使用情况——与内置对话统计行位于同一位置。
项目介绍Project Overview
DSH 插件 bundle,在 Web 界面的输入框上方 dock 显示 OpenCode Go 订阅用量。展示 5h 滚动、每周、每月三个窗口的百分比与重置倒计时,按阈值变色,10s 轮询且仅在当前模型走 opencode-go provider 时可见;切到其他 provider 自动隐藏。可通过界面内 Set 面板或环境变量配置 cookie 与 workspace id。需注意:cookie 是完整用户会话,应像密码一样妥善保管并限制配置文件权限。
A DSH bundle plugin that displays OpenCode Go subscription usage in the Web UI's dock above the input box. It shows percentage and reset countdown for three windows (5h rolling, weekly, monthly), color-coded by threshold, polled every 10s, and visible only when the current model uses the opencode-go provider. Cookie and workspace id can be configured via the in-UI Set panel or environment variables. Note: the cookie is a full user session and should be protected like a password, with config file permissions restricted.
请帮我了解并安装插件:【dsh-opencode-go-usage】【https://github.com/v587d/dsh-opencode-go-usage】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-ocgo-usage
把 v587d/dsh-opencode-go-usage 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-opencode-go-usage
English | 中文

一个 DeepSeek Harness (dsh) bundle,在 Web 界面的输入框上方 dock(与内置 token 统计同位置)显示 OpenCode Go 订阅用量。
它是 pi-ocgo-usage(Pi 插件)的 Web 对应物:三个用量窗口(5h 滚动 / 每周 / 每月)的百分比与重置倒计时,按阈值变色,让你在窗口耗尽、请求被限流之前就发现。
OpenCode Go: 5h 0% (1h 23m) · wk 65% (2d 20h) · mo 83% (6d 21h) · upd 20:15
特性
- 三个窗口 —— 5h 滚动 / 每周 / 每月 的百分比 + 重置倒计时
- 颜色阈值 —— 正常 → 黄色警告(≥80%)→ 红色错误(≥90% 或已限流)
- 数据新鲜度 ——
upd HH:MM显示最近一次成功抓取时间 - 轻量轮询 —— 每 10s 轮询(切回标签页立即刷新);host 端 300s 缓存(TTL 可配)+ 60s 失败冷却,不会频繁打扰 opencode.ai
- Provider 感知 —— 仅当会话当前模型走
opencode-goprovider 时显示;每次轮询读取内存中的实时模型选择(session.models,毫秒级),切到 DeepSeek 官方等其它 provider 后一个轮询周期内自动隐藏,切回自动恢复(与 pi-ocgo-usage 行为一致) - 点击展开 —— 详情面板显示每个窗口的重置倒计时,左下角
Set可配置凭据,右侧refresh upd HH:MM手动刷新 - 内置凭据编辑器 —— 无需碰终端:
Set面板直接修改 workspace id 与 cookie(输入框以••••+ 末尾 4 位显示,点击外部 / Esc / 保存确认写入) - 优雅降级 —— 配置缺失显示
<err:noconfig>,HTTP 失败显示<err:httpXXX>;出错时点击 chip 直接进入 Set 面板 - Cookie 只在 host 侧 —— 浏览器只访问同源
/api/ocgo-usageJSON 端点,cookie 永不进入页面
⚠️ 需要 OpenCode Go 会话 cookie。 该 cookie 是完整用户会话(不是 API key),可访问你 OpenCode 账户的全部内容。请像对待密码一样对待它——见 配置。
环境要求
- DeepSeek Harness
0.1.0-rc.6或更新(web profile) PATH上有 pnpm(dsh plugin需要)
安装
这是一个标准的 dsh bundle:package.json 声明了 dsh.bundle,通过 dsh plugin --profile web add <spec> 安装(pnpm 转发器),自动加入 profile 的 dsh.profile.bundles。仓库内置预构建的 lib/ 产物,安装无需任何构建步骤或构建权限——遵循官方 publish 指南。
从 GitHub 安装(推荐)
dsh plugin --profile web add github:v587d/dsh-opencode-go-usage
因为 lib/ 已提交到仓库,pnpm 直接安装构建好的包,不会要求构建脚本授权。
从 npm 安装(发布后)
dsh plugin --profile web add dsh-ocgo-usage
关于包名: 仓库名为
dsh-opencode-go-usage,但 npm 上同名包已被他人抢先占用(一个功能类似的第三方插件),因此 npm 发布名定为dsh-ocgo-usage。GitHub 安装(推荐)不受影响:dsh plugin --profile web add github:v587d/dsh-opencode-go-usage。
从 tarball 安装
pnpm pack # 在本仓库内 → dsh-ocgo-usage-0.1.0.tgz
dsh plugin --profile web add ./dsh-ocgo-usage-0.1.0.tgz
本地开发安装
git clone https://github.com/v587d/dsh-opencode-go-usage.git
cd dsh-opencode-go-usage
pnpm install
pnpm run build
dsh plugin --profile web add link:$(pwd)
重启 dsh web 并刷新页面,chip 出现在输入框上方的 dock。不启动即可验证插件层已组合:
dsh --profile web --dump-config # 应显示 "# == dsh-ocgo-usage" 层
配置
方式一:界面内 Set 面板(最简单)
点击 chip 展开详情 → 左下角 Set → 输入 workspace id 与 cookie(已设置的值以 •••• + 末尾 4 位显示,聚焦即可输入新值)→ 点击外部 / Esc / 保存按钮确认,立即生效。

方式二:环境变量(与 pi-ocgo-usage 同名)
export OPENCODE_GO_COOKIE="auth=Fe26.2*...; oc_locale=en"
export OPENCODE_GO_WORKSPACE_ID="wrk_01XXXXXXXXXXXXXXXXXXXXXXXX"
方式三:配置文件
写入 $DSH_HOME/ocgo-usage.json(默认 ~/.dsh/ocgo-usage.json):
{
"cookie": "auth=Fe26.2*...; oc_locale=en",
"workspaceID": "wrk_01XXXXXXXXXXXXXXXXXXXXXXXX"
}
chmod 600 ~/.dsh/ocgo-usage.json
优先级:环境变量 > 配置文件 > 内置默认。
可选覆盖项
| 环境变量 | 默认值 | 说明 |
|---|---|---|
OPENCODE_GO_BASE_URL |
https://opencode.ai |
API 基础地址 |
OPENCODE_GO_CACHE_TTL |
300 |
host 缓存秒数,范围 60–3600 |
OPENCODE_GO_TIMEOUT_MS |
10000 |
HTTP 超时 |
组合层配置(~/.dsh/profiles/web/cordis.patch.yml):
- id: ocgo-usage
config:
enabled: false # 总开关,默认 true
Cookie 过期:
authcookie 签发后有效期 1 年。过期(或被吊销)后页面 302 跳转到登录页,chip 显示<err:http302>而非过期数字。重新登录 opencode.ai 后,通过 Set 面板更新 cookie 即可。
使用
点击 chip 展开详情面板:每个窗口显示完整名称、百分比与重置倒计时;右下角 refresh upd HH:MM 手动刷新并显示数据时间。

工作原理
- Host 半(
src/index.ts、src/service.ts、src/api.ts、src/routes.ts)—— 携带 cookie 抓取GET /workspace/<wrk>/go,解析 SSR 渲染的data-slot="usage-item"块为每个窗口的{percent, resetInSec, status},缓存结果,通过同源 JSON 端点/api/ocgo-usage(+/api/ocgo-usage/refresh、/api/ocgo-usage/config)提供数据。 - 浏览器半(
src/client/)—— 向conversation.composer.dockslot 注册 chip,每 10s 轮询 host 端点,按严重级别着色渲染三个窗口;可见性来自session.models的实时 provider 判断。
浏览器永远看不到 cookie;抓取与解析全部在 host 侧完成。
安全
authcookie 是完整的 OpenCode 用户会话。任何人拿到它都能访问你账户内的所有 workspace、订阅与账单信息。- 插件绝不记录 cookie、不把它放进错误信息、不发送给浏览器。
- 配置编辑器只把新值写入
$DSH_HOME/ocgo-usage.json(chmod 600),浏览器始终只看到••••+ 末尾 4 位的掩码视图。
开发
pnpm install
pnpm run build # tsc -b && tsdown → lib/
pnpm run typecheck # tsc -b --pretty false
pnpm test # vitest run(解析器 / 配置 / 服务)
构建配置(shared/tsdown.client.ts)改编自 dsh-balance-meter(BSD-3-Clause),后者是官方 DSH packages/client/tsdown.client.ts 的副本——它产出 web shell 模块表所需的 window.__ModuleLoader__.load({id, factory}) 闭包工厂产物。
License
MIT —— 见 LICENSE。
Changelog
v2.0.0 - 中英双语支持
🎉 重大更新:现在支持中文界面了!
- 🌏 国际化 (i18n) 支持:自动识别 DeepSeek Harness 的中文/英文界面语言
- 新增中文标签解析:
滚动用量、每周用量、每月用量 - 新增中文时间单位支持:秒、分钟、小时、天、周、月、年
- 智能匹配中英文重置提示:
Resets in/重置于
- 新增中文标签解析:
- 🎨 深色模式优化:调整 Logo 在深色主题下的对比度,视觉更舒适
- 🧪 完整测试覆盖:新增中文场景单元测试,确保解析准确性
特别感谢 @waknow 贡献了核心的中文本地化功能!🙏
💡 版本选择建议:
- 喜欢纯英文界面?继续使用 v1.1.0
- 需要中英双语支持?升级到 v2.0.0+
ruvnet/ruflo
amruthpillai/reactive-resume
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/colleague-skill
nocobase/nocobase
Tencent/WeKnora