FastAIToken|一个 API,接入每个 AI 模型

Codex API Key 怎么配置?CLI、PowerShell 与 CI/CD 步骤

更新于 2026-10-31 · fastaitoken.cyou

简答:Codex API Key 配置先分场景:本地交互式 CLI 用 OPENAI_API_KEY 通过 codex login --with-api-key 登录;CI/CD 或 codex exec 等非交互式任务用单次注入的 CODEX_API_KEY。配置后运行 codex login status,再执行一次最小 codex exec 请求,才能确认认证和调用都已生效。使用 API Key 发起的调用按 API 账户标准费率计费,不等同于 ChatGPT 订阅额度。

定义:Codex API Key 配置,是把 API 密钥安全交给 Codex CLI 或自动化进程,用于认证并执行模型调用。

先选正确路径:本地登录还是自动化注入

本文是第三方 AI API 接入指南,核验时间为 2026-10-31。Codex 支持 ChatGPT 登录和 API Key 登录;官方文档明确说明,API Key 适用于本地 Codex 工作流和程序化任务,但部分依赖 ChatGPT 工作区或云服务的能力可能不可用。具体边界以官方认证说明为准。

场景认证方式可复制命令成功判定
macOS/Linux 本地 CLI交互式 API Key 登录printenv OPENAI_API_KEY | codex login --with-api-key再运行 codex login status
Windows PowerShell 本地 CLI设置当前会话变量后登录$env:OPENAI_API_KEY | codex login --with-api-key状态显示 API Key 认证
CI/CD、脚本、codex exec单次注入 CODEX_API_KEYCODEX_API_KEY="$CODEX_API_KEY" codex exec --json "检查项目结构"返回结果且日志没有密钥

如果还没有密钥,可从官方认证页中的 OpenAI dashboard 入口创建或管理。示例中的“你的密钥”和环境变量名都是占位符,不要把真实密钥写入文章、Issue、聊天记录或代码仓库。

本地 Codex CLI 配置 API Key

  1. 确认 CLI 已安装。官方 CLI 页面提供安装入口;macOS/Linux 的独立安装命令是 curl -fsSL https://chatgpt.com/codex/install.sh | sh。安装脚本内容和适用平台可能随版本变化,执行前应打开官方 Codex CLI 文档核对。
  2. 把密钥放进当前终端变量。macOS/Linux 示例:export OPENAI_API_KEY="你的密钥"。PowerShell 示例:$env:OPENAI_API_KEY="你的密钥"。这一步只是准备登录命令的输入,不代表已经完成 Codex 登录。
  3. 通过标准输入登录。macOS/Linux 使用 printenv OPENAI_API_KEY | codex login --with-api-key;PowerShell 使用 $env:OPENAI_API_KEY | codex login --with-api-key。官方认证页直接给出了通过 stdin 传入 API Key 的 CLI 方式。
  4. 检查认证方式。运行 codex login status。如果当前仍是 ChatGPT 登录,可运行 codex logout 清除已保存凭据,再重新执行 API Key 登录。官方文档说明,该命令用于查看当前认证方式。
  5. 执行最小调用。进入测试项目目录后运行 codex exec "用三句话说明当前项目结构",以“返回可读结果”为成功标准。仅看到 CLI 启动画面,不能证明模型请求已经完成。

API Key 的计费边界要单独记住:官方说明是,使用 API Key 的 Codex 调用通过 OpenAI Platform 账户按标准 API 费率计费,使用 API Key 时不会直接消耗 ChatGPT 计划内的额度。查看认证与计费说明,不要把 ChatGPT 登录和 API Key 登录混为同一种账户路径。

Windows PowerShell:临时变量与持久化变量

只想测试一次时,使用当前 PowerShell 会话变量即可:

  1. $env:OPENAI_API_KEY="你的密钥"
  2. $env:OPENAI_API_KEY | codex login --with-api-key
  3. codex login status
  4. codex exec "检查当前项目的主要目录"

