CodexBar
人要独立生活,学习有用的技艺。——凯德
https://github.com/steipete/CodexBar
CodexBar:把 AI 编码额度请进 macOS 菜单栏
有些工具擅长生成代码,有些工具擅长改代码,而 CodexBar 做的事情很直接:它把你每天最容易忽略、却又最影响节奏的那件事,搬到了眼前。
它是一个面向 macOS 14+ 的轻量级菜单栏应用,专门用来显示 AI 编码服务的使用额度,并告诉你每个额度窗口会在什么时候重置。项目 description 里用一句很朴素的话概括了它的初衷:**显示 OpenAI Codex 和 Claude Code 的使用统计,而且不必反复登录。**而 README 则把这个思路进一步铺开:它希望把“每一个 AI 编码限制”都变成菜单栏里一眼可见的信息。
项目地址:https://github.com/steipete/CodexBar
这类工具为什么会让人一眼记住
很多人使用 AI 编码工具时,最容易遇到的不是“不会用”,而是“看不清”。
看不清自己还有多少额度,看不清这次会话什么时候重置,看不清某个平台是按周计算、按月计算,还是按某个会话窗口计算。于是每次准备开始一段稍重的任务时,心里总会打鼓:现在开工,会不会刚跑到一半就撞上限制?
CodexBar 试图解决的,正是这种反复猜测的疲惫感。
README 里对它的价值描述得很明确:
- 围绕重置时间来安排工作
- 观察不同提供方的会话、每周、每月窗口
- 看到额度、花费和成本扫描信息
- 观察服务状态
- 尽量以隐私优先的方式复用已有登录来源,而不是保存密码
它不像一个喧闹的大型平台,更像菜单栏里一个安静但非常清醒的小助手。你不必每次打开多个后台页面检查状态,也不必反复切换不同工具确认配额。它把这些零碎、烦人、又极其现实的信息收拢起来,变成一块随时可见的仪表盘。
它到底是什么样子
从 README 的介绍来看,CodexBar 是一个 macOS 菜单栏应用。它会在菜单栏中展示提供方相关的使用信息,点开后则可以看到更完整的 provider 视图、使用条、重置倒计时等内容。
它最核心的表达方式有几种:
- 可见的使用额度
- 每个窗口的重置时间
- 不同提供方的状态
- 菜单栏图标中的小型用量指示
README 甚至专门提到,菜单栏图标本身就是一个很小的使用量计。不同提供方下,条形含义会有所不同;如果出现错误或数据过期,图标也可能变暗,或者显示事件指示。
这意味着 CodexBar 的设计并不是把一堆信息粗暴塞进界面里,而是努力把“状态感”浓缩进一个你每天都会看见的位置。菜单栏本来就是最适合“轻量提醒”的地方,而 CodexBar 正是顺着这个位置的天性在工作。
它关注的不只是一个服务,而是一整个使用现场
如果只看项目 description,你会以为它主要围绕 OpenAI Codex 和 Claude Code。
但 README 展示出来的野心要更完整:CodexBar 已经把支持范围扩展到了大量 provider。
文档中的 Providers 列表非常长,涵盖了诸多不同来源和接入方式的服务,包括但不限于:
- Codex
- OpenAI
- Claude
- Cursor
- Gemini
- Copilot
- Grok
- GroqCloud
- ElevenLabs
- Deepgram
- OpenRouter
- LiteLLM
- AWS Bedrock
- Vertex AI
- Mistral
- DeepSeek
- Poe
- Warp
- Zed
- Windsurf
以及 README 中列出的更多提供方。
这种“多提供方并列”的能力,让 CodexBar 的定位变得很清晰:它不是某一个模型或某一个平台的附属面板,而是一个横跨多个 AI 编码与相关服务的统一观察层。
当你同时使用多种工具时,这个统一视角就会变得很重要。不同平台有不同的认证方式、不同的计费形式、不同的重置窗口,而 CodexBar 尝试把这些分散的信息重新组织成一个更适合日常操作的界面。
它真正打动人的地方,是“把时间感也可视化了”
单纯显示“还剩多少”并不稀奇。
CodexBar 更有意思的一点,是它强调 reset countdowns,也就是重置倒计时。
这件事看起来像一个小功能,实际却非常影响真实体验。
因为对于很多带额度窗口的服务来说,“现在还剩多少”只是半个答案,另外半个答案是:“多久恢复?”
README 中反复提到按会话、每周、每月计算的窗口,以及对应的下一次重置时间。换句话说,CodexBar 不是只告诉你“余额”,它还在努力告诉你“节奏”。
这会改变使用方式。
你不再只是被动地看到一条快见底的进度条,而是能更有把握地决定:
现在适不适合开启一个长任务?
要不要等下一个窗口重置后再继续?
哪些 provider 现在更从容,哪些已经接近边界?
这类信息一旦足够直观,工具就不只是“显示数据”,而是在帮助你做决策。
README 里提到的核心特性,很有一套自己的组合逻辑
CodexBar 的 Features 一节信息量很大,能看出这个项目并不是只做“展示”这么简单。
1. 多提供方菜单栏管理
它支持在菜单栏中管理多个 provider,并且可以通过 Settings → Providers 进行逐项开关。
这意味着它不是固定绑定单一来源,而是允许用户按自己的工具组合来搭建实际可用的观察面板。
2. 每个提供方都有自己的用量与重置表达
README 明确写到:
- provider-specific usage meters
- reset countdowns
这说明 CodexBar 并不是试图用一种完全统一的模型去强行解释所有服务,而是承认不同 provider 有不同规则,再把这些规则转换成各自合适的显示方式。
3. 花费、额度与图表能力
项目提到了多种与使用成本相关的信息:
- credit balances
- spend dashboards
- billing summaries
- local cost scans
- inline spend and usage charts
尤其在 Features 里,README 明确写到它支持面向 API-backed providers 的内联花费与用量图表,并且还支持针对 Codex 与 Claude 的可配置成本使用扫描。
这让它的角色进一步从“额度提示器”延伸到了“用量观察器”。
4. 服务状态轮询
CodexBar 支持 provider status polling,并在菜单中显示 incident badges,还会在图标上加覆盖指示。
这类设计很务实。因为很多时候你以为是自己配额异常、登录异常、接口异常,最后发现其实只是服务端状态波动。如果状态信息能在同一处被看到,排查会更顺手。
5. 合并图标模式
README 提到 Merge Icons mode,可以把多个 provider 合并成一个状态项和切换器。
这很像是给“工具很多,但菜单栏空间有限”的现实妥协。你既可以保留多 provider 视角,又不用把菜单栏挤成一条信息长廊。
6. 更细的显示控制
它支持:
- provider icons
- labels
- bars
- reset-time style
- highest-usage auto-selection
这部分很能体现菜单栏工具的气质。真正好用的菜单栏应用,通常不是功能堆得多,而是允许用户把显示密度调到适合自己的状态。
7. 刷新频率可调
README 给出了几种刷新节奏:
- manual
- 1m
- 2m
- 5m
- 15m
这说明 CodexBar 在“即时感”和“克制感”之间做了平衡。它不是默认一切都疯狂刷新,而是让用户决定信息更新的节奏。
8. 附带 CLI
项目带有一个名为 codexbar 的 CLI,README 说明它可以用于脚本和 CI,也提到了 codexbar cost --provider codex、claude 或 both 这样的使用方式。
这很关键。因为一旦 CLI 存在,CodexBar 就不只是一个 GUI 菜单栏应用,它同时也具备进入自动化链路的可能。对于喜欢脚本化工作流的人来说,这样的设计会很自然。
9. WidgetKit 小组件
README 提到项目支持 WidgetKit widgets for supported providers。
这意味着它并不把展示范围死锁在菜单栏里,而是进一步延伸到了系统级组件位置,让用户可以在不同的 macOS 界面层次里接触这些信息。
10. 本地化能力
README 写到它有:
- localized app and website
- shared 21-language catalog
- automatic website detection
- persistent pickers
- RTL support
这部分很容易被忽略,但其实很说明项目成熟度。一个菜单栏工具如果愿意认真处理多语言、持久化选择和 RTL 支持,说明它并不只是作者自用的小脚本,而是在努力变成一个真正可被不同用户稳定使用的产品。
11. 通知与一点轻松感
在 Features 的最后,README 还提到:
- optional session quota notifications
- weekly-reset confetti
这行字很有意思。前者是严肃的可用性功能,后者则带着一点轻微的庆祝意味。一个跟额度、限制、重置打交道的工具,愿意在“周重置”这种时刻撒一点彩带,说明它不想让自己只是冷冰冰的统计器。
它对“隐私优先”的理解,很具体
很多产品都会说自己重视隐私,但 README 里这部分写得相对落地。
CodexBar 强调:
- 复用已有 provider 会话
- 来源可能包括 OAuth、device flow、API keys、browser cookies、local files、provider apps
- 不存储密码
- 默认优先本地解析
- 浏览器 cookies 是 opt-in
这种描述很重要,因为它没有把“隐私优先”写成一个空口号,而是给出了操作层面的路径:尽量利用已有认证状态,而不是要求用户重新把敏感信息交给它统一保管。
README 的 Privacy note 还专门回应了一个很多人会自然担心的问题:它会不会扫描整块磁盘。文档明确表示,它不会爬整个文件系统,而是读取一小组已知位置,例如浏览器 cookies、本地存储、provider 配置文件、JSONL 日志等,而且是在对应功能启用时才会去使用这些来源。
这种边界感,会让人更容易放心。
权限说明写得非常“实用主义”
如果一个 macOS 工具要碰到浏览器 cookies、Keychain、CLI、本地文件这些东西,权限问题几乎绕不开。CodexBar 在 README 里没有回避这件事,反而把“为什么需要这些权限”讲得相当细。
它提到了几类典型权限:
Full Disk Access
这是可选的,主要与读取 Safari cookies 或 local storage 有关。README 也给出了替代思路:如果不授予,就使用其他支持的浏览器、手动 cookies、API keys、OAuth 等方式。
Keychain access
README 对这部分解释得尤其详细,包括:
- Chromium cookie 导入为何需要浏览器 Safe Storage key
- Claude OAuth bootstrap 在某些情况下为何会读取 Claude CLI 的 Keychain 项
- CodexBar 可能如何使用 Keychain 来处理 cookie 解密、缓存的 cookie header、OAuth/device-flow 凭据
- 如何在 Keychain Access 里为 CodexBar 添加访问控制
- 如何对浏览器的 Safe Storage key 做同样设置
- 如何在最后手段下完全停止 Keychain 读取
- 卸载后如果进程仍在运行,为什么还可能继续弹 Keychain 提示
这种写法非常像一个经历过真实用户反馈之后整理出来的答案集合。它不是只说“我们需要权限”,而是尽量把你会遇到的问题、你会烦躁的弹窗、以及你可能想关闭的路径,都提前写在前面。
Files & Folders prompts
README 还提到,CodexBar 会为某些 provider 启动 CLI 和本地 probe;如果这些 helper 读取项目目录或外部卷,macOS 可能会弹出文件夹或卷访问权限提示。
不会在后台索取的权限
README 也明确列出不会在后台请求的东西,比如 Screen Recording、Accessibility;如果有用户主动触发的 helper 行为,可能会让 macOS 申请 Automation 权限去打开 Terminal。
这类说明非常有助于建立信任:不是只告诉你“要什么”,也告诉你“不要什么”。
安装路径不止一种,思路也很清楚
CodexBar 的安装方式在 README 里给得很完整。
图形界面安装
可以通过 GitHub Releases 获取。
Homebrew 安装
1 | brew install --cask codexbar |
CLI Tarballs 与 Linux CLI 方式
README 还列出了 CLI tarballs,以及 Linux 下可用的 Homebrew formula 和 Arch Linux AUR 包。
例如:
1 | brew install steipete/tap/codexbar |
1 | yay -S codexbar-cli |
从这里可以看出,虽然 CodexBar 本体是一个 macOS 14+ 菜单栏应用,但作者也把 CLI 能力打包成了可在 macOS/Linux 使用的形式。这种拆分很聪明:GUI 做系统交互,CLI 负责脚本和集成,两者互相补位。
第一次运行时,它希望你怎么开始
README 的 First run 写得很直接,没有故作复杂:
- 打开 Settings → Providers,启用你要用的 provider
- 安装或登录你依赖的 provider 来源
- 来源可能是 CLI、浏览器会话、OAuth/device flow、API key、本地应用文件等
- 对 Codex provider,还可以可选配置 OpenAI cookies,以获得 dashboard extras
这种开始方式很符合它整体的产品逻辑:
先选你真的在用的 provider,再把已有登录或数据来源连接起来,然后菜单栏就开始为你工作。
它没有要求你重新建立一套身份系统,也没有要求你接受某种唯一标准接入方式。它更像是在说:你原本怎么使用这些服务,就尽量沿着那个路径接过来。
CLI 配置部分,能看出它并不排斥自动化用户
README 给出了通过 CLI 管理 provider 开关与 API key 的方式。
例如:
1 | codexbar config providers |
对于 API-key provider,也可以直接从命令行写入:
1 | printf '%s' "$ELEVENLABS_API_KEY" | codexbar config set-api-key --provider elevenlabs --stdin |
README 还说明:
- provider toggles 与 API keys 存在解析后的 CodexBar 配置文件里
- 新安装默认使用
~/.config/codexbar/config.json - 旧安装仍兼容
~/.codexbar/config.json set-api-key会修剪管道传入的值- 会以限制性配置文件权限存储
- 默认会启用对应 provider
- 可以通过
--no-enable只保存 key
这一段信息虽然是配置细节,但非常能说明 CodexBar 的实用取向:它没有把一切都关进图形界面,而是认真考虑了脚本化、自动化和已有安装路径兼容。
开发者如果想从源码构建,也有现成路径
README 也照顾到了希望从源码运行项目的人。
它给出的条件很明确:
- macOS 14+
- Swift 6.2+
构建方式如下:
1 | ./Scripts/package_app.sh # builds CodexBar.app in-place with ad-hoc signing |
开发循环则包括:
1 | ./Scripts/compile_and_run.sh |
CLI 安装方式也给出了示例:
1 | # after installing CodexBar.app in /Applications |
从这些命令可以看出,这个项目的开发体验至少在 README 层面已经整理得相当顺畅:打包、运行、测试、格式检查、文档列表,都有对应入口。
这不是一个“只给自己用”的仓库,它有很完整的文档意识
CodexBar 的 README 后半段列出了一整套文档入口,包括:
- Providers overview
- Provider authoring
- UI & icon notes
- CLI reference
- Configuration
- Keychain prompts
- CLI configuration
- Widgets
- Architecture
- Refresh loop
- Status polling
- Sparkle updates
- Packaging
- Development
- Release checklist
- Changelog
这种文档结构本身就很说明问题。
一个项目如果只满足“作者自己能用”,通常不会把 provider、配置、刷新循环、状态轮询、打包、发布流程都分别写清楚。CodexBar 看起来更像是在主动构建一个可维护、可扩展、可协作的系统。
尤其 README 里还写到一句:Open to new providers: provider authoring guide.
这句话背后的意思很简单:CodexBar 并不把 provider 支持当成封闭列表,它已经为“继续长大”预留了位置。
它甚至已经有了不少外部延展形态
README 末尾列出了一些外围生态入口,虽然文章不能把它们夸成某种宏大生态,但至少能看出一个事实:CodexBar 的能力已经被不同桌面和状态栏环境接住了。
例如:
- Windows 版本方向的项目
- Linux desktop integration
- Waybar 模块
- GNOME Shell 扩展
- Quickshell 插件
- KDE Plasma 小组件
- 面向 SketchyBar、tmux、Zellij 的状态条与终端集成方案
这些内容至少说明,CodexBar 的“显示使用信息”这件事,不只适合停留在一个独立的 macOS 菜单栏应用里。它也具备被其他桌面外壳或状态系统消费的可能。
从语言构成和仓库信息看,它有很鲜明的技术气质
根据仓库信息,这个项目的主要语言是 Swift。
这和它作为 macOS 菜单栏应用的定位非常一致。README 中也明确要求 Swift 6.2+,并且开发方式围绕 Xcode 与脚本构建展开。
仓库 metadata 还显示:
- 仓库名为
steipete/CodexBar - 默认分支是
main - License 为 MIT
这让项目形象更加明确:一个公开仓库、面向 macOS、以 Swift 为核心、同时又提供 CLI 路径的工具型项目。
如果用一句更贴近使用者的话来形容它
CodexBar 像是把那些原本散落在网页、CLI、控制台、账单页和本地配置里的碎片,轻轻拢到菜单栏的一小块空间里。
它不替你写代码,不替你思考架构,也不替你决定该用哪一个 provider。它做的是更朴素、却也更容易每天受益的事情:让你知道自己现在处在什么位置。
还有多少额度,什么时候重置,某个服务现在稳不稳定,哪些地方能看到花费,哪些地方可以复用已有会话,哪些权限是可选的,哪些配置可以脚本化——这些问题,平时看起来零碎,一旦集中起来,就会组成一种非常具体的掌控感。
而 CodexBar 最有意思的地方,也许正是在这里:
它不是在制造新的复杂度,而是在替你收拾复杂度。
结语
CodexBar 是一个很有目标感的项目。它把“AI 编码服务的额度与状态可视化”这件事做成了菜单栏体验,并围绕重置时间、花费、状态、认证来源、CLI、Widget、配置和权限说明,搭建出一套相当完整的使用路径。
如果说很多开发工具是在帮你“更快地产出”,那 CodexBar 更像是在帮你“更清楚地行动”。它不抢主角位置,却非常知道自己该站在哪:就在菜单栏里,安静地提醒你,下一次重置还有多久,而你的节奏,最好别再靠猜。
