# opencode-yourstatus [![npm version](https://img.shields.io/npm/v/opencode-yourstatus.svg)](https://www.npmjs.com/package/opencode-yourstatus) [![npm 总下载量](https://img.shields.io/npm/dt/opencode-yourstatus)](https://www.npmjs.com/package/opencode-yourstatus) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 一个 [OpenCode](https://opencode.ai) TUI 插件,直接在右侧栏显示当前会话所选账号的额度。 基于 [opencode-mystatus](https://github.com/vbgate/opencode-mystatus) 修改:移除了 Google Antigravity 支持,并加入了 xAI(SuperGrok)支持。 [English](./README.md) ## 功能 - 在 OpenCode 右侧栏持续显示额度 - 跟随当前会话所选的 provider 和模型 - 切换模型时复用各模型自己的额度缓存 - 每次模型回复结束后强制刷新本次回复所用模型的额度 - 不注册斜杠命令,也不向模型提供工具 - 显示剩余额度进度条和重置倒计时 - 支持中文和英文 - 显示 API Key 时自动脱敏 ## 支持的平台 | 平台 | 账号类型 | 额度来源 | | -------------- | ----------------------- | ------------------------------------ | | OpenAI | Plus / Team / Pro OAuth | OpenCode `auth.json` | | 智谱 AI | Coding Plan API Key | OpenCode `auth.json` | | Z.ai | Coding Plan API Key | OpenCode `auth.json` | | xAI | SuperGrok OAuth | OpenCode `auth.json` | | GitHub Copilot | Individual / Business | OpenCode `auth.json` 或额度 PAT 配置 | ## 环境要求 - OpenCode 1.18.0 或更高版本 - 本地开发需要 Node.js 18 或更高版本 - 终端宽度足以显示 OpenCode 右侧栏,也可以从命令面板手动打开侧栏 ## 安装 在 `~/.config/opencode/tui.json` 中添加插件: ```json { "$schema": "https://opencode.ai/tui.json", "plugin": ["opencode-yourstatus"] } ``` 然后完全退出并重启 OpenCode。TUI 插件只会在启动时加载。 本插件应配置在 `tui.json`,而不是 `opencode.json` 的 `plugin` 数组中。新版不会注册 `/yourstatus`,也不会提供可由 AI 调用的工具。 ### 自定义认证文件路径 插件会自动识别 OpenCode 的标准认证路径。如需覆盖: ```json { "$schema": "https://opencode.ai/tui.json", "plugin": [["opencode-yourstatus", { "authPath": "/custom/path/auth.json" }]] } ``` 自定义认证文件保持只读。插件不会旋转平台凭据,OAuth token 仍由 OpenCode 自身的 provider 集成负责刷新。 ### 从 1.x 升级 1. 从 `opencode.json` 的 `plugin` 数组中移除 `opencode-yourstatus`。 2. 从 `opencode.json` 或 command 目录中移除自定义 `yourstatus` 命令。 3. 按上面的示例将 `opencode-yourstatus` 添加到 `tui.json` 的 `plugin` 数组。 4. 重启 OpenCode。 ## 使用 不需要执行插件命令。选择受支持的模型后,右侧栏会立即跟随。已查询过的额度会从内存中的模型独立缓存显示;切换到尚无缓存的模型时才会发起查询。 模型回复完成、会话进入空闲状态时,插件会强制刷新额度并更新缓存。 如果当前 provider 暂不支持,侧栏只显示简短提示,不会查询所有已配置账号。 ## xAI 设置 xAI 集成显示 Grok 返回的 SuperGrok 额度窗口和重置倒计时。请使用 OpenCode 内置的 xAI Grok OAuth 流程登录,然后在当前会话中使用 xAI 模型。 xAI API Key 无法查询 SuperGrok 订阅额度。遇到 API Key 账号时,侧栏会明确提示这一限制,不会显示误导性的余额估算。 ## GitHub Copilot 设置 如果 OpenCode 的 Copilot OAuth token 无法访问额度数据,可以创建 `~/.config/opencode/copilot-quota-token.json`,填入具有只读 `Plan` 权限的 GitHub fine-grained PAT: ```json { "token": "github_pat_xxx", "username": "你的 GitHub 用户名", "tier": "pro" } ``` 可用 tier:`free`、`pro`、`pro+`、`business`、`enterprise`。 ## 安全性 插件只读取平台认证数据,不会修改认证文件,也不会持久化额度响应。OAuth token 仍由 OpenCode 自身的 provider 集成负责刷新。 网络请求仅发送到各平台的额度接口: - `https://chatgpt.com/backend-api/wham/usage` - `https://bigmodel.cn/api/monitor/usage/quota/limit` - `https://api.z.ai/api/monitor/usage/quota/limit` - `https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig` - `https://cli-chat-proxy.grok.com/v1/user` - Copilot 集成使用的 GitHub 官方 API ## 开发 ```bash npm install npm run typecheck npm run lint npm test ``` ## 致谢 基于 [vbgate](https://github.com/vbgate) 的 [opencode-mystatus](https://github.com/vbgate/opencode-mystatus) 修改,相对上游的主要变更: - 移除 Google Antigravity 支持 - 新增 xAI(SuperGrok OAuth)额度显示 ## 许可证 MIT