首页 › LLM大语言模型 › Codex专栏 › 吴恩达Codex教程 › 第四章:Codex CLI配置指南

第四章:Codex CLI配置指南

一、必看:配置底层核心规则​

Codex CLI的所有配置,均基于2个核心文件和一套官方优先级规则实现,全场景通用,先看懂规则再动手,避免后续配置混乱、不生效。​

​

飞书文档 - 图片

​

​

​

1.1 2个核心配置文件(唯一核心,全场景通用)​

所有配置仅围绕这两个文件展开,无其他额外依赖,格式错误、变量名不匹配是配置不生效的第一高频原因。​

​

飞书文档 - 图片

​

​

📌 新手必记核心规则(90%的401报错都源于此):​

auth.json内的密钥变量名,必须和config.toml中env_key的取值完全一致(大小写、下划线、拼写一个字都不能差),否则工具无法读取到密钥。​

大白话解释:你给API Key起一个「变量名」,auth.json里用这个名字存密钥,config.toml里告诉Codex「去这个名字里找密钥」,两个名字必须一模一样。​

​

1.2 配置范围:全局vs项目级(二选一,先做这个选择)​

两套配置体系仅文件存放路径不同,配置格式、语法100%通用,你必须先在这里二选一,确定你的配置要作用的范围。​

​

飞书文档 - 图片

​

1.3 官方配置优先级黄金法则​

当多种配置方式并存时,Codex CLI按以下优先级从高到低读取配置,高优先级会无条件覆盖低优先级的配置:​

​

命令行临时参数(-c key=value)​

Profile配置档案(--profile xxx启动指定)​

项目级配置(./.codex/目录内文件)​

全局配置(~/.codex/目录内文件)​

系统环境变量​

软件内置默认值​

​

简单理解:越靠近执行目录的配置,优先级越高;同一条配置,项目里写了就用项目的,项目没写才用全局的。​

​

1.4 配置安全红线(创建文件前必看)​

绝对禁止将auth.json、包含API Key的配置文件提交到Git、SVN等代码仓库;​

所有项目级配置,必须在项目根目录的.gitignore中添加以下规则:​

Codex 敏感配置禁止提交​

​

代码块​

Plain Text

.codex/auth.json​