如果需要在重启终端后继续使用,可写入当前 Windows 用户的环境变量:

[Environment]::SetEnvironmentVariable("OPENAI_API_KEY","你的密钥","User")

设置后关闭并重新打开 PowerShell,再验证:

$env:OPENAI_API_KEY | codex login --with-api-key

安全提醒:持久化环境变量会长期存在于用户环境中。共享电脑、团队机器或不受信任的脚本环境不适合长期保存高权限密钥;不再使用时可清理:[Environment]::SetEnvironmentVariable("OPENAI_API_KEY",$null,"User")。不要把密钥写入项目目录的 config.toml、PowerShell 配置文件、Git 提交或构建产物。

CI/CD 应使用 CODEX_API_KEY,而不是复制本地登录流程

官方环境变量文档把 CODEX_API_KEY 定义为非交互式 Codex 进程使用的 API Key,并列出 codex exec、codex review、TypeScript SDK 和远程 exec-server 等使用范围。自动化任务应优先采用单次注入,而不是把密钥设置为整个 Job 的长期环境变量。可参考官方环境变量说明和官方非交互模式说明。

Linux/macOS 的 CI 步骤示例:

CODEX_API_KEY="$CODEX_API_KEY" codex exec --json "检查最近一次提交并列出高风险问题"

这里假设 CI 平台已经把 Secret 注入名为 CODEX_API_KEY 的变量;不要把 <api-key> 原样复制到 Shell,因为尖括号可能被解释为重定向符号。

PowerShell CI 可使用单独的 Secret 变量名,避免覆盖长期环境:

$env:CODEX_API_KEY = $env:CI_CODEX_API_KEY; codex exec --json "检查最近一次提交"; Remove-Item Env:CODEX_API_KEY

官方文档特别提醒:如果工作流会检出或运行仓库控制的代码,不要将 OPENAI_API_KEY 或 CODEX_API_KEY 设置为整个 Job 的环境变量,因为构建脚本、测试、依赖钩子或被攻陷的 Action 可能读取它们。密钥应限制在实际调用的步骤内,并确认日志不会回显环境变量。

OPENAI_API_KEY、CODEX_API_KEY 与 CODEX_ACCESS_TOKEN 的区别

名称或方式适用入口主要边界
OPENAI_API_KEY官方 CLI API Key 登录示例通过 stdin 交给 codex login --with-api-key,不是所有自动化入口都必须读取的变量名
CODEX_API_KEY非交互式 Codex 进程用于 codex exec、codex review、TypeScript SDK 和远程 exec-server
CODEX_ACCESS_TOKEN受信任自动化、CLI 或 app-server用于 ChatGPT 或 Codex 访问令牌;普通 OpenAI API 调用仍应使用 Platform API Key
ChatGPT 登录本地 CLI、桌面应用或 IDE 扩展使用 ChatGPT 账户、工作区权限和相应计划能力,不等于 API Key 计费

官方认证页说明,ChatGPT 登录和 API Key 登录是两条不同路径;环境变量页面则分别列出 CODEX_API_KEY 与 CODEX_ACCESS_TOKEN 的用途。只有企业工作区授予相应权限、且自动化确实需要 ChatGPT 工作区能力时,才考虑访问令牌;一般 API 调用不要用它替代 API Key。

此外,官方文档说明 Codex 登录信息可能缓存于 ~/.codex/auth.json 或操作系统凭据存储。若使用文件缓存,应将其视为密码,不要提交到仓库、粘贴到工单或发送到聊天中。

