Codex CLI 配置 OpenAI API Key:安装、登录、验证与排错
简答:配置 Codex CLI 的 OpenAI API Key,核心是先安装并确认 <code>codex</code> 可用,再把环境变量中的密钥通过标准输入交给 <code>codex login --with-api-key</code>,最后用 <code>codex login status</code> 验证。API Key 登录按 OpenAI API 标准计费,不等同于 ChatGPT 订阅额度;如果只是本地交互使用,也可以直接运行 <code>codex login</code> 走 ChatGPT 登录。
定义:Codex CLI 的 API Key 配置,是把 OpenAI Platform 的密钥安全地交给 Codex CLI 保存并用于本地编程代理调用,而不是把密钥直接写进项目代码。
先看速查卡:安装、登录、验证三步完成
以下流程针对 OpenAI 官方 API Key。命令中的变量名和路径可以直接参考,但不要把示例中的占位内容当成真实密钥使用。OpenAI 官方文档明确支持通过标准输入执行 codex login --with-api-key,并可用 codex login status 查看当前认证方式。官方认证文档 developers.openai.com
| 步骤 | macOS/Linux | Windows PowerShell | 成功判定 |
|---|---|---|---|
| 安装 | npm install -g @openai/codex | npm install -g @openai/codex | codex --version 能输出版本 |
| 登录 | printenv OPENAI_API_KEY | codex login --with-api-key | $env:OPENAI_API_KEY | codex login --with-api-key | 命令正常退出,没有认证错误 |
| 验证 | codex login status | 显示当前认证方式并以成功状态退出 |
如果你还没有安装 Codex CLI,也可以先运行 codex,再选择 ChatGPT 登录;但本文重点是 API Key 登录路径。
第一步:安装 Codex CLI 并检查版本
官方仓库列出了 npm 和 Homebrew 等安装方式。npm 安装适用于已经配置 Node.js 的环境:Codex CLI 官方仓库 github.com
macOS、Linux 或 Windows PowerShell 中执行:
npm install -g @openai/codex安装完成后检查命令是否进入 PATH:
codex --version如果提示找不到命令,先确认 npm 的全局 bin 目录已加入 PATH,再重新打开终端执行检查。
macOS 用户也可以按官方仓库说明使用 Homebrew:brew install --cask codex。官方仓库同时提供安装脚本,但通过远程脚本管道执行前,应先打开官方页面核对域名、查看脚本来源,并优先选择你能审查的安装方式。
第二步:按系统注入 API Key 并完成登录
先在 OpenAI Platform 创建 API Key,并将其保存到密码管理器或 CI/CD Secret 中。不要把真实密钥写入 Git 仓库、截图、公开日志、客户端代码或命令历史。OpenAI API 文档要求使用 Bearer 凭证,并建议从环境变量或密钥管理服务读取,不要暴露在浏览器或客户端代码中。OpenAI API 认证说明 developers.openai.com
macOS/Linux:当前终端会话配置
如果密钥已经由密码管理器或 Secret 注入环境变量,可以执行:
printenv OPENAI_API_KEY | codex login --with-api-key
如果当前会话还没有环境变量,可先临时设置,再登录:
export OPENAI_API_KEY="替换为你的真实APIKey"printenv OPENAI_API_KEY | codex login --with-api-keyunset OPENAI_API_KEY
不要在共享终端中直接把真实密钥写进命令行。对于脚本和 CI,建议使用平台的 Secret 变量,并通过标准输入传给 Codex。
Windows PowerShell:当前会话配置
PowerShell 可以这样设置当前会话变量:
$env:OPENAI_API_KEY = "替换为你的真实APIKey"$env:OPENAI_API_KEY | codex login --with-api-keyRemove-Item Env:OPENAI_API_KEY
如果密钥来自 CI/CD Secret,直接让运行器注入 OPENAI_API_KEY,不要把密钥写进脚本文件。
CMD:不建议把真实密钥直接写进命令
CMD 可以使用环境变量后再通过管道登录,但命令历史、构建日志和回显行为更容易造成泄露。若必须使用 CMD,应由 CI/CD 平台注入变量,并检查日志是否会打印变量值;完成后及时清理会话变量。
第三步:检查认证状态、切换账号与清理凭据
登录后执行:
codex login status
官方命令参考说明,该命令会打印当前认证方式;存在凭据时以成功状态退出,因此也适合放进自动化检查。Codex CLI 命令参考 developers.openai.com
如果状态仍显示旧账号或旧的认证方式,先清除已保存凭据:
codex logout
然后重新执行 API Key 登录。官方认证文档说明,Codex CLI 会缓存登录信息,保存位置可能是 ~/.codex/auth.json 或操作系统凭据存储;因此排查时不要只检查环境变量,还要确认本地是否存在旧登录状态。认证缓存与退出登录说明 developers.openai.com
ChatGPT 登录和 API Key 登录有什么区别
| 对比项 | ChatGPT 登录 | API Key 登录 |
|---|---|---|
| 登录方式 | codex login 后完成浏览器流程 | 通过标准输入执行 codex login --with-api-key |
| 计费来源 | 遵循对应 ChatGPT 工作区或计划规则 | 按 OpenAI API 标准费率计入 API Platform 账户 |
| 自动化使用 | 更适合交互式本地使用 | 官方明确建议用于程序化 Codex CLI 工作流,例如 CI/CD |
| 功能范围 | 可使用依赖 ChatGPT 工作区的能力 | 部分依赖 ChatGPT 工作区或云服务的功能可能受限或不可用 |
| 清理方式 | codex logout 清除已保存凭据 |
因此,个人本地交互使用可以根据账号体系选择 ChatGPT 登录;需要在脚本、私有 CI Runner 或自动化任务中运行时,API Key 通常更容易纳入 Secret 管理。不要把 API Key 登录理解为共享 ChatGPT 订阅额度,两者的计费和权限边界不同。
最小验证与错误分流
完成登录后,先用下面的顺序判断问题位于哪一层:
- 命令层:执行
codex --version。若失败,先处理安装或 PATH 问题。 - 认证层:执行
codex login status。若没有有效凭据,重新运行登录命令。 - 账户层:如果认证状态正常但请求被拒绝,检查 API Key 是否被撤销、项目权限是否正确,以及 API 账户是否具备可用额度。
- 模型层:如果提示模型不存在或不可用,不要直接照抄其他教程中的模型名,应以当前账户可用模型和 Codex 当前文档为准。
- 网络层:如果出现超时、连接失败或流式中断,先确认代理、DNS、防火墙和企业网络策略,再判断是否为服务端返回错误。
| 现象 | 优先检查 | 不要先做的事 |
|---|---|---|
| command not found | 安装是否完成、npm 全局目录是否在 PATH | 不要重复创建 API Key |
| 登录命令失败 | 环境变量是否为空、管道是否输出了密钥、Codex 版本是否过旧 | 不要把密钥直接贴到公开日志 |
| 401 或认证失败 | 密钥是否正确、是否已撤销、是否登录到了预期账户 | 不要无限重试 |
| 403 或权限不足 | 项目、组织、工作区和模型权限 | 不要把 403 当成网络问题 |
| 404 或模型不存在 | 模型名称、接口兼容范围和当前账户可用模型 | 不要认为所有模型都能用于 Codex |
| 429 或额度限制 | 账户额度、速率限制和服务端返回的重试信息 | 不要在余额不足时自动重试 |
第三方 OpenAI-compatible 网关的配置边界
如果你准备把 Codex CLI 指向兼容 OpenAI API 的网关,必须把它和官方 OpenAI API 分开判断。本文核验到的官方 Codex API Key 登录命令,只能证明 Codex 支持通过 API Key 完成本地认证;不能据此证明任意网关都兼容 Codex 所需的请求路径、Responses API、流式传输、工具调用、模型名称或权限行为。
在尝试兼容网关前,先向提供方确认以下四项:是否支持 Codex 当前版本需要的 API 表面、是否提供明确的 Base URL、是否支持目标模型名称、是否说明 API Key 应通过哪种认证头传递。若对方只给出通用 SDK 示例,而没有 Codex CLI 的适配说明,应将结果视为未核实。
不要把 OpenAI CLI 的 OPENAI_BASE_URL 配置经验直接套到 Codex CLI。OpenAI 官方 CLI 文档明确介绍了自身可通过 OPENAI_BASE_URL 指向其他兼容端点,但这不等于 Codex CLI 一定读取同名变量或支持相同配置方式。OpenAI CLI 官方文档 developers.openai.com
如果必须测试兼容网关,先使用非生产密钥和最小权限,记录实际 Codex 版本、Base URL、模型名和返回状态码;确认最小调用成功后,再考虑项目使用。不要在没有官方或提供方文档证明时写入固定的 config.toml 字段。
密钥安全清单:配置成功后还要做什么
- 使用项目级、用途明确的 API Key,避免多个项目共用长期密钥。
- 优先使用密码管理器、操作系统凭据存储或 CI/CD Secret,不要把密钥写入仓库。
- 检查 Shell 历史、CI 日志、调试日志和错误截图,确认没有输出完整密钥。
- 如果怀疑泄露,立即撤销旧 Key 并创建新 Key,再检查相关项目和用量记录。
- 不要在浏览器前端、公开桌面应用配置或不受信任的自动化环境中暴露可执行 Codex 的凭据。
- 只对临时测试使用临时密钥,测试结束后删除或撤销。
OpenAI API 官方文档强调 API Key 属于秘密凭证,应从环境变量或密钥管理服务读取;Codex 官方认证文档也提醒,不要在不受信任或公开环境中暴露 Codex 执行能力。
常见问题
Codex CLI 可以直接读取 OPENAI_API_KEY 吗?
官方 Codex CLI 的 API Key 登录流程是通过标准输入执行 <code>printenv OPENAI_API_KEY | codex login --with-api-key</code>。不要仅凭其他 OpenAI 工具读取环境变量的方式推断 Codex CLI 会自动采用相同逻辑。
Codex CLI 的 API Key 登录会消耗 ChatGPT 订阅额度吗?
不会按 ChatGPT 订阅内的额度处理。官方文档说明,API Key 登录按 OpenAI API 标准费率计入 OpenAI Platform 账户;ChatGPT 登录和 API Key 登录的计费边界不同。
为什么已经设置 OPENAI_API_KEY,Codex 仍然显示旧账号?
Codex 可能正在使用已经保存的登录凭据。先执行 <code>codex login status</code> 确认认证方式,再运行 <code>codex logout</code> 清除已保存凭据,最后重新执行 API Key 登录。
API Key 登录适合放进 CI/CD 吗?
官方认证文档明确将 API Key 认证用于程序化 Codex CLI 工作流,例如 CI/CD。实际部署时应使用 CI/CD Secret 或密钥管理服务,并避免在日志中打印环境变量和 Codex 调试输出。
Codex CLI 能否直接连接任意 OpenAI-compatible 网关?
不能仅凭兼容 OpenAI API 这一描述确认。需要逐项核实 Codex 当前版本所需的请求接口、Base URL、模型映射、流式传输、工具调用和认证方式;没有明确文档支持的配置应视为未核实。