疑难排查 · 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 set
  • codex 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 只存储变量的名字,这样密钥永远不会躺在配置文件里。

跳过折腾坏掉的配置

apiToken.sale 提供标准的 Anthropic API——同样的模型、同样的 SDK、一个预付余额。把你工具的 base URL 指向它,本页的配置即可原样生效。