Codex CLI
在 macOS、Linux 和 Windows 上通过 APIPool 的 Responses API 接入 Codex CLI。
本文说明如何在 macOS、Linux、Windows 原生环境或 Windows WSL2 中把 Codex
接入 APIPool。第 3 步的 provider 配置写在用户级 ~/.codex/config.toml,Codex CLI、
IDE 扩展和桌面端共用这一份配置;本文的安装与验证命令以 CLI 为准。
Codex 的自定义模型供应商走 Responses API。本文提供 APIPool 当前已开放的 GPT 系列接入方案;请从模型列表中选择 API Key 所属分组可用、且支持 Responses 的 GPT 文本模型。其他模型系列将在正式开放后补充接入说明。
一键导入 CC Switch
已安装 Codex 时,可以用下面的按钮导入真实 API Key、APIPool 地址和模型。登录后点击 “选择我的 API Key”,选中密钥,再点击“导入到 CC Switch”;也可以直接粘贴完整 Key。 请确认所选密钥分组支持填写的 Responses 模型。
三个系统使用同一个导入按钮,先安装并至少启动一次 CC Switch:
| 系统 | 安装与导入 |
|---|---|
| macOS | 安装 macOS 版本并放入“应用程序”;浏览器询问时允许打开 CC Switch。 |
| Windows | 优先使用安装包安装;浏览器询问时允许打开 CC Switch。便携版若无法唤起,改用安装包注册协议。 |
| Linux | 安装对应发行版的软件包并启动;确保桌面环境已关联 ccswitch:// 协议。AppImage 无法唤起时先完成桌面集成,或改用安装包。 |
在 CC Switch 中核对地址为 https://app.apipool.dev/v1,确认导入,再启用该供应商。
这会让 CC Switch 管理本机 Codex 的配置与凭据;已有配置请先备份。已完成导入并启用的
用户可以跳到“启动与验证”,无需再手动覆盖它生成的配置。供应商 ID 由 CC Switch 生成,
因此输出可能是 custom,而不是下面手动配置的 apipool。
没有弹窗并不一定代表未安装:检查浏览器的外部应用提示,再参考 CC Switch 协议排查说明。 浏览器无法可靠判断导入是否成功,请以 CC Switch 中的供应商条目为准。
WSL2 注意: Windows 版 CC Switch 默认管理 Windows 用户目录。WSL 内的 Codex 使用另一份 Linux 用户目录,不会自动收到这次配置;在 WSL 中使用时请按下方 Linux 步骤配置,或明确核对 CC Switch 所管理的目标目录。远程 SSH 主机同样需要在远端配置。
如果切换后看不到旧任务,请先阅读对话记录不互通怎么办。 普通一键导入不会合并已有的不同 provider 历史。
1. 安装 Codex CLI
以下命令取自
Codex CLI 官方安装说明。如果
codex --version 已经可用,跳过本节。
macOS
brew install --cask codex也可以用官方安装脚本:
curl -fsSL https://chatgpt.com/codex/install.sh | shLinux
curl -fsSL https://chatgpt.com/codex/install.sh | sh已安装 Node.js 时,macOS、Linux 和 Windows 都可以改用:
npm install -g @openai/codexWindows 原生环境
在 PowerShell 中执行:
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"Codex 官方推荐 Windows 11。原生环境优先用 elevated 沙箱;设备策略不允许完成
管理员配置时,改用 unelevated:
[windows]
sandbox = "elevated" # 无法使用时改为 "unelevated"Windows WSL2
先在管理员 PowerShell 中安装并进入 WSL:
wsl --install
wsl再在 WSL shell 中按 Linux 方式安装:
curl -fsSL https://chatgpt.com/codex/install.sh | sh项目建议放在 WSL 的 ~/code 等 Linux 路径下,不要放在 /mnt/c,否则会遇到文件
权限、符号链接和 I/O 性能问题。
安装完成后验证:
codex --version2. 准备 API Key
- 在余额页充值。
- 在 API Key 页面创建 Key,分组选择包含目标模型的那个。
- 趁完整 Key 展示时保存好。不要把真实 Key 写进
config.toml、项目文件、截图或 客服消息。
macOS、Linux 和 WSL2
在准备启动 Codex 的 shell 中设置:
export APIPOOL_API_KEY="YOUR_APIPOOL_API_KEY"Windows PowerShell
在准备启动 Codex 的同一个 PowerShell 会话中设置:
$env:APIPOOL_API_KEY = "YOUR_APIPOOL_API_KEY"以上设置只对当前终端会话生效。长期使用请交给操作系统密钥管理器或其他受保护的 环境变量机制,不要提交带真实 Key 的 shell 或 PowerShell 文件。
3. 配置 Codex
把下面的内容合并进用户级配置文件,保留文件中其他已有配置。不要写进项目级
.codex/config.toml——Codex 会忽略项目级配置里的 provider 和鉴权设置。
| 环境 | 用户级配置文件 |
|---|---|
| macOS、Linux、WSL2 | ~/.codex/config.toml |
| Windows 原生环境 | $HOME\.codex\config.toml,通常即 $env:USERPROFILE\.codex\config.toml |
GPT 配置:
model_provider = "apipool"
model = "gpt-5.6-sol"
review_model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
model_supports_reasoning_summaries = true
disable_response_storage = true
network_access = "enabled"
web_search = "cached"
windows_wsl_setup_acknowledged = true
[model_providers.apipool]
name = "APIPool"
base_url = "https://app.apipool.dev/v1"
wire_api = "responses"
env_key = "APIPOOL_API_KEY"
requires_openai_auth = false
[features]
goals = true这里的 base_url 是 Codex 自定义 provider 的客户端配置,不是平台通用 Base
URL。平台通用 Base URL 仍是 https://app.apipool.dev;Codex 会在 provider
base_url 后追加 /responses,所以这里必须多保留一级 /v1,最终请求才是
https://app.apipool.dev/v1/responses。不同工具的配置不能互相照抄:Claude Code
会自行追加 /v1/messages,请按 Claude Code 接入文档使用裸域名。
几个不能改错的键:
- Codex 专用
base_url结尾的/v1必须保留;不要改成平台通用的裸域名,也不要 再追加/responses。 env_key与requires_openai_auth = false让 Codex 用环境变量里的 APIPool Key 鉴权。显式env_key也可与requires_openai_auth = true配合,但该开关还影响 登录状态和部分特性,不要把它当作订阅/API 的路由切换按钮。- 特惠分组的 GPT 模型接受 Codex 网页搜索工具声明,且不会额外收取网页搜索费用。
web_search = "cached"用来明确这一行为,也是 Codex 当前的默认值;已有用户即使 没写这一项,也不需要修改配置。
从旧站配置迁移
旧站的兼容模式使用 auth.json 保存 OPENAI_API_KEY,并配置
requires_openai_auth = true。已有配置可以暂时继续沿用,但它会复用 Codex 的全局
OpenAI 认证凭据,可能与现有 ChatGPT/OpenAI 登录共用或冲突;新配置建议改用上面的
env_key 方案,不要为了接入 APIPool 覆盖已有 auth.json。
迁移时仍须把 base_url 写成 https://app.apipool.dev/v1。旧站的 API Key Mode
不是新站支持的接入方式:x-openai-actor-authorization 只是静态附加请求头,不会提供
API Key,也不能替代 Authorization: Bearer ...。
其余键是使用偏好,可按需调整:model_reasoning_effort 控制推理强度,
review_model 指定 /review 使用的模型,network_access 控制沙箱网络访问,
[features] goals 开启目标特性。自定义 provider 建议保留
disable_response_storage = true,让 Codex 不依赖服务端响应留存。
4. 选择 GPT 模型
默认的 gpt-5.6-sol 是 GPT-5.6 里能力最强的一档。要换模型就改顶层 model
(以及 review_model)的值,然后重启 Codex。只填模型列表中存在、
API Key 所属分组可用、且支持 Responses 的 GPT 文本模型。填写模型名本身不会让 Key
拿到其他分组的权限。
5. 启动与验证
在项目目录启动交互会话:
codexmacOS、Linux 和 WSL2 可以跑一次只读工具调用来验证:
codex --ask-for-approval never --sandbox read-only exec \
--skip-git-repo-check \
"请调用 shell 工具执行 pwd,然后回复命令输出路径。"Windows PowerShell 用同一条命令,续行符换成反引号:
codex --ask-for-approval never --sandbox read-only exec `
--skip-git-repo-check `
"请调用 shell 工具执行 Get-Location,然后回复命令输出路径。"接通时,Codex 会先打印 provider: apipool 和所选模型,再返回模型回复或工具结果。
--ask-for-approval、--sandbox 这类全局参数必须写在 exec 前面。
常见问题
| 现象 | 检查项 |
|---|---|
codex 命令不存在 | 重开终端后执行 codex --version;仍失败则检查安装目录是否已加入 PATH。 |
401 | 确认启动 Codex 的那个 shell 或 PowerShell 会话设置了 APIPOOL_API_KEY,且 Key 仍是启用状态。 |
403 或 404 model_not_found | 确认模型在模型列表中,且 Key 所属分组已开放该模型。 |
Model metadata ... not found 警告 | APIPool 的模型 ID 可能不在 Codex 内置目录里。这条警告不代表请求失败,继续看后面有没有返回结果。 |
| 请求 URL 或路由错误 | base_url 必须是 https://app.apipool.dev/v1,不要自行追加 /responses。 |
自定义 provider 各字段的当前定义见 Codex 配置参考。