Codex CLI 想跑 Claude?一条配置切换所有模型:opencodex 实战指南

Codex CLI 想跑 Claude?一行配置切换所有模型:opencodex 实战指南


你有没有遇到过这种情况:习惯了 Claude Code 的工具调用能力,但项目中有些模块你想用 DeepSeek 或者 Qwen 来跑——不是因为贵,是因为它们在某些任务上确实更好用。结果呢,换一个模型就要折腾半天配置,或者干脆没法在同一个 CLI 里用。

opencodex 解决的就是这个问题。它是一个本地代理,把 Codex / Claude Code 的请求翻译成任何一个你指定的模型可以理解的格式,40 多个 Provider 开箱即用,Claude、GeminiGrok、DeepSeek、Qwen、Ollama……全都可以在一个终端里自由切换。

上线 47 天,7285 个 Star,60 个 Issues,MIT 协议,今天刚发版 v2.10.0——说实话,这个增速不是靠运气。

它到底怎么工作的?

一句话:opencodex 在本地起一个端口(默认 10100),充当”协议翻译层”。

当你执行 codex -m "anthropic/claude-sonnet-5" "写一个 Rust 错误处理模块" 时:

  1. Codex CLI 原本要把请求发往 OpenAI 的 Responses API
  2. opencodex 拦截这个请求,读取配置中 anthropic 这个 Provider 的定义(Base URL、认证方式、模型 ID)
  3. 把请求体从 OpenAI 格式转成 Anthropic 的 Messages API 格式——包括 tool_calls、streaming、reasoning tokens 双向翻译
  4. 把响应再翻译回 OpenAI 格式,返回给 Codex CLI

整个过程 Claude Code 完全感知不到,它以为自己还是在跟 OpenAI 说话。这个”零侵入”的思路是整个项目最聪明的地方——不 Fork,不 Patch,不改一行客户端代码。

安装只需要两条命令:

npm install -g @bitkyc08/opencodex   # Node 18+
ocx start                             # 启动代理 + Web 管理界面

然后浏览器打开 http://localhost:10100 ,在 Dashboard 里配置 Provider、选模型、加 ChatGPT 账号池。

Combo:,这才是企业级用法

如果只是”换模型用”,那 opencodex 只能算一个高级 SwitchySharp。但它的 Combo 功能让我认真看了三遍文档。

Combo 的逻辑是:创建一个虚拟模型 ID,前面是一组真实 Provider/模型的故障转移或加权轮询队列。

ocx combo set main 
  --targets anthropic/claude-opus-4-8,openai/gpt-5.6-sol,google/gemini-3-pro 
  --strategy failover

这行命令的效果是:默认请求打到 Claude Opus,如果它遇到可重试错误(限流、超时、500),自动切换到 GPT-5.6 Sol,还失败就再切到 Gemini 3 Pro。你在 Codex 里只需要指定 combo/main,剩下的全是 opencodex 的工作。

Round-robin 模式支持权重配置,比如 claude-opus-4-8:2,gpt-5.6-sol:1,意思是每 3 个成功请求,2 个给 Claude,1 个给 GPT-5,靠 stickyLimit 控制”粘性”——同一个对话在一段时间内会持续路由到同一个模型,保证上下文一致性。

这个能力解决了一个很实在的工程问题:生产环境中你不应该只有一个模型当主力,但你也不应该在每次调用前手动判断该用哪个。Combo 把这个决策自动化了。

ChatGPT 账号池:另一个被忽视的痛点

Codex CLI 和 Codex App 支持用 ChatGPT 账号登录——登录后额度比免费 API key 慷慨得多。但问题是:额度用完要手动刷新、线程会绑定到某个账号切不掉、团队多人使用时账号管理一团乱。

opencodex 的 ChatGPT 账号池功能:把多个 ChatGPT 账号加进 Pool,新会话自动路由到当前用量最低、状态健康的账号;已有线程锚定到启动它的账号,不会因为池里其他账号刷新而断掉。

Dashboard 里可以看每个账号的用量状态、手动触发刷新、设置冷却时间。配合 Combo 使用时,Pool 可以作为 combo/main 里的一个 Provider 节点——主力模型挂了,切到 ChatGPT 账号池,继续跑。

40+ Provider:支持不等于等价可用

文档里列了 40 多个 Provider,但不是所有 Provider 的体验都一样。开箱即用程度分三档:

第一档:完整兼容,请求响应双向翻译完善,工具调用、streaming、reasoning tokens 都能正确处理。主要包括:OpenAI(API key 或 ChatGPT 账号登录)、Anthropic(OAuth 或 API key)、Google Gemini(OAuth)、xAI Grok(OAuth)、Kimi(OAuth)、Ollama(本地)、DeepSeek、OpenRouter、Groq。

第二档:基础兼容,OpenAI-compatible 端点只要符合 Chat Completions 规范就能接入,但 tool_use 复杂场景可能有边缘情况。基本上所有 OpenAI-compatible 服务都属于这一档。

第三档:需要额外配置,比如 Cursor 的 experimental 支持、GitHub Copilot 的非官方 device-flow bridge,这些适合尝鲜但不建议生产依赖。

有一点值得注意:opencodex 官方文档也明确说了,部分 Provider 可能对第三方代理流量有 TOS 限制,使用前建议自行确认。这个风险点值得在决策前查一下你用的 Provider 的服务条款。

适合谁 / 不适合谁

适合:

  • 已经在用 Codex CLI 或 Claude Code,想试试其他模型但不想折腾环境配置
  • 团队多人共用多个模型账号,需要统一入口和账号管理
  • 对某个特定模型有成本或能力偏好,但不想放弃 Codex 的工具生态
  • 需要在生产环境搭建多模型备份链路,不想自己维护协议翻译层

不适合:

  • 只需要一个固定模型,不需要频繁切换——直接用官方客户端就行
  • 对延迟极度敏感的生产核心链路——本地代理多一跳,虽然通常在 50ms 以内,但确实不是零
  • 使用的 Provider 明确禁止第三方代理——先查 TOS,别等到被封号

真实使用门槛

Node 18+,支持 macOS/Linux/Windows。macOS 和 Linux 用 systemd 或 launchd 做后台服务,Windows 用 Task Scheduler 或原生服务。bun 运行时随 npm 包自动安装,不需要单独装。

首次配置推荐用 ocx init,交互式向导会引导你写入配置文件、注入 Provider、测试连接。不想用向导的也可以直接改 ~/.opencodex/config.json,格式在官方文档有完整说明。

远程访问(hostname: "0.0.0.0")需要设置 OPENCODEX_API_AUTH_TOKEN,否则代理拒绝非本地请求。

下一步:怎么开始

第一步,打开终端跑 npm install -g @bitkyc08/opencodex && ocx start,浏览器访问 localhost:10100,用 Dashboard 里的 Providers 页面加一个你想试的 Provider。

第二步,用你最常用的一条 Codex 指令测试路由:codex -m "provider/model-id" "任意任务",看是否正常返回。Provider ID 格式在 Model Routing 文档里有说明。

第三步,如果你有多模型需求,跑一下 ocx combo set 建一个故障转移链路,把你最信任的模型放第一位,备选放后面。

文档站是 https://opencodex.me ,包含完整的 Providers 列表、CLI 参考、Combo 攻略和 Sidecar(搜索 / 视觉)配置指南。

GitHub 仓库:https://github.com/lidge-jun/opencodex ,有问题可以去 Issue 区提问,维护者响应速度目前看起来不错。

评论区

0 条评论

登录后可评论。