steipete/CodexBar
GitHub: steipete/CodexBar
一款 macOS 菜单栏应用,聚合展示 57 个 AI 编程提供商的用量额度、支出成本和重置倒计时,帮助开发者免登录掌握全局用量。
Stars: 18291 | Forks: 1505
# CodexBar 🎚️ — 愿你的 token 永不耗尽。
[](https://github.com/steipete/CodexBar/releases/latest)
[](https://github.com/steipete/CodexBar/releases/latest)
[](https://github.com/steipete/homebrew-tap)
[](https://aur.archlinux.org/packages/codexbar-cli)
[](LICENSE)
[](https://codexbar.app)
一款适用于 macOS 14+ 的微型菜单栏应用,可让**AI 编程提供商的限制可见**,并显示每个时间窗口何时重置。支持 Codex、OpenAI、Claude、Cursor、Gemini、Copilot、Grok、GroqCloud、ElevenLabs、Deepgram、z.ai、MiniMax、Kiro、Zed、Vertex AI、Augment、OpenRouter、LiteLLM、LLM Proxy、Codebuff、Command Code、AWS Bedrock 以及许多较新的编程提供商。每个提供商一个状态项,或使用带有提供商切换器的合并图标模式。无 Dock 图标,极简 UI,动态栏图标。
## 为什么选择它
- **规划重置时间。** 为每个提供商提供会话、每周和每月的时间窗口,并带有下一次重置的倒计时——不再为是否该开始那个长任务而猜测。
- **额度、支出和成本扫描。** 额度余额、Admin API 支出仪表板、提供商账单摘要,以及在来源暴露足够细节时的本地成本扫描。
- **实时状态。** 提供商状态轮询会在菜单中显示事件徽章,并在栏图标上显示指示器覆盖层。
- **隐私优先。** 复用现有的提供商会话——OAuth、device flow、API key、浏览器 cookies、本地文件——因此不会存储任何密码。
## 安装
### 要求
- macOS 14+ (Sonoma)
### GitHub Releases
下载:
### Homebrew
```
brew install --cask codexbar
```
### CLI 压缩包 (macOS/Linux)
Homebrew formula(目前支持 Linux):
```
brew install steipete/tap/codexbar
```
Arch Linux AUR 包:
```
yay -S codexbar-cli
```
或从 GitHub Releases 下载发布压缩包:
- macOS: `CodexBarCLI-v-macos-arm64.tar.gz`, `CodexBarCLI-v-macos-x86_64.tar.gz`
- Linux (glibc): `CodexBarCLI-v-linux-aarch64.tar.gz`, `CodexBarCLI-v-linux-x86_64.tar.gz`
- Linux (静态 musl): `CodexBarCLI-v-linux-musl-aarch64.tar.gz`, `CodexBarCLI-v-linux-musl-x86_64.tar.gz`
### 首次运行
- 打开“设置” → “提供商” 并启用你正在使用的服务。
- 安装/登录你所依赖的提供商来源:CLI、浏览器会话、OAuth/device flow、API key、本地应用文件或提供商应用,具体取决于提供商。
- 可选:设置 → 提供商 → Codex → OpenAI cookies(自动或手动)以添加仪表板附加功能。
### 从 CLI 设置 API key
提供商开关和 API key 保存在已解析的 CodexBar 配置文件中。全新安装使用
`~/.config/codexbar/config.json`;现有的 `~/.codexbar/config.json` 安装仍会从旧路径加载。你可以
编写脚本来使用与“设置” → “提供商”中相同的提供商列表:
```
codexbar config providers
codexbar config enable --provider grok
codexbar config disable --provider cursor
```
对于基于 API key 的提供商,无需打开“设置”即可存储 key:
```
printf '%s' "$ELEVENLABS_API_KEY" | codexbar config set-api-key --provider elevenlabs --stdin
```
`set-api-key` 会修剪通过管道传入的值,以严格的配置文件权限进行存储,并默认启用该提供商。使用 `--no-enable` 可仅保存 key,或者在不在乎 shell 历史记录的一次性本地脚本中使用 `--api-key `。
有关完整流程,请参阅 [CLI 配置](docs/cli-configuration.md)。
## 提供商
- [Codex](docs/codex.md) — OAuth API 或本地 Codex CLI,以及可选的 OpenAI Web 仪表板附加功能。
- [OpenAI](docs/openai.md) — Admin API key 用量/成本图表,带有遗留的额度余额回退机制。
- [Claude](docs/claude.md) — OAuth API、浏览器 cookies 或 CLI PTY 回退;支持会话和每周用量(如果可用)。
- [Cursor](docs/cursor.md) — 通过浏览器会话 cookies 获取套餐、用量和账单重置。
- [OpenCode](docs/opencode.md) — 通过浏览器 cookies 获取工作区订阅用量。
- [OpenCode Go](docs/opencode.md) — 通过浏览器或本地 SQLite 数据获取 Go 使用窗口。
- [Alibaba Coding Plan](docs/alibaba-coding-plan.md) — 通过 Web cookies 或 API key 获取 coding-plan 配额。
- [Alibaba Token Plan](docs/alibaba-token-plan.md) — 通过 Bailian 浏览器/手动 cookies 获取 token-plan 额度。
- [Gemini](docs/gemini.md) — 使用 Gemini CLI 凭据(无浏览器 cookies)的 OAuth 配额 API。
- [Antigravity](docs/antigravity.md) — 本地语言服务器探针(实验性);无需外部授权。
- [Droid](docs/factory.md) — 通过浏览器 cookies 和 WorkOS token flow 获取 Factory 用量及账单。
- [Copilot](docs/copilot.md) — GitHub device flow + Copilot 内部用量 API。
- [Devin](docs/devin.md) — 通过 Chrome localStorage 会话或手动 Bearer token 获取每日和每周配额。
- [z.ai](docs/zai.md) — 通过 API token 获取个人/团队配额、MCP、5 小时和每小时使用窗口。
- [Manus](docs/manus.md) — 通过浏览器 `session_id` 授权获取额度余额、每月额度和每日刷新追踪。
- [MiniMax](docs/minimax.md) — 通过 API token、cookie header 或浏览器 cookies 获取 coding-plan 用量。
- [T3 Chat](docs/t3chat.md) — 通过捕获浏览器 cookies 获取 Base 和 Overage 使用量。
- [Kimi](docs/kimi.md) — 通过 Auth token(来自 `kimi-auth` cookie 的 JWT)获取每周配额和 5 小时速率限制。
- [Kimi K2 (非官方)](docs/kimi-k2.md) — 用于基于额度的用量总计的旧版 API key 流程。
- [Kilo](docs/kilo.md) — 带有 CLI 授权回退的 API token,用于 Kilo Pass 用量。
- [Kiro](docs/kiro.md) — 基于 CLI 的用量;每月额度 + 奖励额度。
- [Vertex AI](docs/vertexai.md) — Google Cloud gcloud OAuth,从本地 Claude 日志追踪 token 成本。
- [Augment](docs/augment.md) — Augment CLI 或浏览器 cookies,用于额度追踪和用量监控。
- [Amp](docs/amp.md) — 基于浏览器 cookies 的身份验证,带有 Amp 免费版使用追踪。
- [Ollama](docs/ollama.md) — API key 访问,外加用于 Ollama Cloud 使用窗口的浏览器 cookies。
- [JetBrains AI](docs/jetbrains.md) — 来自 JetBrains IDE 配置的本地基于 XML 的配额;每月额度追踪。
- [Warp](docs/warp.md) — 用于 GraphQL 请求限制和每月额度的 API token。
- [ElevenLabs](docs/elevenlabs.md) — 用于字符额度和语音槽使用量的 API key。
- [OpenRouter](docs/openrouter.md) — 用于跨多个 AI 提供商基于额度的用量追踪的 API token。
- [Windsurf](docs/windsurf.md) — 通过浏览器 localStorage 会话导入或本地 SQLite 缓存获取套餐用量。
- [Zed](docs/zed.md) — Zed 编辑器 Keychain 会话,用于套餐、编辑预测配额、账单周期和逾期发票。
- Perplexity — 从 Perplexity 使用数据获取账户用量额度。
- [Xiaomi MiMo](docs/mimo.md) — 用于余额和 token-plan 用量的浏览器 cookies。
- [Doubao](docs/doubao.md) — 用于 Volcengine Ark 请求限制探针的 API key。
- [Sakana AI](docs/sakana.md) — 用于 5 小时和每周配额窗口的手动 Cookie header。
- [Abacus AI](docs/abacus.md) — 用于 ChatLLM/RouteLLM 计算额度追踪的浏览器 cookies 授权。
- Mistral — 用于 API 支出、额度余额和每月套餐用量的浏览器 cookies。
- [DeepSeek](docs/deepseek.md) — 用于额度余额追踪的 API key(付费与赠送明细)。
- [Moonshot / Kimi API](docs/moonshot.md) — 用于 Moonshot/Kimi API 账户余额追踪的 API key。
- [Venice](docs/venice.md) — 用于 DIEM 或 USD 余额追踪的 API key。
- [Codebuff](docs/codebuff.md) — 用于额度余额和每周速率限制的 API token(或 `~/.config/manicode/credentials.json`)。
- [Crof](docs/crof.md) — 用于美元额度余额和请求配额追踪的 API key。
- [Command Code](docs/command-code.md) — 用于从 Command Code 账单获取每月 USD 额度的浏览器或手动 cookies。
- [StepFun](docs/stepfun.md) — 用于 Step Plan 速率限制(5 小时和每周窗口)和订阅套餐名称的用户名 + 密码登录。
- [AWS Bedrock](docs/bedrock.md) — 使用 AWS 访问密钥或指定的 AWS profile(通过 AWS CLI 进行 SSO/assume-role),用于 Cost Explorer 支出、每月预算和可选的 CloudWatch Claude 活动。
- [Grok](docs/grok.md) — Grok CLI 账单 RPC,外加 grok.com 浏览器会话回退。
- [GroqCloud](docs/groqcloud.md) — 用于 Enterprise Prometheus 请求/token/缓存命中指标的 API key。
- [LLM Proxy](docs/llm-proxy.md) — 用于聚合代理配额统计和提供商明细的 API key + base URL。
- [ClawRouter](docs/clawrouter.md) — 用于每月预算、支出、请求、token 和路由提供商使用量的 API key。
- [LiteLLM](docs/litellm.md) — 用于个人和团队预算/支出追踪的 Virtual key + 代理 URL。
- [Deepgram](docs/deepgram.md) — 涵盖语音、agent、token 和 TTS 指标的 API key 使用摘要。
- [Poe](docs/poe.md) — 用于当前积分余额和近期积分历史的 API key。
- [Chutes](docs/chutes.md) — 用于订阅用量、滚动和每月配额窗口,以及按量付费配额的 API key。
- 开放支持新的提供商:[提供商编写指南](docs/provider.md)。
## 图标和截图
菜单栏图标是一个微型的用量计。进度条的含义特定于各个提供商,错误或过时数据会使图标变暗或显示事件指示器。
## 功能特性
- 多提供商菜单栏,带有针对每个提供商的开关(设置 → 提供商)。
- 特定于提供商的用量计,带有重置倒计时。
- 可选的 Codex Web 仪表板增强功能(剩余代码审查、使用明细、额度历史)。
- 适用于基于 API 的提供商(如 OpenAI、Claude Admin API、OpenRouter、LiteLLM、z.ai、MiniMax、Mistral 和 AWS Bedrock)的内联支出和用量图表。
- Codex 和 Claude 的可配置成本用量扫描,以及针对受支持提供商历史的复用图表 UI。
- 提供商状态轮询,在菜单和图标覆盖层中显示事件徽章。
- 合并图标模式,将多个提供商组合到一个状态项和切换器中。
- 提供商图标、标签、进度条、重置时间样式和最高用量自动选择的显示控件。
- 刷新频率预设(手动、1 分钟、2 分钟、5 分钟、15 分钟)。
- 捆绑的 CLI (`codexbar`),用于脚本和 CI(包括用于本地成本用量的 `codexbar cost --provider codex`、`claude` 或 `both`);提供 macOS 和 Linux CLI 构建版本。
- 针对受支持提供商的 WidgetKit 小组件。
- 本地化的应用和网站,共享 21 种语言的目录,自动检测网站语言,持久化的器以及 RTL(从右到左)支持。
- 可选的会话配额通知和每周重置庆祝动画。
- 隐私优先:默认在设备上进行解析;浏览器 cookies 是可选的且会被复用(不存储密码)。
## 隐私说明
想知道 CodexBar 是否会扫描你的磁盘吗?它不会爬取你的文件系统;当相关功能启用时,它只会读取少量已知位置(浏览器 cookies/本地存储、提供商配置文件、本地 JSONL 日志)。提供商 token 和 token 账户设置保存在 CodexBar 配置文件中,具有严格的文件权限。请参阅 [issue #12](https://github.com/steipete/CodexBar/issues/12) 中的讨论和审计说明。
## macOS 权限(为什么需要它们)
- **完全磁盘访问权限(可选)**:仅在读取基于 Web 的提供商的 Safari cookies/本地存储时需要。如果你不授予此权限,请在该提供商支持的情况下,使用其他受支持的浏览器、手动输入 cookies/API key、OAuth 或 CLI/本地来源。
- **Keychain 访问权限(由 macOS 提示)**:
- 导入 Chromium cookies 需要浏览器的“Safe Storage”密钥来解密 cookies。
- 当 CodexBar 没有可用的缓存凭据时,Claude OAuth 引导程序可能会读取 Claude CLI 的 Keychain 条目。
- 在这些来源需要时,CodexBar 可能会使用 Keychain 解密浏览器 cookies、缓存 cookie header 以及 OAuth/device-flow 凭据。
- **如何防止这些 Keychain 警报?**
- 打开 **Keychain Access.app** → 登录 Keychain → 搜索提示的条目(对于 Claude OAuth,通常是“Claude Code-credentials”)。
- 打开该条目 → **访问控制** → 在“始终允许访问这些应用程序”下添加 `CodexBar.app`。
- 建议只添加 CodexBar(除非你想完全放开权限,否则请避免使用“允许所有应用程序”)。
- 保存后重新启动 CodexBar。
- 参考截图:
- **如何为浏览器执行相同的操作?**
- 找到浏览器的“Safe Storage”密钥(例如,“Chrome Safe Storage”、“Brave Safe Storage”、“Microsoft Edge Safe Storage”)。
- 打开该条目 → **访问控制** → 在“始终允许访问这些应用程序”下添加 `CodexBar.app`。
- 这将移除 CodexBar 解密该浏览器 cookies 时的提示。
- **最后手段——完全停止所有 Keychain 读取**:如果“始终允许”不起作用(例如,macOS 在 Chromium 更新或 `partition_id` 重置后重置了 ACL),请打开 **CodexBar → 设置 → 高级 → Keychain 访问** 并启用 **禁用 Keychain 访问**。CodexBar 将不再访问 Keychain。基于浏览器 cookies 的提供商将被跳过,但通过 CLI 进行的 Claude/Codex OAuth 仍然有效(它读取的是 `~/.codex` / `~/.claude` 配置文件,而不是 Keychain)。
- **卸载后仍有提示?** 删除该应用会阻止从该 bundle 启动新实例,但已经运行的 CodexBar 进程在退出前会一直请求 Keychain 访问权限。请检查该进程、登录项、另一个已安装的副本,或者提示中指出的其他请求二进制文件/路径。有关安全检查以及在支持报告中应包含哪些内容(无需共享机密),请参阅 [Keychain 提示故障排除](docs/keychain-prompts.md)。
- **文件与文件夹提示(文件夹/卷访问)**:CodexBar 会启动某些提供商的 provider CLI 和本地探针。如果这些辅助程序读取的是项目目录或外部驱动器,macOS 可能会要求 CodexBar 获取对该文件夹/卷(例如,桌面或外部卷)的访问权限。这是由辅助程序的工作目录驱动的,而不是后台磁盘扫描。
- **我们在后台不会请求的内容**:没有屏幕录制或辅助功能权限;用户触发的辅助操作可能会要求 macOS 授予自动化权限以打开终端。不会存储任何密码(当你选择加入时,浏览器 cookies 会被复用)。
## 文档
- 提供商概述:[docs/providers.md](docs/providers.md)
- 提供商编写:[docs/provider.md](docs/provider.md)
- Issue 标签指南:[docs/ISSUE_LABELING.md](docs/ISSUE_LABELING.md)
- UI 和图标说明:[docs/ui.md](docs/ui.md)
- CLI 参考:[docs/cli.md](docs/cli.md)
- 配置:[docs/configuration.md](docs/configuration.md)
- Keychain 提示:[docs/keychain-prompts.md](docs/keychain-prompts.md)
- CLI 配置:[docs/cli-configuration.md](docs/cli-configuration.md)
- 小组件:[docs/widgets.md](docs/widgets.md)
- 架构:[docs/architecture.md](docs/architecture.md)
- 刷新循环:[docs/refresh-loop.md](docs/refresh-loop.md)
- 状态轮询:[docs/status.md](docs/status.md)
- Sparkle 更新:[docs/sparkle.md](docs/sparkle.md)
- 打包:[docs/packaging.md](docs/packaging.md)
- 开发:[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)
- 发布检查清单:[docs/RELEASING.md](docs/RELEASING.md)
- 更新日志:[CHANGELOG.md](CHANGELOG.md)
## 入门指南(开发)
- 克隆仓库并在 Xcode 中打开,或直接运行脚本。
- 启动一次,然后在“设置” → “提供商”中切换提供商。
- 安装/登录你所依赖的提供商来源(CLI、浏览器 cookies、OAuth/device flow、API key 或本地应用/配置文件)。
- 可选:设置 OpenAI cookies(自动或手动)以获取 Codex 仪表板附加功能。
## 从源码构建
要求 macOS 14+ 和 Swift 6.2+。
```
./Scripts/package_app.sh # builds CodexBar.app in-place with ad-hoc signing
open CodexBar.app
```
开发循环:
```
./Scripts/compile_and_run.sh
./Scripts/compile_and_run.sh --test # also run the sharded test suite before packaging/relaunching
make check # SwiftFormat + SwiftLint
make docs-list # list docs with frontmatter summaries
```
CLI 安装:
```
# 将 CodexBar.app 安装到 /Applications 之后
./bin/install-codexbar-cli.sh
```
## 相关项目
- ✂️ [Trimmy](https://github.com/steipete/Trimmy) — “粘贴一次,运行一次。”将多行 shell 代码片段展平,以便它们可以直接粘贴并运行。
- 🧳 [MCPorter](https://mcporter.dev) — 用于 Model Context Protocol 服务器的 TypeScript 工具包和 CLI。
- 🧿 [oracle](https://askoracle.dev) — 当你陷入困境时询问神谕。使用自定义上下文和文件调用 GPT-5 Pro。
## 正在寻找 Windows 版本?
- [Win-CodexBar](https://github.com/Finesssee/Win-CodexBar)
## Linux 桌面集成?
- [codexbar-waybar](https://github.com/Marouan-chak/codexbar-waybar) — 用于 Hyprland / Sway / 其他 Wayland 合成器的 Waybar 自定义模块 + GTK4 弹出窗口,基于捆绑的 Linux CLI 构建。
- [Codexbar GNOME](https://extensions.gnome.org/extension/9841/codexbar/) — 将 CodexBar 用量引入桌面面板的 GNOME Shell 扩展。
- [noctalia-codex-usage](https://github.com/rayoplateado/noctalia-codex-usage) — 显示 Codex 5 小时和每周用量限制的 Noctalia/Quickshell 插件,基于捆绑的 Linux CLI 构建。
- [KodexBar](https://github.com/tylxr59/KodexBar) — 在 Plasma 面板中显示 CodexBar 用量的 KDE Plasma 小组件,基于捆绑的 Linux CLI 构建。
## 状态栏和终端集成
- [showy-quota](https://github.com/enieuwy/showy-quota) — 用于 SketchyBar、tmux 和 Zellij 的常驻 AI 套餐配额条(独立 WASM 插件),基于 `codexbar serve` / 捆绑的 CLI 构建。
## 致谢
灵感来自 [ccusage](https://github.com/ryoppippi/ccusage) (MIT),特别是其成本用量追踪功能。
## 许可证
MIT • Peter Steinberger ([steipete](https://twitter.com/steipete))
一款适用于 macOS 14+ 的微型菜单栏应用,可让**AI 编程提供商的限制可见**,并显示每个时间窗口何时重置。支持 Codex、OpenAI、Claude、Cursor、Gemini、Copilot、Grok、GroqCloud、ElevenLabs、Deepgram、z.ai、MiniMax、Kiro、Zed、Vertex AI、Augment、OpenRouter、LiteLLM、LLM Proxy、Codebuff、Command Code、AWS Bedrock 以及许多较新的编程提供商。每个提供商一个状态项,或使用带有提供商切换器的合并图标模式。无 Dock 图标,极简 UI,动态栏图标。
## 为什么选择它
- **规划重置时间。** 为每个提供商提供会话、每周和每月的时间窗口,并带有下一次重置的倒计时——不再为是否该开始那个长任务而猜测。
- **额度、支出和成本扫描。** 额度余额、Admin API 支出仪表板、提供商账单摘要,以及在来源暴露足够细节时的本地成本扫描。
- **实时状态。** 提供商状态轮询会在菜单中显示事件徽章,并在栏图标上显示指示器覆盖层。
- **隐私优先。** 复用现有的提供商会话——OAuth、device flow、API key、浏览器 cookies、本地文件——因此不会存储任何密码。
## 安装
### 要求
- macOS 14+ (Sonoma)
### GitHub Releases
下载:标签:AI编程辅助, Claude, CVE检测, OpenAI, SOC Prime, 使用量监控, 内存规避, 开发工具, 文档结构分析, 菜单栏应用