配置失败:按最小证据逐层排查

  1. 先查命令路径。macOS/Linux 运行 which codex,PowerShell 运行 Get-Command codex,再运行 codex --version,排除 PATH 未刷新或多个安装位置。
  2. 再查认证状态。运行 codex login status。如果显示 ChatGPT 登录而你要使用 API Key,先执行 codex logout,再通过 stdin 重新登录。
  3. 401 或认证失败。检查当前 Shell 是否真的有变量、密钥是否被截断、是否包含多余空格或已被撤销。不要把完整密钥贴入日志;必要时轮换密钥后重新登录。
  4. 403 或权限不足。区分 API 账户权限、组织或项目权限,以及 ChatGPT 工作区权限。API Key 登录并不自动获得 ChatGPT 工作区或云端能力。
  5. 429。先用同一个密钥和同一个最小任务复现,记录非敏感错误正文与发生时间,再检查账户用量、限速和自动化并发;不要仅凭一次 429 断言平台整体故障。
  6. 超时、登录回调失败或 TLS 错误。如果企业网络使用 TLS 代理或私有根证书,官方环境变量文档列出 CODEX_CA_CERTIFICATE,未设置时可回退到 SSL_CERT_FILE。先验证 PEM 文件路径和证书链,再判断是否为网络环境问题。
  7. 日志排查。认证页说明直接运行 codex login 时会写入专用登录日志。查看日志前应确认不会把 API Key、访问令牌或完整请求头复制到公开工单。

常见问题

Codex API Key 应该放在哪个变量里?

本地交互式 API Key 登录按官方示例使用 OPENAI_API_KEY,通过 codex login --with-api-key 的 stdin 传入;CI/CD、codex exec 等非交互式任务使用单次注入的 CODEX_API_KEY。

ChatGPT 订阅能替代 API Key 吗?

Codex 可以选择 ChatGPT 登录,但它与 API Key 登录不是同一条认证路径。使用 API Key 的调用按 API 账户标准 API 费率计费,不直接消耗 ChatGPT 计划额度;部分工作区或云服务能力也可能不同。

为什么设置了 OPENAI_API_KEY,运行 codex 仍然没有生效?

设置变量只是准备输入,不等于完成登录。先执行 printenv OPENAI_API_KEY | codex login --with-api-key 或 PowerShell 对应命令,再用 codex login status 检查。如果运行的是自动化任务,还要确认是否按需注入了 CODEX_API_KEY。

Windows 环境变量设置后为什么新终端读不到?

当前会话变量只对当前 PowerShell 窗口有效;用户级变量写入后,需要关闭并重新打开终端,再用 $env:OPENAI_API_KEY 检查。若仍为空,确认写入范围是 User,而不是误写到其他账户。

怎么判断 Codex API Key 配置成功?

完成双重验证:先运行 codex login status确认认证方式,再运行一次最小的 codex exec 请求并检查是否返回结果。只有 CLI 启动或登录命令结束,不能单独证明模型调用成功。

常见问题

Codex API Key 应该放在哪个变量里?

本地交互式登录使用 OPENAI_API_KEY 通过 stdin 执行 codex login --with-api-key;CI/CD 和 codex exec 等非交互式任务使用单次注入的 CODEX_API_KEY。

ChatGPT 订阅能替代 API Key 吗?

可以选择 ChatGPT 登录,但它与 API Key 登录不同。API Key 调用按 API 账户标准 API 费率计费,不直接消耗 ChatGPT 计划额度。

为什么设置 OPENAI_API_KEY 后 Codex 仍未生效?

设置变量后还要执行 codex login --with-api-key,并用 codex login status 检查认证方式;自动化任务还要确认是否注入 CODEX_API_KEY。

Windows 设置环境变量后新终端读不到怎么办?

当前会话变量只对当前窗口有效;用户级变量写入后要重新打开终端,再用 $env:OPENAI_API_KEY 检查。

如何判断配置真的成功?

先运行 codex login status,再执行一次最小 codex exec 请求并确认返回结果。

相关阅读

参考资料

  1. Authentication | ChatGPT Learn(learn.chatgpt.com)
  2. Environment variables | ChatGPT Learn(learn.chatgpt.com)
  3. Non-interactive mode | ChatGPT Learn(learn.chatgpt.com)
  4. Codex CLI | ChatGPT Learn(learn.chatgpt.com)
  5. Using Codex with your ChatGPT plan | OpenAI Help Center