.codex/*.key​

.env​

​

定期轮换API Key,最小化泄露风险;​

生产环境优先使用环境变量注入密钥,避免明文写入配置文件。​

​

​

二、第一步:创建你的配置目录(二选一)​

根据上一章节的选择,完成对应配置目录的创建,全局配置和项目级配置二选一即可,无需重复创建。​

2.1 选择A:全局长效配置(一次配置,本机通用)​

适用场景​

•

个人单用户使用,所有项目共用同一套配置;​

•

无多项目隔离需求,希望一次配置后,所有终端调用都能直接使用。​

分步创建流程​

打开终端,执行对应系统的命令,创建全局配置目录(目录已存在可直接跳过):​

​

代码块​

Plain Text

macOS/Linux 执行​

mkdir -p ~/.codex​

Windows PowerShell 执行​

mkdir $env:USERPROFILE\.codex -Force​

​

进入刚创建的.codex目录,后续的auth.json和config.toml都将放在这个目录中。​

2.2 选择B:项目级独立配置(多项目隔离,互不干扰)​

适用场景​

•

多项目开发,不同项目需要使用不同的API密钥、模型、接口地址;​

•

工作项目与个人项目隔离,避免配置互相影响;​

•

团队项目统一配置,确保所有成员使用一致的规则。​

分步创建流程​

进入你的目标项目根目录:​

​

代码块​

Plain Text

切换到你的项目根目录​

cd /path/to/your/project​

​

创建项目级配置目录:​

​

代码块​

Plain Text

项目根目录下创建.codex文件夹​

​

配置.gitignore安全规则,在项目根目录的.gitignore文件中添加以下内容,从根源避免密钥泄露:​

​

代码块​

Plain Text

Codex 敏感配置禁止提交​

.codex/auth.json​

.codex/*.key​

.env​

​

后续的auth.json和config.toml都将放在项目根目录的.codex文件夹中。​

​

​

三、第二步:选择你的配置场景(三选一,开箱即用模板)​

​

重要说明:​

​

​

以下所有配置模板,全局配置和项目级配置100%通用,仅需将文件放入上一步创建的.codex目录中即可;​

以下3个场景完全平等,三选一即可,无强制要求必须使用OpenAI官方服务,国内用户优先选场景2/3。​

​

3.1 场景1:OpenAI官方服务配置(直连官方,海外用户首选)​

适用条件​

•

拥有ChatGPT Plus/Pro/Enterprise订阅账号,或OpenAI官方API Key;​

•

网络环境可正常直连OpenAI官方服务。​

配置方式二选一​

方式A:ChatGPT账号OAuth一键登录(订阅用户首选)​

无需手动创建配置文件,全程可视化操作,执行一条命令即可完成配置:​

​

代码块​

Plain Text

启动官方OAuth登录流程​

codex login​

​

执行后终端会弹出授权链接,复制到浏览器打开,登录你的ChatGPT订阅账号完成授权,系统会自动在你的配置目录生成auth.json和基础配置文件,无需手动编写。​

​

方式B:API Key稳定配置(开发者首选)​

手动创建两个核心配置文件,可控性强、稳定性高:​

​

在.codex目录中新建auth.json文件,写入以下内容:​

{​

"auth_mode": "apikey",​

"OPENAI_API_KEY": "sk-你的OpenAI官方API密钥"​

}​

运行项目并下载源码​

json​

1​

2​

3​

4​

同目录下新建config.toml文件,写入以下完整模板:​

===== 基础必填配置 =====​

model_provider = "openai"​

model = "gpt-5.3-codex"​

model_reasoning_effort = "high"​

model_verbosity = "medium"​

personality = "pragmatic"​

web_search = "cached"​

​

===== 安全基础配置(必配) =====​

approval_policy = "on-request"​

sandbox_mode = "workspace-write"​

​

===== OpenAI官方配置块 =====​

[model_providers.openai]​

name = "OpenAI"​

base_url = "https://api.openai.com/v1"​

wire_api = "responses"​

env_key = "OPENAI_API_KEY"​

运行项目并下载源码​

toml​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

11​

12​

13​

14​

15​

16​

17​

18​

连通性验证命令​

codex "用一句话介绍一下你自己"​

运行项目并下载源码​

bash​

1​

✅ 成功标志:终端正常返回AI回复,无401、连接超时报错。​

​

3.2 场景2:第三方API中转服务配置(国内用户首选,无需代理)​

适用条件​

无法直连OpenAI官方服务,使用OneAPI/NewAPI等兼容OpenAI格式的中转服务;​

已获取中转服务的API地址与API Key。​

特别注意:​

此处的配置只做参考,中转站有自己的配置方式,就按他们的方式!!!!​

​

完整配置模板​

在.codex目录中新建auth.json文件,写入以下内容:​

{​

"auth_mode": "apikey",​

"TRANSIT_API_KEY": "你的中转服务API密钥"​

}​

运行项目并下载源码​

json​

1​

2​

3​

4​

同目录下新建config.toml文件,写入以下完整模板:​

===== 基础必填配置 =====​

model_provider = "transit"​

model = "中转服务支持的模型名称,如gpt-4o"​

model_reasoning_effort = "medium"​

personality = "pragmatic"​

web_search = "disabled"​

​

===== 安全基础配置(必配) =====​

approval_policy = "on-request"​

sandbox_mode = "workspace-write"​

​

===== 中转服务配置块 =====​

[model_providers.transit]​

name = "第三方中转服务"​

base_url = "你的中转服务接口地址,如https://xxx.xxx/v1"​

wire_api = "chat"​

env_key = "TRANSIT_API_KEY"​

可选:请求重试配置,网络不稳定可适当调大​

request_max_retries = 4​

stream_max_retries = 5​

stream_idle_timeout_ms = 300000​

运行项目并下载源码​

toml​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

11​

12​

13​

14​

15​

16​

17​

18​

19​

20​

21​

连通性验证命令​

codex "输出1+1的结果"​

运行项目并下载源码​

bash​

1​

✅ 成功标志:终端正常返回计算结果,无认证、连接报错。​

​

3.3 场景3:国内云服务商配置(国内网络直连,合规稳定)​

适用条件​

无外网访问环境,仅能使用国内网络;​

希望使用国内合规大模型服务,无需备案、无需代理。​

特别注意:​

此处的配置只做参考,国内主流服务商有自己的配置方式,就按他们的方式!!!!​

​

国内主流服务商核心信息速查表​

服务商 核心配置标识 推荐编程模型 官方接口地址​

阿里云百炼 dashscope qwen-coder-plus https://dashscope.aliyuncs.com/compatible-mode/v1​

腾讯云混元 hunyuan hunyuan-coder https://api.hunyuan.tencent.com/v1​

DeepSeek deepseek deepseek-coder-v2 https://api.deepseek.com​

智谱AI zhipu glm-4-coder https://open.bigmodel.cn/api/paas/v4​

火山引擎方舟 volcengine 你的Endpoint ID https://ark.cn-beijing.volces.com/api/v3​

通用配置模板(替换对应标识即可,附完整示例)​

auth.json 通用模板(所有国内服务商通用!)​

{​

"auth_mode": "apikey",​

"DOMESTIC_API_KEY": "你的对应服务商API密钥"​

}​

运行项目并下载源码​

json​

1​

2​

3​

4​

config.toml 通用模板(以阿里云百炼为例,其他服务商仅需替换速查表对应内容)​

===== 基础必填配置 =====​

model_provider = "dashscope"​

model = "qwen-coder-plus"​

model_reasoning_effort = "medium"​

personality = "pragmatic"​

web_search = "disabled"​

​

===== 安全基础配置(必配) =====​

approval_policy = "on-request"​

sandbox_mode = "workspace-write"​

​

===== 服务商配置块 =====​

[model_providers.dashscope]​

name = "阿里云百炼"​

base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"​

wire_api = "chat"​

env_key = "DOMESTIC_API_KEY"​

运行项目并下载源码​

toml​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

11​

12​

13​

14​

15​

16​

17​

完整示例:腾讯云混元可直接复制的最终配置​

auth.json​

{​

"auth_mode": "apikey",​

"DOMESTIC_API_KEY": "sk-xxxxxx你的腾讯云混元API密钥"​

}​

运行项目并下载源码​

json​

1​

2​

3​

4​

config.toml​

===== 基础必填配置 =====​

model_provider = "hunyuan"​

model = "hunyuan-coder"​

model_reasoning_effort = "medium"​

personality = "pragmatic"​

web_search = "disabled"​

​

===== 安全基础配置(必配) =====​

approval_policy = "on-request"​

sandbox_mode = "workspace-write"​

​

===== 腾讯云混元配置块 =====​

[model_providers.hunyuan]​

name = "腾讯云混元"​

base_url = "https://api.hunyuan.tencent.com/v1"​

wire_api = "chat"​

env_key = "DOMESTIC_API_KEY"​

运行项目并下载源码​

toml​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

11​

12​

13​

14​

15​

16​

17​

连通性验证命令​

codex "写一个最简单的Hello World程序"​

运行项目并下载源码​

bash​

1​

✅ 成功标志:终端正常返回代码内容,无报错。​

​

四、备查手册:核心配置参数全详解​

说明:本章节为所有配置参数的官方完整解释,新手可先跳过,按需查阅;所有参数的默认值均为官方推荐值,无需修改即可正常运行。​

​

4.1 全局基础配置参数​

参数名 类型 必填 默认值 官方详细说明​

model_provider string 是 openai 模型提供商标识,必须和下方[model_providers.xxx]中的xxx完全一致​

model string 是 系统默认 使用的模型名称,需与服务商支持的模型完全匹配​

model_reasoning_effort string 否 medium 模型推理强度,可选值:minimal/low/medium/high/xhigh,强度越高推理效果越好,耗时和token消耗也越高​

model_verbosity string 否 medium 输出详细程度,可选值:low/medium/high,仅Responses API生效​

personality string 否 pragmatic AI回复风格,可选值:none/friendly/pragmatic​

web_search string 否 cached 网络搜索模式,可选值:disabled/cached/live,中转/国内云服务通常不支持,建议设为disabled​

4.2 模型服务商配置参数([model_providers.xxx]块)​

参数名 类型 必填 默认值 官方详细说明​

name string 否 - 提供商显示名称,仅用于界面展示,无实际功能影响​

base_url string 是 - API接口请求地址,通常以/v1结尾,结尾不能有多余斜杠​

wire_api string 否 chat API协议类型,可选值:chat/responses,选择指南见4.4节​

env_key string 是 - 存储API Key的环境变量名,必须和auth.json中的键名完全一致​

request_max_retries number 否 4 HTTP请求失败后的最大重试次数​

stream_max_retries number 否 5 SSE流中断后的最大重试次数​

stream_idle_timeout_ms number 否 300000 流空闲超时时间,单位毫秒,默认5分钟​

http_headers object 否 - 额外的静态HTTP请求头,格式为{ "Header-Name" = "value" }​

4.3 安全权限配置参数​

4.3.1 审批模式 approval_policy​

控制Codex执行命令、修改文件前的审批行为,官方默认值on-request,可选值如下:​

​

可选值 官方详细说明 适用场景​

untrusted 最严格模式,仅已知安全的只读命令自动执行,其他所有操作均需人工审批 不受信任的第三方项目、开源代码审查​

on-failure 命令在沙箱中自动执行,仅在执行失败时请求人工审批 本地个人项目、简单自动化任务​

on-request 官方默认值,由模型判断是否需要审批,平衡安全与效率 日常开发、个人常用项目​

never 全自动模式,所有操作无需审批直接执行,有安全风险 完全信任的本地项目、隔离的Docker环境​

4.3.2 沙箱模式 sandbox_mode​

控制Codex对本地文件系统的访问权限,官方默认值read-only,可选值如下:​

​

可选值 官方详细说明 适用场景​

read-only 官方默认值,仅允许读取本地文件,禁止任何修改、删除、创建操作 代码审查、项目分析、开源代码学习​

workspace-write 仅允许写入当前工作目录(项目根目录),无法修改系统其他文件 日常开发、代码重构、项目文件修改​

danger-full-access 完全系统访问权限,可修改/删除系统任意文件,极度危险 仅隔离的Docker/虚拟机环境使用,严禁本地生产环境使用​

4.4 关键参数 wire_api 官方选择指南​

可选值 适用场景 官方详细说明​

chat 第三方中转服务、国内云服务商、所有兼容OpenAI Chat Completions格式的服务 通用兼容格式,绝大多数第三方服务仅支持此格式,填错会导致接口报错​

responses OpenAI官方服务 OpenAI专属高级协议,支持更多原生特性,仅官方服务可用,第三方服务使用会报错​

五、进阶玩法:配置高阶用法​

5.1 环境变量配置方式(服务器/自动化场景首选)​

除了配置文件方式,Codex CLI也支持通过系统环境变量读取认证信息,优先级低于项目级/全局配置文件,适合服务器、CI/CD、自动化脚本场景。​

​

macOS/Linux 永久配置(写入~/.bashrc或~/.zshrc)​

export OPENAI_API_KEY="你的API Key"​

export OPENAI_BASE_URL="你的接口地址"​

​

重载配置生效​

source ~/.zshrc​

​

Windows PowerShell 永久配置​

[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "你的API Key", "User")​

[Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", "你的接口地址", "User")​

运行项目并下载源码​

bash​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

5.2 多Profile配置档案(多环境一键切换)​

如果你需要在工作、个人、测试等多个环境间快速切换,可使用Profile功能为不同环境创建独立的配置档案,无需手动修改配置文件。​

​

在全局config.toml中添加Profile配置​

默认配置​

model = "gpt-5.3-codex"​

​

工作环境配置档案​

[profiles.work]​

model = "gpt-5.3-codex"​

model_reasoning_effort = "high"​

sandbox_mode = "workspace-write"​

approval_policy = "on-request"​

​

个人环境配置档案​

[profiles.personal]​

model = "deepseek-coder-v2"​

model_reasoning_effort = "medium"​

sandbox_mode = "read-only"​

approval_policy = "never"​

运行项目并下载源码​

toml​

​

1​

2​

3​

4​

5​

6​

7​

8​

9​

10​

11​

12​

13​

14​

15​

16​

Profile快速切换命令​

切换到工作环境配置​

codex config profile use work​

​

查看所有已创建的配置档案​

codex config profile list​

​

启动时直接指定配置档案​

codex --profile work​

运行项目并下载源码​

bash​

1​

2​

3​

4​

5​

6​

7​

8​

5.3 自定义指令配置​

Codex CLI支持通过自定义指令文件,全局约束AI的行为规范、代码风格、输出格式等。​

​

全局用户级指令:在全局配置目录创建instructions.md,对本机所有调用生效;​

项目级指令:在项目根目录创建AGENTS.md,仅对当前项目生效。​

六、排错指南:配置高频问题全解​

6.1 认证类报错(401 Unauthorized/登录失效)​

报错现象 核心解决方案(按优先级排序)​

API Key模式401报错 1. 【最高频】检查auth.json中密钥变量名与config.toml中env_key是否完全一致,大小写、下划线不能有差异;​

检查API Key是否正确、无多余空格、未过期、账户余额充足;​

执行codex auth check检查认证状态,确认配置文件路径正确​

OAuth登录失效 1. 执行/logout后重新执行codex login授权;​

删除配置目录下的auth.json文件后重新授权;​

检查网络是否可正常访问OpenAI授权地址​

6.2 配置不生效类问题​

问题现象 核心解决方案​

配置修改后不生效 1. 执行codex config reload重载配置,或关闭重启终端;​

校验JSON/TOML格式是否合法,无语法错误、多余逗号​

项目级配置无法覆盖全局 1. 确认当前终端工作路径是项目根目录;​

确认配置文件放在项目根目录的.codex文件夹中;​

检查是否有优先级更高的Profile、环境变量覆盖配置​

提示Not a directory (os error 20) 1. .codex路径被错误创建为文件,而非目录;​

执行对应系统的删除重建命令即可修复​

6.3 网络连接类报错(含URL访问异常专项解决)​

报错现象 核心解决方案​

连接超时/无法访问接口/link dead 1. 官方服务需确认网络可正常访问OpenAI,国内用户优先使用中转/国内云服务;​

检查base_url是否正确,无多余斜杠、拼写错误、结尾缺少/v1;​

关闭终端代理、防火墙重试,或配置正确的HTTPS代理;​

确认接口地址在浏览器中可正常访问,服务商接口无宕机​

link hit security strategy(阿里云等国内接口安全拦截) 1. 确认API Key已开通对应服务的权限,无IP白名单限制;​

检查base_url是否为官方合规地址,无拼写错误;​

确认账户无欠费、服务无封禁​

网页解析失败/接口无响应 1. 【最高频】确认wire_api参数配置正确,第三方/国内服务必须用chat,不能用responses;​

检查请求头是否符合服务商要求,可通过http_headers补充必要参数;​

确认模型名称与服务商支持的完全一致,无大小写错误​

502 Stream Error/流中断 1. 网络波动导致,重试即可;​

调整stream_max_retries参数增加重试次数;​

中转服务用户检查服务商接口稳定性​

6.4 其他常见问题​

问题现象 核心解决方案​

409 Route Error (Invalid Client) 1. 清除浏览器缓存和Cookie,重新完成OAuth授权;​

确认登录账号与注册账号一致,第三方注册账号需用对应方式登录​

CLI正常但IDE插件无法工作 1. IDE插件不读取环境变量,需在全局~/.codex/auth.json中配置固定API Key;​

重启IDE重新加载配置​

​