Codex Proxy 是一个本地网关:以 Anthropic Messages 作为统一入口,兼容 Claude Code 使用习惯,并将请求稳定路由到 Codex / Gemini / Anthropic(透传) 等上游。
运行拓扑:
Claude Code -> http://localhost:8889/v1/messages -> Codex Proxy -> (Codex/Gemini/Anthropic Upstream)
- 协议转换:
/v1/messages与/v1/messages/count_tokens - 流式转换:上游 SSE 统一回传为 Anthropic 事件格式
- 多上游支持:Codex、Gemini、Anthropic 透传
- 模型映射:按
opus / sonnet / haikuslot 做模型和推理强度映射 - 负载均衡:同 slot 多端点选择、健康状态管理、同请求内 failback
- 稳定性:
count_tokens失败可回退估算(可配置)、本地冷却、短退避 - 可运维性:配置热更新、请求/路由日志、配置导入导出、Tauri 可视化管理
单模型模式:
多模型负载均衡模式:
从 Releases 下载安装包。
- 提供 macOS / Windows / Linux 安装包
- Linux 产物格式:
AppImage、DEB、RPM - CI Linux 构建基线固定为
ubuntu-22.04,避免ubuntu-latest漂移带来的 glibc 兼容问题
- macOS 如提示“应用已损坏”,执行:
xattr -cr /Applications/Codex\ Proxy.app- Linux 运行时依赖(Ubuntu)
如果你在 Ubuntu 上运行 AppImage 或启动程序时报缺少 libwebkit2gtk-4.1-0,先安装运行时库:
sudo add-apt-repository -y universe
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-0 \
libgtk-3-0 \
libayatana-appindicator3-1建议:
- Ubuntu 用户优先使用
DEB包(依赖通常会自动拉取) AppImage在部分系统上需要手动安装上述依赖
git clone https://github.com/J1aDong/codexProxy.git
cd codexProxy/fronted-tauri
npm install
npm run tauri devClaude Code 配置文件:~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:8889",
"ANTHROPIC_AUTH_TOKEN": "你的上游API密钥"
},
"forceLoginMethod": "claudeai",
"permissions": {
"allow": [],
"deny": []
}
}本地代理默认监听 http://localhost:8889,常用入口:
POST /v1/messagesPOST /v1/messages/count_tokens
- 接收
messages或count_tokens请求 - 识别输入模型归属 slot(
opus / sonnet / haiku) - 若启用负载均衡,在当前 slot 候选内选择端点
- 按
converter + operation解析上游 URL - 执行请求转换(tools、image、reasoning、model mapping)
- 调用上游并将流式响应转换回 Anthropic SSE
- 按返回状态更新端点健康(Healthy / Constrained / Cooldown)
- 遇到可重试错误时,同请求内切换同 slot 下一个候选(failback)
- 使用当前选中的单个端点转发请求
- 适合单上游、低复杂度场景
- 通过 profile 配置
opus / sonnet / haiku到端点候选列表的映射 - 支持每端点策略:
max_concurrencyerror_thresholdcooldown_secondstransient_backoff_seconds
默认行为:负载切换 不跨 slot(例如 opus 不自动降到 sonnet/haiku)。
fronted-tauri/:桌面前端(Vue)fronted-tauri/src-tauri/:Tauri 命令层(启动/停止、热更新配置、导入导出)main/:Rust 核心代理库与服务backup/:历史 Node.js 版本(归档参考)
关键排查入口:
main/src/server.rs:HTTP 入口、请求生命周期、上游调用、SSE 回传main/src/load_balancer/mod.rs:slot 选择、健康状态、故障切换main/src/transform/codex.rs:Anthropic <-> Codex 转换main/src/transform/gemini.rs:Anthropic <-> Gemini 转换main/src/transform/anthropic.rs:Anthropic 透传fronted-tauri/src-tauri/src/proxy.rs:配置装载、运行时热更新、模式组装
常见原因:load_balancer 配置不完整(如未选 profile 或 profile 无有效端点映射)。
结果:运行时会回退到单模型模式。
当开启 allowCountTokensFallbackEstimate 时,代理会回退到本地估算;关闭后会直接返回上游错误。
- 401/403:优先检查 API Key 与权限
- 429:检查配额与限流,必要时增加端点并启用 LB
- 404(路由不可用):会被识别为路由不可用信号并触发同 slot 快速切换
这是 Linux 桌面运行时依赖缺失导致。执行“Linux 运行时依赖(Ubuntu)”章节中的安装命令后再启动。
可以在claude code中输入
返回的数据文本和工具调用不要混在一起。继续操作。 或者可以把此文本做成自定义命令方便调用。 codex api在claude code调用时由于和codex cli不是完全匹配的调用方式,受系统提示词的限制等条件,上游很容易出现文本+工具调用的溢出文本,在本转换工具中很难处理此异常行为,可以手动提示词干预的方式规范上游的行为。
- 默认不跨 slot failover
codex-request.json模板指令仍是 Codex 路径的重要约束- 主线实现是 Tauri + Rust,
backup/仅历史参考

