首页 › tips-tricks › Codex CLI的8个隐藏开关,多数人从未打开

Codex CLI的8个隐藏开关,多数人从未打开

国内开发者聊AI编程工具,基本被 Claude Code 和 Cursor 刷屏了,而 OpenAI 的 Codex CLI(GitHub: openai/codex,Apache-2.0 开源,Rust 编写)经常被一句"不如Claude Code"带过。但我最近把它的官方配置参考(developers.openai.com/codex/config-reference)从头到尾翻了一遍,发现了一个巨大的信息差:这个工具80%的杀手级能力都藏在 ~/.codex/config.toml 里,默认还是关着的。多Agent并行、长期记忆、生命周期钩子、域名级网络白名单、自定义模型后端……全都是开关型配置。今天把8个最值钱的开关一次性挖出来,每一条都给到具体的配置代码,照抄即可。

先给安装命令(Mac/Linux):

curl -fsSL https://chatgpt.com/codex/install.sh | sh
# 或 npm install -g @openai/codex,或 brew install --cask codex

登录时选 Sign in with ChatGPT,Plus/Pro/Business/Enterprise 订阅都包含 Codex 用量,不必走 API key 计费——这本身就是第一个性价比技巧。


技巧1:多Agent并行——默认已开启,但99%的人不知道

这是我认为 Codex CLI 最被低估的能力。配置项 features.multi_agent 标注为 stable、默认开启,启用后 Codex 会获得5个子Agent协作工具:spawn_agent(派生)、send_input(传话)、resume_agent(恢复)、wait_agent(等待)、close_agent(关闭)。

关键是这几个配套参数,官方参考里写得明明白白:

[agents]
max_threads = 6        # 并发Agent线程上限,默认6
max_depth = 1          # 嵌套深度,默认1(root会话为深度0)
job_max_runtime_seconds = 1800  # CSV批量任务单worker超时,默认30分钟

还有一个更少人知道的:spawn_agents_on_csv 工具,可以按 CSV 里的每一行批量派生 worker 并行处理——比如你有100个文件要重构、100个接口要补测试,直接让主Agent按行分发给子Agent军团。把 max_threads 调到你机器能承受的值(比如12),重构速度近似翻倍。max_depth 调大还允许子Agent继续派生孙Agent。

技巧2:Profiles——一套配置,四种人格

很多人不知道 Codex 支持独立 Profile 文件:放在 ~/.codex/ 下,命名为 profile名.config.toml,启动时 codex --profile 名字 一键切换。

举一个我实际在用的组合:

# ~/.codex/fast.config.toml —— 日常小改动
model = "gpt-5.5"
model_reasoning_effort = "low"   # minimal/low/medium/high/xhigh 五档

# ~/.codex/deep.config.toml —— 架构级重构
model = "gpt-5.5"
model_reasoning_effort = "xhigh"
service_tier = "flex"            # 慢速低成本处理档

model_reasoning_effort 支持 minimal 到 xhigh 五档,service_tier 支持 flex(牺牲速度换成本)和 fast(付费优先档)。平时用 low + 默认档省额度,硬仗切 xhigh——这一套切换逻辑,多数Codex用户完全没碰过。

技巧3:自定义模型后端——本地Ollama、Bedrock都能接

model_providers 是整个配置文件里自由度最高的部分:你可以定义自定义 Provider,指定 base_url、env_key(从环境变量读API key)、甚至 auth.command(用任意命令的输出来当Bearer token,适合接公司内部网关)。内置保留ID只有 openai、ollama、lmstudio 三个,另外官方内置了 amazon-bedrock Provider(可配 aws.profile 和 aws.region)。

更省事的路径是本地模型:codex --oss 直接以 --oss 模式启动,配合 oss_provider = "ollama"(或 lmstudio)就能跑本地开源模型,零API成本。注意一个硬约束:自定义 Provider 的 wire_api 目前只支持 responses 协议,也就是说第三方后端必须实现 OpenAI Responses API 格式,不是随便一个 chat/completions 兼容接口就能接——这是很多人配了半天不成功的根因。

技巧4:Memories长期记忆——默认关闭,手动打开

features.memories 官方标注 off by default。打开后,Codex 会从你过去的会话中提取记忆并在未来会话注入。它有一整套微调参数,最实用的是:

[features]
memories = true

[memories]
max_rollout_age_days = 30      # 只考虑最近30天的会话,0-90可调
min_rollout_idle_hours = 6     # 会话闲置6小时后才纳入记忆生成
disable_on_external_context = true  # 用了MCP/web搜索的会话不进记忆(防污染)

disable_on_external_context = true 是精髓:调试类、查资料的会话不会污染你的长期记忆。还有 min_rate_limit_remaining_percent(默认25),确保生成记忆不会吃掉你宝贵的订阅额度。

