不登录任何一个网站,69 个 AI 服务的 token 账单是怎么盯住的?
【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar
AI token 监控是个很实际的痛点:写代码的工具从 1 个变到 3 个、5 个,Codex、Claude Code、Cursor 各家额度各按各的节奏重置,想确认还剩多少,就得挨个打开网页面板登录。没有人愿意一天登十次网站,但用量见底前没收到提醒,长任务就得硬生生停一半。
CodexBar 解决的就是这件事:一个 macOS 菜单栏小程序,不要求你输入任何新密码,把 Codex、Claude、Cursor、Gemini 等 69 个服务的用量进度、重置倒计时直接摆在屏幕顶部。它只复用你机器上已有的登录态——CLI 凭证、浏览器会话、API 密钥——所以装完就能用。
上手三分钟,剩多少额度一眼看到
启用你在用的服务后,点一下顶部图标,看到的就是这种画面:
图:Claude 用量统计卡片,会话与每周两个窗口各有一条进度条,右侧标注距重置的倒计时
Session 条管"本轮会话"窗口,Weekly 条管"本周"窗口,右边直接写着"几小时后重置"。最有用的场景是:动手写那个要跑两小时的长任务之前,瞄一眼就知道现在开干合适,还是等重置再开。
图:用量与支出面板,展示 30 天估算支出、已跟踪 token 数,以及按订阅和模型拆分的成本明细
想要成本维度,"用量与支出"页还能拆得更细:30 天总花费、跟踪到的 token 总量、每个订阅花了多少、每个模型各占多少。"到底哪个模型最烧钱"这种问题,在这里有直接答案。
免登录怎么做到:一条三步数据管线
💡 整个设计的核心思路就一句:不让用户再登录一次,把已有的会话变成数据源。第一步"取数"各家方式不同:
| 服务 | 数据来源 | 需要重新登录吗 |
|---|---|---|
| Codex | OAuth 会话或本机 Codex CLI 文件 | 不需要 |
| Claude | OAuth API、浏览器 Cookie 或 CLI 回退 | 不需要 |
| Cursor | 浏览器会话 Cookie | 不需要 |
| Gemini | Gemini CLI 本地凭证 | 不需要 |
| OpenAI | Admin API 密钥 | 输一次密钥即可 |
第二步是"汇流"。所有原始数据都进入 UsageStore,相当于全应用的中控室。每次刷新,它给每个服务并行开一个任务,把用量、状态、余额一次拉齐:
await withTaskGroup(of: Void.self) { group in for provider in UsageProvider.allCases { group.addTask { await self.refreshProvider(provider) } group.addTask { await self.refreshStatus(provider) } } }这段withTaskGroup做的事很简单:每个服务开一个并行任务,谁也不等谁,整体耗时只取决于最慢的那一家。要是串行"取完 A 再取 B",服务一多,菜单就会卡住。而那些慢活儿——比如本地 token 成本统计——被故意挪到组外后台跑,菜单永远先响应。
第三步是"定时"。startTimer里挂了一个后台轮询任务,睡一觉、看一眼、再睡:
self.timerTask = Task.detached(priority: .utility) { [weak self] in while !Task.isCancelled { try? await Task.sleep(for: .seconds(wait)) await self?.refresh() } }把它理解成"每隔几分钟看一眼水表":低优先级后台执行,不抢占交互;[weak self]保证应用退出后任务能干净消亡,不会残留。两个容易忽略的细节:改刷新频率时旧任务立即取消、按新节奏重建;固定节奏锚定在"计划时刻"而非"上次刷新完成时刻",所以某个服务偶尔卡住,也不会把整个周期越拖越长。
刷新频率 8 个选项,各自适合什么场景
| 选项 | 适合谁 |
|---|---|
| 手动 | 偶尔看看,想查了再点刷新 |
| 1 分钟 | 重度使用期,要实时盯剩余量 |
| 5~15 分钟 | 日常默认,功耗和新鲜度折中 |
| 30 分钟 | 只看大盘趋势 |
| 自适应 | 按设备电量、热状态、菜单是否打开自动调节奏,多数人保持它即可 |
| 自适应(感知 agent 活动) | 在上面基础上感知本机编码 agent 的活动,更精准,需同意本地扫描 |
⚡️ 一个实用组合:日常用"自适应",准备开大任务前手动切到"2 分钟",完事再切回来。
凭证存在哪,会不会外流
🔍 最多人担心的问题。CodexBar 自己不收密码:它读的是你机器上已有的会话凭证,敏感条目走系统钥匙串(Keychain)存储。首次访问时 macOS 会弹授权窗,把 CodexBar.app 勾进白名单即可一劳永逸:
图:钥匙串访问控制窗口,把 CodexBar.app 加入白名单后不再重复弹窗
不想交出浏览器 Cookie 也没关系,很多服务同时支持"只读本机 CLI 凭证"这条路,可以按服务自选数据源。
三步跑起来,然后翻源码
装好 → 设置里启用服务 → 看顶栏,就完了。想继续深入,核心逻辑都在 Sources/CodexBar 目录里:
git clone https://gitcode.com/GitHub_Trending/co/CodexBar从UsageStore.swift读起,取数、汇流、定时这条管线一个下午就能看懂;再顺手翻翻SettingsStore.swift里刷新策略的定义,整个监控系统的设计决策就全暴露出来了。
【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考