在 OpenAI Codex 中使用 OminiGate
在 config.toml 里添加一个自定义 model_provider,Codex CLI 的每次请求都会走 OminiGate —— OpenAI、Anthropic、Gemini 模型一网打尽。
概览
OpenAI Codex CLI 从 ~/.codex/config.toml 读取 provider 定义。每个 provider 都包含 name、base_url、鉴权环境变量名和 wire 协议。也就是说 Codex 可以调用任何兼容 OpenAI 的网关 —— 包括 OminiGate —— 无需打 patch 或 fork。
针对 OminiGate,选择 wire_api = "chat"(OpenAI chat-completions 协议)。Codex 会把请求发送到 base URL 上的 /v1/chat/completions,并自动附加 OMINIGATE_API_KEY 作为鉴权头。
- 一份配置文件,零代码改动。
- 一行参数即可在 OminiGate 与 OpenAI 之间切换。
- 兼容所有 OminiGate 在 chat-completions 端点上暴露的模型。
前置条件
需要安装 Codex CLI 并准备一把 OminiGate API Key。
1. 安装 Codex CLI
Codex 以 npm 包形式发布(@openai/codex),需要 Node 18+。macOS 和 Linux 原生支持;Windows 走 WSL2。
npm i -g @openai/codex2. 获取 OminiGate API Key
到 Dashboard 创建一把 Key。该 Key 会以 OMINIGATE_API_KEY 环境变量形式引用,不写入 config.toml。
打开 API Keys→配置 Codex CLI
Codex 启动时从 ~/.codex/config.toml 读取配置。我们把 OminiGate 注册为自定义 provider,再用 profile 包一层 —— profile 的好处是:OminiGate 和 Codex 内建的 OpenAI 能力可以共存,不会互相覆盖。
Shell 里残留的 OPENAI_API_KEY 或 OPENAI_BASE_URL 会和 Codex profile 冲突,尤其是在 OminiGate 和原生 OpenAI 之间切换时。开始之前先 unset。
unset OPENAI_API_KEY
unset OPENAI_BASE_URL1. 注册 provider 并定义 profile
把下面这一段追加到 ~/.codex/config.toml(文件不存在时自动创建)。[profiles.ominigate] 让原有的 Codex 工作流不受影响 —— 只有显式激活这个 profile 才会走 OminiGate。
# ~/.codex/config.toml
[model_providers.ominigate]
name = "OminiGate"
base_url = "https://api.ominigate.ai/v1"
env_key = "OMINIGATE_API_KEY"
wire_api = "chat"
requires_openai_auth = false
request_max_retries = 4
stream_max_retries = 10
stream_idle_timeout_ms = 300000
[profiles.ominigate]
model = "openai/gpt-5.4-pro"
model_provider = "ominigate"各字段的作用:wire_api="chat" 让 Codex 使用 OpenAI chat-completions(不是 Responses API);requires_openai_auth=false 关闭默认的 OpenAI OAuth 流程,第三方 provider 用不到;request_max_retries / stream_max_retries / stream_idle_timeout_ms 是 Codex 推荐的生产级重试与长流超时参数,不清楚就照抄。
2. 导出 API Key
Codex 从 env_key 指定的环境变量读取 Key。把 export 加到 shell profile 里,新开终端时也能保持生效。
export OMINIGATE_API_KEY="sk-omg-your-api-key"请注意:OpenAI 已宣布 wire_api = "chat" 将在 2026 年从 Codex CLI 中移除。OminiGate 目前只暴露 /v1/chat/completions 端点,我们正在评估新增 Responses API 端点以便 Codex 在弃用后继续可用,进展请关注 changelog。在此之前 "chat" 仍能工作,但启动时可能会看到弃用警告。
运行 Codex
激活刚才定义的 profile。Codex 会加载 OminiGate model_provider 和默认模型 slug,然后开始会话:
# Use the profile you defined in config.toml
codex --profile ominigate "Refactor the main.rs to use async/await"单次调用覆盖默认模型:
codex --profile ominigate --model anthropic/claude-opus-4.6 "Explain this repo"不加 --profile 直接运行 codex 依然走 Codex 内建的 OpenAI 配置 —— OminiGate profile 只在你显式指定时启用。
推荐模型
Codex 采用 OpenAI chat-completions 协议,OminiGate 上所有支持该协议的模型都能直接用。下面这四个是不错的起点。
openai/gpt-5.4-proOpenAI 的旗舰推理模型。适合复杂重构与多文件编辑。
openai/gpt-5.3-codexOpenAI 专门针对 Codex 调优的变体,擅长代码生成、多文件编辑与工具调用循环 —— 运行 Codex CLI 时的首选默认。
anthropic/claude-opus-4.6Anthropic 顶级档位,同样暴露在 chat-completions 端点上。长上下文代码审查表现强。
google/gemini-3.1-pro-previewGoogle 旗舰 Preview 模型,超大上下文窗口,支持多模态输入。
完整模型列表: /models.
常见问题
Codex 仍在调用 api.openai.com,而不是 OminiGate。
请检查 config.toml 顶层是否设置了 model_provider = "ominigate",而不是放在某个 [profiles.*] 块里。运行 codex --verbose [prompt] 可以看到 Codex 最终解析到的 provider。
每个请求都返回 404 Not Found。
最常见的原因是 wire_api = "responses"。OminiGate 暴露的是 /v1/chat/completions,而不是 OpenAI Responses API。改成 wire_api = "chat" 并重启即可。
Codex 报错提示 OMINIGATE_API_KEY 不存在。
Codex 从启动它的 shell 读取环境变量。如果是在新终端里设置的,需要在同一个 shell 中重新启动 Codex —— 或者把 export 写进 ~/.zshrc / ~/.bashrc。
下一步
查看完整 API 参考,或浏览更多可在 Codex 中调用的模型。