一个菜单栏应用,装完即得两件事:看清所有 AI 编码工具的剩余额度,把任意 LLM 接进 Codex CLI / Claude Code。
AnyCodex = CodexBar(额度监控)+ opencodex(万能 provider 代理),合并成一个 macOS 客户端。两个上游都是持续维护的成熟开源项目,AnyCodex 只做胶水层:把 opencodex 运行时打包进 .app,由应用托管其生命周期,菜单栏统一入口。
用 AI 编码的人普遍面临两个日常麻烦:
- 额度焦虑 — Codex、Claude Code、Cursor、Copilot……每家的会话/周/月额度分散在各自的网页里,想知道"我还能不能跑一个长任务"要挨个去查。
- 模型切换成本 — Codex CLI 只认 OpenAI,Claude Code 只认 Anthropic;想用 Gemini、Grok、DeepSeek、Ollama 或自建中转,要么换工具要么改配置。
AnyCodex 把两件事都收进菜单栏:
- 额度监控(来自 CodexBar):63 个 provider 的用量、重置倒计时、余额、消费统计、状态告警。复用你已有的登录(OAuth / CLI 凭据 / 浏览器 cookie),不存密码。
- Provider 代理(来自 opencodex):应用启动时自动拉起内嵌的 opencodex 代理,菜单点 "Manage AI Providers…" 打开它的 Web 管理台 —— OAuth 登录、API key、模型同步、账号池,全部可视化配置。配好后
codex和claude命令行照常用,底层模型随你换。
从 Releases 下载对应的包,解压后把 AnyCodex.app 拖进"应用程序"文件夹,双击运行。
该下哪个? 芯片看 关于本机(Apple M 系列 = arm64,Intel = x64);精简版体积减半,但需要你机器上有 bun。
| 包 | 安装后 | 适用 |
|---|---|---|
AnyCodex-*-arm64.zip |
161MB | Apple Silicon,开箱即用 ← 多数人选这个 |
AnyCodex-*-arm64-slim.zip |
100MB | Apple Silicon,需先 brew install bun |
AnyCodex-*-x64.zip |
161MB | Intel Mac,开箱即用 |
AnyCodex-*-x64-slim.zip |
104MB | Intel Mac,需先 brew install bun |
装错了不会有隐患:精简版在缺少 bun 时会明确提示安装命令,换成完整版即可。
- 全部经 Developer ID 签名 + Apple 公证,Gatekeeper 不拦截
- 要求 macOS 14+
体积说明:应用本体仅约 3MB,其余是内嵌的 opencodex 及其 Bun 运行时。opencodex 是 Bun 应用(用了
Bun.serve、bun:sqlite等专有 API),node 无法替代,精简版正是把这份 60MB 运行时交给系统上已有的 bun。
首次使用:
- 菜单栏出现图标后,打开 设置 → Providers,启用你在用的服务(Codex 读
~/.codex登录、Claude 读 Claude Code 凭据,首次会请求一次钥匙串授权,选"始终允许") - 菜单里 "Manage AI Providers…" 打开代理管理台,按需接入其他模型
首次启动会修改你的 Codex 配置。 内嵌代理启动时,opencodex 会在
~/.codex/config.toml里注入openai_base_url,把 Codex 的请求指向本地代理(这正是"任意模型接进 Codex"的实现方式,你的聊天记录不受影响)。
- 不想要这个行为:菜单里点 "Stop opencodex Proxy",然后执行
ocx restore还原原生 Codex 配置;之后 AnyCodex 就只做额度监控。- 想恢复代理:菜单点 "Start opencodex Proxy"。
git clone https://github.com/jingchang0623-crypto/anycodex.git
cd anycodex
# 1. 下载并内嵌 opencodex 运行时(需要 npm;bun 可选,会自动打包)
./Scripts/vendor-opencodex.sh
# 2. 打包(adhoc 签名,本机自用)
./Scripts/package_app.sh debug
open AnyCodex.app正式分发版需要 Apple Developer 证书:
APP_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
APP_TEAM_ID=TEAMID \
APP_STORE_CONNECT_API_KEY_FILE=~/path/AuthKey_XXXX.p8 \
APP_STORE_CONNECT_KEY_ID=XXXX \
APP_STORE_CONNECT_ISSUER_ID=xxxx-xxxx \
./Scripts/sign-and-notarize.shAnyCodex.app
├── CodexBar 主体(Swift,菜单栏 UI + 63 个 provider 额度抓取)
├── OpenCodexProxyManager(胶水层:进程托管、健康巡检、崩溃重启、退出回收)
└── Contents/Resources/opencodex(内嵌运行时:bun + opencodex,启动时自动运行于 :10100)
设计原则:能复用上游的绝不重写。额度抓取、菜单 UI、设置体系全部来自 CodexBar;provider 接入、OAuth、模型管理全部来自 opencodex 自带的管理台。本仓库相对上游的增量只有约 500 行胶水代码(Sources/CodexBar/OpenCodex*.swift + 打包脚本),因此可以持续跟进两个上游的更新:
git fetch upstream # upstream = steipete/CodexBar
git merge upstream/main
./Scripts/vendor-opencodex.sh # 更新内嵌的 opencodex 到最新版注意:本 fork 已停用 Sparkle 自动更新(上游的更新源会把应用替换回原版 CodexBar),升级请通过 Releases 或源码构建。
菜单里 Codex 显示 "temporarily unavailable"?
CodexBar 的 Codex 额度需要 ChatGPT 订阅登录(codex login)。如果你的 ~/.codex 只配了第三方中转的 API key,官方额度无从读取——中转额度可通过 设置 → Providers → sub2api 配置(要求 HTTPS 端点)。
Claude 显示 "No available fetch strategy"? Claude Code 的凭据存在系统钥匙串,首次读取需要授权:菜单点"刷新",弹窗选"始终允许"。
Codex 桌面 App 报 502 Bad Gateway,但终端里 codex 一切正常?
检查你的科学上网工具(Clash / Surge / V2Ray 等)是否开着系统代理。终端工具只读环境变量,桌面 App 走 Chromium 内核、读系统代理设置 —— 于是发往 127.0.0.1:10100 的请求被代理软件截走,回一个空响应体的 502。代理本身完全正常,日志里也不会有任何记录,极具迷惑性。
诊断:scutil --proxy 查看系统代理是否启用。
解决:在代理软件的规则里放行回环地址(Clash 加 IP-CIDR,127.0.0.1/32,DIRECT),或关闭"系统代理"开关(TUN/增强模式一般不影响回环)。
升级 AnyCodex 后,Codex App 切模型报 502 Bad Gateway?
升级会替换代理进程,而已经打开的 Codex App 仍连着旧进程。完全退出 Codex App(⌘Q)再打开即可,顺便也会刷新模型列表。
代理端口冲突?
默认端口 10100。菜单里可 Stop/Start 代理;配置由 opencodex 管理(~/.opencodex),代理运行日志在 ~/Library/Logs/AnyCodex/opencodex.log。
Codex 桌面 App 的模型选择器里看不到自定义模型?
桌面 App 必须以 ChatGPT 账号登录(codex login)才会向代理请求模型列表;若 ~/.codex/auth.json 里只有 OPENAI_API_KEY(API-key 模式,某些第三方切换工具会这样写),App 只显示内置官方模型。登录后完全退出再打开 App 即可。
某个 provider 明明能用某模型,但列表里没有?
opencodex 以 provider 的 /v1/models 探测结果为准,配置里手工写的模型会被剪掉。用自定义模型注册(不受探测剪枝影响):
./Scripts/register-custom-models.sh <provider> gpt-5.6-sol gpt-5.5 gpt-5.4
./Scripts/register-custom-models.sh --list # 查看已注册的脚本可重复运行(已注册的自动跳过),注册后自动同步目录,重启 Codex App 生效。
各 provider 的凭据来源与排错细节继承自上游,按需查阅:Codex、Claude、Cursor、Gemini、Copilot、OpenRouter、sub2api;开发与发布流程见 DEVELOPMENT.md 和 RELEASING.md。
- steipete/CodexBar — Peter Steinberger 的菜单栏额度监控,本项目的主体(MIT);provider 相关的详细文档见上游 docs/
- lidge-jun/opencodex — 万能 provider 代理,本项目的内嵌运行时(MIT)
本项目基于 MIT 许可发布,保留上游版权声明,见 LICENSE。
AnyCodex is a merged client of CodexBar (AI coding-provider usage monitoring, 63 providers) and opencodex (universal provider proxy for Codex CLI / Claude Code), shipped as one signed & notarized macOS menu bar app. Install once, watch every quota, route any model.