第 10 卷

筛出来的几行:goals、hooks、multi_agent、plugins、worktrees等都已经是stable并默认开启;memories是stable但默认关;
personality已移除。
5月版书里让你手动开的 unified_exec、 shell_snapshot,现在都默认开着,不用管。真要临时开关某个功能,用 --enable 名字、 --disable 名字。
MCP
# 本地命令启动的MCP服务器(stdio)
codex mcp add context7 -- npx -y @upstash/context7-mcp
# 远程HTTP的MCP服务器 codex mcp add my-api --url https:-/api.example.com/mcp
# 列出、查看、删除、登录 codex mcp list codex mcp get my-api codex mcp remove my-api codex mcp login my-api
5月版里的 --type stdio --command 写法不存在。会话里 /mcp 列出已连接的工具, /mcp login 名字做
OAuth登录。MCP服务器启动超时默认10秒、单次工具调用超时默认60秒,在 [mcp_servers.名字] 里用 startup_timeout_sec、 tool_timeout_sec 调。
Shell补全
# 加到 ~/.zshrc eval "$(codex completion zsh)"
# bash、fish同理 codex completion bash codex completion fish
小技巧
@引用文件:输入框里打 @,模糊搜索工作区文件。
!跑shell命令:输入 !ls 直接在本地执行。
Enter插话、Tab排队:它干活时打字回车,会在这一轮里调整方向;按Tab则排到这一轮结束后。
Esc两下回溯:输入框为空时连按两次Esc,编辑之前的消息,从那里分叉出新对话。
Ctrl+T看完整记录:折叠起来的命令输出和diff都在里面。
启动前把环境备好:先激活虚拟环境、启动需要的服务,Codex就不用花token去摸你的开发环境。
建议:桌面App、IDE扩展底下跑的是同一套agent和同一份配置。CLI里把模型、权限、AGENTS.md弄明白了,换到别的入口也是同一套逻辑。
§05 AGENTS.md:给Codex一张地图
AGENTS.md — The Map You Draw for Codex
Codex每次启动时会自动读取AGENTS.md。这是你和AI之间关于「怎么干活」的契约,决定了Codex 是一个空降新人,还是一个了解项目规矩的老手。
如果你读过我的Claude Code橙皮书,一定记得CLAUDE.md那一章。在Claude Code的世界里,CLAUDE.md
是最重要的文件,是AI的「宪法」。
AGENTS.md在Codex中扮演的角色完全一样。
名字不同,逻辑相通:你把项目的构建命令、代码规范、常见陷阱写在一个文件里,AI每次启动时先读它,然后带着这些背景知识开始干活。没有它,Codex就是蒙着眼写代码;有了它,它一进来就知道规矩。
Codex怎么找到你的AGENTS.md
Codex在每次运行开始时(TUI模式下通常是每次启动会话时)构建指令链。发现顺序如下:
1全局级
在Codex主目录(默认是 ~/.codex,可通过 CODEX_HOME 环境变量修改)中,先找
AGENTS.override.md,找不到再找 AGENTS.md。这一层只取一个文件。
2项目级
从项目根目录(通常是Git仓库根目录)开始,逐级向下走到当前工作目录。每个目录中,依次检查 AGENTS.override.md、 AGENTS.md、以及 project_doc_fallback_filenames 中配置的备选文件名。每个目录层级最多取一个文件。
3合并
所有找到的文件按从根到当前目录的顺序拼接。越靠近当前目录的文件优先级越高,因为它们出现在合并后内容的后面,会覆盖前面的指令。
Codex会跳过空文件,合并后的总大小上限默认是32KB(由 project_doc_max_bytes 配置项控制)。超出限制时,后面的文件会被跳过,不再加入指令链。
建议:32KB听起来很大,但如果你在多个嵌套目录都放了AGENTS.md,很容易撞到上限。建议把核心规则集中在根目录文件里,子目录文件只写该目录特有的内容。