【免费下载链接】opencode-quota
OpenCode quota & tokens usage with zero context window pollution. Supports OpenCode Go, Cursor, GitHub Copilot, OpenAl, Kimi Code, Alibaba Coding Plan, Chutes Al, Google Antigravity, Z.ai Coding Plan and more.
opencode-quota 是一款为 OpenCode 提供quota(配额)与 token 用量查询的开源插件,支持 OpenCode Go、Cursor、GitHub Copilot、OpenAI、Kimi Code、Alibaba Coding Plan 等数十家服务商。它的最大卖点写在标语里:zero context window pollution——即"零上下文窗口污染"。
什么意思?很多聊天插件把统计信息直接塞进对话,这些文字会被发给大模型参与下一轮推理,白白烧掉你的 token 余额。而 opencode-quota 通过三条硬核设计原则,让配额报告"看得见、用得上,却从不进模型"。
一、先搞懂:什么才是真正的"上下文污染"?
AI 编程工具的每一轮请求,都会把完整会话历史发给模型。于是:
- 插件往聊天里 post 一条报告 → 下次请求时,模型要"读"一遍这份报告;
- 会话压缩(compaction)生成摘要 → 报告文字被复制进摘要;
- 自动生成会话标题 → 又是一次隐藏的模型调用。
表面上你只是"看了一眼配额",实际上下一次对话的 prompt 里多躺了几 KB 的无用文本。
二、原理一:数据根本不经过大模型 🚫
项目规则第一条就写得很直白(见 CONTRIBUTING.md):
No AI calls.绝不请求 AI 模型来生成插件要展示的任何内容,那会花掉用户的 token。调用服务商的配额/账单 API 是允许的。
也就是说,opencode-quota 的所有数字都来自两条"干净"通道:
| 数据来源 | 说明 | 例子 |
|---|---|---|
| 服务商 Quota API | 直接查询官方的配额、余额、限流接口 | GitHub Copilot、OpenRouter、Kimi Code |
| 本地估算 | 读取 OpenCode 本地会话数据库统计 token | 本地 token 报告、Cursor 预算 |
报告里没有一个字是由 LLM"写"出来的,自然也就没有任何一次请求是为它而发的。
三、原理二:服务端计算,界面只负责"画"
插件采用严格的Server vs TUI 分层(见 src/plugin.ts 与 src/tui-v2.tsx):
- 服务端插件(
src/plugin.ts)负责全部计算:读取登录态、请求配额接口、格式化文本; - 计算结果注册为一条名为
slkiser.opencode-quota的 RPC 接口(定义在 src/rpc.ts); - TUI 界面插件只订阅 RPC 返回值并绘制,从不接触服务商与凭据代码。
这种"一次计算、多处渲染"的架构,让下面这些展示面全部零模型开销:
- 侧边栏面板:常驻显示各服务商配额进度条;
- 悬浮 toast:闲置时弹出提醒;
- 状态栏:输入框下方一行紧凑摘要;
- 斜杠命令:
/quota、/tokens_weekly等主动查询。
四、原理三:报告消息的全链路隔离 🧱
/quota这类命令确实会把报告 post 进聊天(方便 Web/Desktop 查看),但项目用了四道"围栏"保证它永远不会泄漏给模型:
- 投递不触发模型回合:报告以
resume: false方式投递,只静静躺在会话收件箱里,绝不开启新的一轮模型推理(src/plugin.ts); - 双重标记:每条报告消息都带上
opencodeQuota元数据,正文再用[OpenCode Quota report]…[End of OpenCode Quota report]围栏包裹(src/lib/quota-report-message.ts); - 三个请求钩子实时切除:拦截
context、compaction、generate三类会话钩子,任何由历史构建的模型请求在发出前都会被withoutQuotaReports()剥掉全部报告(src/plugin.ts); - 标题生成也拦截:若会话第一条消息就是报告,
title钩子会跳过标题生成请求,连这次隐藏调用也不放过(src/plugin.ts)。
元数据 + 文本围栏是双保险——因为 OpenCode 压缩会话时复制消息文本会丢失元数据,围栏标记保证"退而求其次"时依然切得干净(src/plugin.ts)。
五、效果:一份完整的 token 报表,成本为零 📊
命令报告支持时间窗口、Top 会话、花费明细,且数据同样来自本地数据库与服务商 API:
| 命令 | 说明 |
|---|---|
/quota | 当前配额总览 |
/tokens_today | 今日 token 用量 |
/tokens_weekly//tokens_monthly | 近 7 / 30 天用量(月度含定价) |
/tokens_session_all | 本会话及子代理会话 |
/quota_status | 登录、服务商、定价体检 |
CLI 端npx @slkiser/opencode-quota@latest show甚至可以在 OpenCode 关闭时独立运行。
六、快速上手:一条命令接入 ⚡
npx @slkiser/opencode-quota init重启 OpenCode 后输入/quota即可。要求 OpenCode2.0.16+与 Node.js22.13+(完整指引见 README.md)。
小结
opencode-quota 的"零上下文污染"不是营销话术,而是三层工程决策的叠加:
- 数据源头不碰 LLM——只查配额 API 与本地统计;
- 架构上计算与渲染分离——服务端算一次,RPC 广播给所有界面;
- 消息层面全链路切除——投递、元数据、围栏、四类钩子层层兜底。
对重度使用 AI 编程工具、同时订阅了多家服务商配额的同学来说,这相当于一个"免费搭售"的用量仪表盘:信息始终在眼前,账单从不为它买单。
【免费下载链接】opencode-quota
OpenCode quota & tokens usage with zero context window pollution. Supports OpenCode Go, Cursor, GitHub Copilot, OpenAl, Kimi Code, Alibaba Coding Plan, Chutes Al, Google Antigravity, Z.ai Coding Plan and more.
相关推荐
新手必看:5分钟上手TensorSensor的3个实用技巧
新手必看:5分钟上手TensorSensor的3个实用技巧 TensorSensor是一款专为矩阵代数表达式设计的异常消息增强工具,支持numpy、pytorc
Sandcastle 用量上报设计:为什么只暴露原始 Token 计数而非上下文窗口百分比
Sandcastle 用量上报设计:为什么只暴露原始 Token 计数而非上下文窗口百分比 IterationResult.usage 是 Sandcastle
为什么MicroLighter不插入一个span?揭秘CSS Custom Highlight API渲染原理
为什么MicroLighter不插入一个span?揭秘CSS Custom Highlight API渲染原理 MicroLighter 是一个零依赖的 Web
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考