如何零登录看懂 AI 用量?CodexBar 的 token 用量监控原理 5 分钟讲清
【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar
月底才发现 Claude 额度只剩一点、Codex 周配额早该重置了——想不用翻五个后台就看清 AI 服务的 token 用量监控数据?CodexBar 把这件事搬进了 macOS 菜单栏:配额、余额、重置倒计时都摆在那里,全程复用你已有的登录,不需要手动输密码。
它解决什么问题:把十几个控制台收进一个菜单栏
AI 编码服务的用量数据散落在各自的网页后台,多数人是任务中途被限流才意识到额度见底。CodexBar 把 Codex、Claude、Cursor、Copilot 等几十个 provider 的会话/周/月用量、信用余额、花费统计统一收进一个状态项,并显示每个窗口何时重置;provider 出故障时菜单栏图标上还会带事故角标。隐私上它走"免登录获取"路线:复用你机器上已有的 OAuth、浏览器 Cookie、API Key 或本地 CLI 凭据,自己不存任何密码。
跟着一条数据走:从一个后台任务到菜单栏数字
所有数据都经过同一个"中央仓库":UsageStore。数据从哪来?各 provider 现有的凭据——Codex 的 OAuth 或本地 CLI、Claude 的 OAuth API 或浏览器 Cookie、其他家的 API token。怎么被处理?一个按你设置频率(固定间隔或自适应)运转的后台任务反复调用refresh,它给每个启用的 provider 并行发起子任务去拉取剩余配额,成功后写入内存里的snapshots字典;若某次拉取发现凭据失效,就标记该 provider 需要重新登录,但不阻塞其他家的更新。最终到哪去?UsageStore是个@Observable对象,字典一变,菜单栏图标和菜单卡片自动重绘,无需任何手动刷新。
调度的骨架就是下面这段,循环里只睡、只做:
// Sources/CodexBar/UsageStore.swift private func startTimer() { self.timerTask?.cancel() guard let wait = self.settings.refreshFrequency.seconds else { return } self.timerTask = Task.detached(priority: .utility) { [weak self] in while !Task.isCancelled { try? await Task.sleep(for: .seconds(wait)) await self?.refresh(enrichmentMode: .automatic) } } }值得注意:固定间隔锚定在"计划时刻"上,而不是刷新完成时刻——某个 provider 的 API 慢了 10 秒,下一次轮询不会因此顺延,长期看刷新频率不会漂移。
一个值得细看的设计:Cookie 的双重保护
Cookie 是最敏感的凭据,CodexBar 给它的存储加了缓冲。CookieHeaderStore 不写明文配置文件,而是存进系统 Keychain;Keychain 查询本身成本高、还可能弹授权框,所以前面又垫了一层 30 分钟的内存缓存,菜单栏每两分钟刷新一次时根本不用碰 Keychain。写入前还会先做 preflight 检查,判断这次操作是否会导致系统弹窗,必要时走自定义的提示协调而不是让 Keychain 对话框打断你写代码;如果用户禁用了访问,就安静跳过而不崩溃。这套"系统 API 前加 TTL 缓存 + 弹窗预检"的组合,专治两个坑:凭据文件被顺手读走、系统对话框破坏心流。
最快上手命令:四步看到自己的用量
- 安装应用(macOS 14+):
brew install --cask codexbar。预期:菜单栏出现新图标。 - 打开 Settings → Providers,勾选你在用的服务。预期:它自动发现已有的 Codex CLI 登录或浏览器会话,不要求你重新输密码。
- API Key 类 provider 可以直接走命令行:
codexbar config enable --provider grok。预期:在~/.config/codexbar/生成配置,provider 自动启用。 - 点开菜单栏卡片。预期:看到每家剩余配额、进度条和重置倒计时,并按你选定的频率自动刷新。
想从源码入手的话:git clone https://gitcode.com/GitHub_Trending/co/CodexBar,再用 Xcode 打开 Package.swift。
适合谁,以及能带走的设计思路
它适合同时压着多个 AI 订阅、想按重置窗口安排长任务的人,也适合脚本党——CLI 自带 usage、cost 等子命令。想支持新服务可按 docs/provider.md 的实现约定扩展一个 provider。可以带走的设计就一句:周期性任务的间隔锚在"计划时刻"而非"完成时刻",慢请求才不会悄悄拖垮你的刷新节奏。
【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考