我最近用 Codex 写代码时总有个小痛点:想知道自己的 5 小时额度和周额度还剩多少,却要离开当前工作流去查看。于是我把这个小痛点做成了一个真正能用的 macOS App——CodexBar。

CodexBar 能做什么
CodexBar 是一个 macOS 菜单栏 + Touch Bar 小工具。它会读取本机 Codex 的额度信息,把编程时真正关心的状态放到一眼就能看见的位置:
- 显示 5 小时额度和周额度,包括剩余百分比与重置时间。
- 当账号只返回周额度时,自动改为显示可用重置次数,不会把同一份数据重复当成 5 小时额度。
- 在 Touch Bar 上显示“昨日”和“累计” token 消耗。
- 菜单栏和 Touch Bar 共用同一份状态,刷新失败时保留上一组数据。
- 识别 ChatGPT 合并版和旧版 Codex,与宿主应用自动启停。
最重要的是,这个 Touch Bar 不会因为 Codex 输入框获得焦点就消失。额度条会保持在那里,我可以继续输入、切换窗口,不用反复展开某个页面。
我还把中文语音输入塞了进去
Touch Bar 上还有一个 Siri 风格的语音按钮。点击后开始中文语音识别,再点一次停止,识别结果会直接输入当前 Codex 文本框。
这个功能使用 macOS 自带的 Speech 和 AVFoundation,不需要 OpenAI API Key,也不会借用剪贴板中转文本。第一次使用时,需要允许麦克风、语音识别和辅助功能权限。
对我来说,这比额度显示更像是一个“意外长出来”的好用功能:有些需求用语音说出来比敲字快得多,而按钮恰好就在手边。
它如何读取额度
CodexBar 不抓网页,也不需要填写账号、API Key 或授权码。它会自动查找已安装的 ChatGPT 合并版或旧版 Codex,启动本机 codex app-server,然后通过 JSON-RPC 调用:
account/rateLimits/read
整个过程都发生在本机。CodexBar 不保存密码、API Key、授权码或账号凭据,额度数据也只用于本机界面显示。
安装与运行
CodexBar 目前已经开源,代码位于 GitHub: wangjiaxuan666/CodexBar。当前版本为 0.1.12,暂时还没有上传可直接下载的 GitHub Release,可以先从源码构建:
git clone https://github.com/wangjiaxuan666/CodexBar.git
cd CodexBar
scripts/build-app.sh
open build/CodexBar.app
运行环境需要 macOS 11 Big Sur 或更新版本,并且已安装 ChatGPT 或旧版 Codex 应用。有 Touch Bar 的 Intel Mac 可以使用全部功能;没有 Touch Bar 的 Mac 也能使用菜单栏额度显示。
由于当前项目没有 Apple Developer 签名和公证,首次打开时 macOS 可能提示无法验证开发者。可以在 Finder 中右键点击 CodexBar,选择“打开”后再确认一次。
关于实现和开源
CodexBar 使用 Swift 和 AppKit 实现,项目基于 Jack Chen 的开源项目 TouchBarCodexToken 二次开发。感谢原作者完成了额度读取、菜单栏和 Touch Bar 的基础实现。我在此基础上增加了持久 Touch Bar、中文语音直接输入、Codex 生命周期联动与新版界面。
需要注意的是,持久 Touch Bar 使用了 macOS 未公开的 AppKit 系统模态接口。应用会在运行时检查系统是否支持,但这种实现更适合个人安装,不适合提交 Mac App Store,未来 macOS 更新也可能改变相关接口。
这个小工具的起点很简单:写代码时,我想随手看一眼 Codex 额度。 一轮轮和 AI 讨论、边用边改之后,它最后变成了一个我自己真的会每天使用的 Mac App。
如果你也在用 Codex,手边刚好还有一台 Touch Bar MacBook,欢迎试试 CodexBar。有问题或想添加的功能,也可以直接在 GitHub Issues 里告诉我。