0
272
近 7 天 130
34.9
生态多维模型
8 天前
2026-10-12
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-usage-limits@0.3.0"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-usage-limits@0.3.0"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D opencode-usage-limitsOpenCode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
在 OpenCode 右侧侧边栏实时显示订阅方案的用量限额(5 小时 / 周 / 月)。
一个 OpenCode V2 TUI 插件。当当前选中的模型属于 OpenCode Go 或 ClinePass 时,右侧侧边栏会自动出现用量区块,展示三个滚动窗口的 占用百分比、进度条与重置倒计时。
▾ USAGE · OpenCode Go
5 hours 0%
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
↻ 5h $0.00 / $12.00
Weekly 1%
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
↻ 6d 4h $0.30 / $30.00
Monthly 60%
███████████████████░░░░░░░░░░░░░░░░░
↻ 7d 14h $36.00 / $60.00
功能
- 两个用量来源:OpenCode Go、ClinePass,按当前模型自动切换。
- 三个窗口:5 小时滚动 / 周 / 月,含百分比、进度条、重置倒计时。
- 绿黄红提醒:< 50% 绿、50–79% 黄、≥ 80% 红(阈值见
core.ts)。 - 金额显示:ClinePass 显示
已用 / 限额(限额从/users/me/plan实时读取,$10 / $25 / $50);OpenCode Go 只显示百分比,并在底部标注当前模型的额度(如$80/$160)供参考。 - 整体折叠:点标题行收起,只留一行;状态持久化,重启保持。
- 不打扰:选中其他 provider 时完全不渲染,不占空间。
- 限流退避:遇 429 / 5xx / 网络失败自动指数退避(最长 5 分钟),并显示
retry in Ns。 - 数据过期提示:数据变旧(超过约 75 秒,即 2.5 个轮询间隔)时,标题行才显示年龄并变黄;平时不显示,不产生噪音。
- 密钥安全:从 OpenCode 的
auth.json实时读取,插件不存储任何凭据。
支持的数据源
| Provider ID | 名称 | 用量接口 | 显示金额 |
|---|---|---|---|
opencode-go |
OpenCode Go | GET https://opencode.ai/zen/go/v1/usage |
否(只显示百分比;底部标注当前模型额度) |
cline-pass |
ClinePass | GET https://api.cline.bot/api/v1/users/me/plan/usage-limits |
是(从 /users/me/plan 实时读取套餐上限) |
Cline 的公开文档见 Cline API。
要求
- OpenCode v2.0.0 或更高版本
- 已通过
/connect连接 OpenCode Go 或 ClinePass 订阅 - 能访问对应用量接口的网络环境(端点见上方数据源表)
安装
从 npm 安装(推荐):
opencode plugin add opencode-usage-limits
装完重启 TUI 即可。也可使用 Git 规格安装:
opencode plugin add github:GamingNowEdward/opencode-usage-limits
从本地目录安装:把插件目录加入 OpenCode 的 CLI 配置 cli.json(全局位于 ~/.config/opencode/cli.json):
{
"plugins": [
{
"package": "C:/path/to/opencode-usage-limits",
"options": { "refreshMs": 30000 }
}
]
}
CLI 插件在本地 TUI 进程内运行,因此可以直接读取 auth.json 与访问网络;它也会在连接
远程 server 时保持可用。详见 CLI 插件文档。
使用
- 选中
opencode-go或cline-pass的任意模型,侧边栏即出现对应区块。 - 点击标题行折叠 / 展开,或在命令面板搜索 Toggle usage panel。
- 切换到其他 provider 时区块自动消失。
配置项
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
refreshMs |
number | 30000 |
轮询间隔(毫秒) |
limits |
object | — | 仅作 ClinePass 的回退:套餐上限读取失败时使用,如 { "cline-pass": { "hour5": 10, "weekly": 25, "monthly": 50 } } |
配色阈值写在源码中:core.ts 的 WARN_AT / DANGER_AT,tui.tsx 的 readPalette。
工作原理
插件在 setup() 中做三件事:
- 注册侧边栏 slot:
context.ui.slot({ prepend: "sidebar.content", ... })。 - 读取当前模型:
context.ui.model.current()?.providerID(响应式)。 - 按 provider 拉取用量:从
auth.json取密钥,带Authorization: Bearer请求用量接口, 30 秒轮询一次,1 秒刷新倒计时。
密钥解析顺序:环境变量 <PROVIDER>_API_KEY → ~/.local/share/opencode/auth.json。
文件结构
| 文件 | 说明 |
|---|---|
tui.tsx |
TUI 插件主体 |
core.ts |
鉴权、API 客户端、格式化、阈值(纯逻辑,无 JSX) |
index.ts |
server 入口(no-op) |
tui.ts |
发现入口,re-export tui.tsx |
preview.mjs |
离线预览脚本 |
AGENTS.md |
开发约定 |
CHANGELOG.md |
变更日志 |
离线预览
无需启动 TUI 即可验证接口与排版(会读取你本机的真实密钥):
node preview.mjs # 两个来源
node preview.mjs cline-pass # 只预览一个
排障
- 确认当前模型属于
opencode-go或cline-pass。 - 插件文件保存即热重载,无需重启;只有新增/删除被 import 的文件时才需退出 TUI 重进。
- 查看日志:
~/.local/share/opencode/log/opencode.log,筛role=cli与plugin。
相关
许可
MIT © 2026 GamingNowEdward
同类生态推荐
Go Limits
opencode-go-limits
OpenCode TUI sidebar widget: opencode Go subscription usage limits (session/weekly/monthly) as bars + percentages
Tui Quota Usage
opencode-tui-quota-usage
OpenCode quota usage sidebar tracker for OpenCode V2 CLI/TUI
Go Meter
opencode-go-meter
Your session context usage and OpenCode Go plan windows in the opencode v2 TUI sidebar, with a forecast of where the current pace lands by each reset.