疑难排查 · Codex CLI
Codex CLI Missing OPENAI_API_KEY——自定义提供商配置方法
当提供商期望的环境变量未设置时,Codex 拒绝启动。config.toml 中 env_key 的工作方式、export 为什么在 shell 之间会消失,以及一份可用的 profile。
你看到的报错
Missing OPENAI_API_KEY为什么会发生
- 提供商 env_key 所指的环境变量在运行 codex 的 shell 里没有设置。使用自定义提供商时变量可以是任何名字——报错会指出缺失的是哪一个。
- 密钥在另一个终端里导出,或加进了这个 shell 从未 source 过的配置文件。
- 变量已设置但为空,这同样算缺失。
- 实际使用的 profile 指向的提供商和你以为的不同,于是 Codex 寻找的变量与你导出的不是同一个。
如何解决
- 在 profile 中声明提供商,并在同一个 shell 里、运行 codex 之前,导出其 env_key 指名的那个变量。
- 启动前打印该变量确认它还在:export 只在当前 shell 有效,不是全局的。
- 运行 codex 时显式指定 profile,这样对哪个提供商——以及哪个 env_key——生效不再有歧义。
本网关的可用 profile
# ~/.codex/apitoken.config.toml
model = "gpt-5.6-sol"
model_provider = "apitoken"
[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://openai.api.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"
# then, in the same shell:
export APITOKEN_API_KEY="sk-pool-•••"
codex --profile apitoken相关搜索
OPENAI_API_KEY environment variable not setcodex api key not found
常见问题
运行 Codex CLI 需要 OpenAI 账户的密钥吗?+
不需要。使用自定义模型提供商时,env_key 可以指定你选的任何变量名,密钥来自那个提供商——OPENAI_API_KEY 本身只是默认提供商的变量。
我导出了密钥,但 Codex 仍然说它缺失——为什么?+
export 只在当前 shell 有效。如果 codex 在另一个终端、复用器面板或 IDE 任务里运行,那个环境从未见过你的 export。请在 codex 实际运行的地方设置它。
密钥应该放在 TOML 里还是 shell 里?+
shell 里。config.toml 通过 env_key 只存储变量的名字,这样密钥永远不会躺在配置文件里。