本文字段来源:Codex 官方文档 developers.openai.com/codex/config-advanced,不询问(适合 CI)approval_policy = never 细粒度控制(按操作类型分别设置): [approval_policy.granular]file_write = on-request # 写文件:需确认shell_exec = untrusted# 执行 shell:每次确认network = never# 网络请求:自动放行 沙箱配置: # workspace-write(默认):仅允许写工作目录# danger-full-access:无限制(慎用)sandbox_mode = workspace-write[sandbox_workspace_write]# 额外允许写入的路径writable_roots = [/tmp/myproject]# 是否允许沙箱内出站网络(默认 false)network_access = false自定义 Provider(接入第三方平台) 这是最常用的配置块,并给出四个常见场景的完整配置示例:接入第三方 API 平台、切换 Amazon Bedrock、CI 静默模式、多 Profile 按场景切换, 发布日期:2026-06-22 | 话题:AI 编程工具 | 适用人群:开发者、AI 工程师 Codex 的配置文件位于 ~/.codex/config.toml(全局)或项目根目录下的 .codex/config.toml(项目级),超出时自动清理旧条目max_bytes = 10485760 # 10MB[otel]environment = dev# none / otlp-http / otlp-grpcexporter = none# 是否在 trace 中记录用户提示内容(默认 false)log_user_prompt = falseTUI 界面选项[tui]# 是否启用动画效果animations = true# 终端备用屏幕(设为 never 可保留终端滚动历史)alternate_screen = auto# 通知方式:auto / osc9 / belnotification_method = auto# unfocused:终端未聚焦时才通知;always:始终通知notification_condition = unfocused# 文件链接跳转:vscode / cursor / windsurf / nonefile_opener = cursor四个场景完整配置示例场景一:接入 CC Switch(日常开发)model = codex-mini-latestmodel_provider = ccswitchapproval_policy = on-request[model_providers.ccswitch]name = CC Switchbase_url = https://api.ccswitch.cc/v1env_key = CCSWITCH_API_KEY[tui]file_opener = cursor场景二:CI 静默模式(全自动, *TOKEN*,团队项目可以把公用配置放全局,多场景需求用 --profile 加载不同的 name.config.toml,只替换内置 openai provider 的端点,API Key 仍读取 OPENAI_API_KEY 环境变量, Q2:项目级 .codex/config.toml 和全局配置哪个优先? 项目级配置覆盖全局配置,本文基于 Codex 官方文档(developers.openai.com/codex/config-advanced)整理所有字段的含义和默认行为。
推荐优先使用,配置文件采用 TOML 格式, llm]timeout_ms = 5000refresh_interval_ms = 0 # 0 = 仅在认证失败时刷新Amazon Bedrock 配置 v0.140.0 起原生支持 Bedrock 托管认证: model = us.anthropic.claude-sonnet-4-6model_provider = amazon-bedrock[model_providers.amazon-bedrock.aws]profile = default# AWS credentials profileregion = us-east-1 或直接通过环境变量: model_provider = amazon-bedrock[model_providers.amazon-bedrock]env_key = AWS_BEARER_TOKEN_BEDROCKShell 环境策略 控制 Codex 启动子进程时继承哪些环境变量: [shell_environment_policy]# none:不继承任何变量# core:仅继承 PATH、HOME、USER 等基础变量(默认)inherit = core# 显式设置变量set = { MY_VAR = value }# 排除含敏感词的变量(支持 glob)exclude = [*SECRET*,在交互式开发中不建议使用——Codex 会不经确认直接执行写文件、运行 shell 等操作, Q5:model_reasoning_effort 支持哪些值? 取决于模型, *PASSWORD*]# 是否跳过默认的 KEY/SECRET/TOKEN 过滤ignore_default_excludes = false历史记录与可观测性[history]# none 禁用持久化历史persistence = save# 历史文件最大体积(字节),[model_providers] 是完整方案。
参考来源: 赞 收藏 分享 阅读 1.4k 更新于 6 月 22 日 举报 失落的生菜 2 声望 176 粉丝 关注作者 ,桌面版、CLI、IDE 插件三端共用同一文件。
只覆盖显式写出的字段,codex-mini-latest 支持 low / medium / high;支持 Extended Thinking 的模型(如 Claude Opus 4.8)支持 xhigh。
超出时自动截断历史model_context_window = 131072# CI/批处理场景:隐藏 Agent 推理过程输出hide_agent_reasoning = true# 调试场景:显示原始推理内容show_raw_agent_reasoning = false审批策略与沙箱 approval_policy 控制 Codex 执行工具(写文件、运行命令)时是否需要人工确认: # 所有操作都需确认(最安全)approval_policy = untrusted# 仅高风险操作需确认(推荐日常使用)approval_policy = on-request# 完全自主。
Q3:approval_policy = never 安全吗? 适合 CI 环境或完全受控的脚本场景,涵盖模型选择、自定义 Provider 接入、审批策略、沙箱权限、历史记录、TUI 外观等多个维度,修改一次全端生效,未写的字段继承全局值,覆盖全局配置 ~/.codex/name.config.toml 命名 Profile,支持接入任何兼容 OpenAI Chat Completions 格式的服务: model = codex-mini-latestmodel_provider = fenno# 对应下方 [model_providers.fenno][model_providers.fenno]name = Fennobase_url = https://api.fenno.aienv_key = FENNO_API_KEY# 从该环境变量读取 API Keyexport FENNO_API_KEY=你的 Key 保留 ID(不能用于自定义 provider): openai、ollama、lmstudio 完整字段说明: [model_providers.myprovider]name = My Providerbase_url = https://api.example.com/v1env_key = MY_API_KEY# 协议类型(默认 chat-completions,搜索 base_url 字段确认,建议参考所用模型的官方文档,2026-06,无交互)model = codex-mini-latestmodel_provider = ccswitchapproval_policy = neverhide_agent_reasoning = true[model_providers.ccswitch]name = CC Switchbase_url = https://api.ccswitch.cc/v1env_key = CCSWITCH_API_KEY[history]persistence = none[analytics]enabled = false场景三:本地 Ollama(离线开发)model = qwen2.5-coder:32bmodel_provider = ollamaapproval_policy = on-request[tui]file_opener = vscode场景四:多 Profile 切换 创建 ~/.codex/deep.config.toml: # 深度推理场景(用 Opus + 高推理强度)model = claude-opus-4-8model_provider = ccswitchmodel_reasoning_effort = xhighapproval_policy = on-request[model_providers.ccswitch]name = CC Switchbase_url = https://api.ccswitch.cc/v1env_key = CCSWITCH_API_KEYcodex# 使用默认 config.tomlcodex --profile deep# 加载 deep.config.toml常见问题 FAQ Q1:openai_base_url 和 [model_providers] 有什么区别? openai_base_url 是快捷方式, Q4:怎么知道当前用的是哪个 provider? CLI 启动后执行 /status 可查看当前模型和 base_url;或查看 ~/Library/Logs/com.openai.codex/ 下当天日志。
无需改动主配置,填入模型不支持的值会静默降级或报错。
所有项目生效 项目根/.codex/config.toml 项目级,日常开发推荐 on-request, 基础配置字段# 使用的模型 IDmodel = codex-mini-latest# 指定 provider(对应下方 [model_providers.id] 块的 id)model_provider = openai# 快捷方式:直接替换内置 openai provider 的 base_url# 与 model_provider + [model_providers] 二选一,。
支持自定义 Key 名称、请求头、重试策略、多 provider 并存,不要同时用openai_base_url = https://api.example.com/v1# --oss 模式下默认使用的本地 provider(如 ollama)oss_provider = ollama模型行为字段# 推理强度:影响思考时间和 token 消耗# 可选值:low / medium / high / xhigh(具体可选值取决于模型)model_reasoning_effort = medium# 推理摘要模式model_reasoning_summary = none# 响应详细程度(仅 Responses API 有效)model_verbosity = low# 上下文窗口大小(字节数),项目特殊约束放 .codex/config.toml 并提交到代码库, 小结 Codex config.toml 的核心配置分三层: 模型层 (model + model_provider + [model_providers])决定用哪个服务; 权限层 (approval_policy + sandbox_mode)决定 Agent 的自主程度; 行为层 (model_reasoning_effort、[history]、[tui])调整使用体验,无法更换 Key 名称, 配置文件位置路径作用域 ~/.codex/config.toml 全局默认,Responses API 填 responses)wire_api = chat-completions# 附加查询参数(如 Azure 的 api-version)query_params = { api-version = 2025-04-01-preview }# 静态请求头http_headers = { X-Custom-Header = value }# 从环境变量读取的请求头env_http_headers = { Authorization = MY_AUTH_HEADER_ENV }# 重试与超时request_max_retries = 3stream_max_retries = 3stream_idle_timeout_ms = 30000 命令认证(适合 SSO/token 动态刷新): [model_providers.myprovider.auth]command = my-auth-helperargs = [--scope,高风险操作前会暂停请求确认,三端共用同一配置文件,通过 --profile name 加载 修改配置后需重启 Codex 桌面版才能生效;CLI 每次启动时重新读取。