技巧5:Hooks生命周期钩子——10个事件点,自动化利器

和 Claude Code 的 hooks 类似,Codex 支持 hooks.json 或 config.toml 内联 [hooks],支持的事件包括:PreToolUse、PostToolUse、PermissionRequest、PreCompact、PostCompact、SessionStart、SubagentStart、SubagentStop、UserPromptSubmit、Stop——整整10个生命周期节点。

典型玩法:在 PostToolUse 上挂一个自动 format 脚本,Codex 每次改完文件立即执行 gofmt/prettier;在 SessionStart 上挂环境检查。配合 features.hooks = true 打开。国内教程几乎没人写这块,但它是把 Codex 从“聊天工具”变成“流水线工人”的关键。

技巧6:Permissions命名权限档——glob级禁读.env

新版权限系统用 default_permissions 指定权限档,内置三档::read-only、:workspace、:danger-full-access。但真正的杀招是自定义命名权限档:

default_permissions = "safe-dev"

[permissions.safe-dev]
extends = ":workspace"
[permissions.safe-dev.filesystem]
"**/*.env" = "deny"          # 禁止读取所有.env文件
".secrets/**" = "deny"       # 密钥目录直接拒读
[permissions.safe-dev.network]
enabled = true
domains = { "github.com" = "allow", "**.npmjs.org" = "allow", "*" = "deny" }

支持 glob 禁读(连读都禁止,不只是禁写)、域名级网络白名单(*.example.com 子域、**.example.com 含主域)、Unix socket 白名单。让Agent跑全自动任务时挂上这个档,密钥泄露风险直接归零——这是比"裸奔--yolo"成熟得多的方案。

技巧7:TUI隐藏操作——/vim、/raw、自定义快捷键、桌面通知

一组立刻能用的交互技巧:

web_search 有三档:disabled / cached / live,默认是 cached——用的是 OpenAI 维护的索引,并不实时抓取网页(只有 --yolo 等全权限模式下才默认 live)。难怪很多人觉得Codex查文档“像是旧数据”。想要真联网,显式配置:

web_search = "live"   # 实时抓取最新页面

[tools.web_search]
context_size = "high"
allowed_domains = ["developers.openai.com", "github.com"]  # 限定搜索域名

allowed_domains 把搜索范围锁在官方文档站,能显著减少AI查到垃圾SEO内容后胡编的概率。

彩蛋:一行注释,获得config.toml自动补全

在 config.toml 第一行加上:

#:schema https://developers.openai.com/codex/config-schema.json

配合 VS Code/Cursor 的 Even Better TOML 扩展,编辑配置即可获得字段自动补全和诊断报错。Codex 的配置项有上百个,这行注释能帮你持续发现新开关。

flowchart LR
    A[codex --profile 场景] --> B{任务类型?}
    B -->|日常小改| C[fast档<br/>reasoning=low]
    B -->|架构重构| D[deep档<br/>reasoning=xhigh]
    C --> E[主Agent spawn_agent]
    D --> E
    E --> F[最多6个子Agent并行<br/>max_threads]
    F --> G[PreToolUse 钩子<br/>安全检查]
    G --> H[Permissions权限档<br/>禁读*.env + 域名白名单]
    H --> I[PostToolUse 钩子<br/>自动格式化]
    I --> J[Stop 钩子<br/>notify桌面通知]
    J --> K[(Memories<br/>沉淀为长期记忆)]

信息差总结

维度 你以为的 Codex CLI 实际上的 Codex CLI
定位 单线程终端问答工具 默认支持6线程多Agent协作 + CSV批量分发
记忆 每次会话从零开始 features.memories 打开即有长期记忆(含防污染开关)
联网 查的是最新网页 默认 cached 索引模式,live 才是真联网
模型 只能用OpenAI API 支持自定义Provider、Ollama/LM Studio本地跑、Bedrock
安全 只能全开或全关 glob级禁读 + 域名白名单的命名权限档
自动化 纯手动交互 10个生命周期Hook + notify通知

行动指南

  1. 今天:安装后运行 codex,登录 ChatGPT 订阅(别用API计费);在 ~/.codex/config.toml 第一行加 #:schema 注释;
  2. 本周:依次打开 features.memories = true、web_search = "live",建一个 deep.config.toml profile(xhigh + flex);
  3. 进阶:写第一个 PostToolUse hook 挂自动格式化,再建 safe-dev 权限档禁读 **/*.env,之后才放心让它跑长任务。

参考来源

  1. openai/codex 官方仓库(安装方式、订阅说明):https://github.com/openai/codex
  2. Codex Configuration Reference(本文所有配置项出处):https://developers.openai.com/codex/config-reference
  3. Codex config 官方 JSON Schema(自动补全用):https://developers.openai.com/codex/config-schema.json
  4. Codex Web 云端版:https://chatgpt.com/codex

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入