Codex CLI 0.164.0 在北京时间 10 月 23 日中午发布。这版把常用提示和斜杠命令收进十个编号的 /presets 槽位,/model 和 /permissions 也能直接带参数切换。config.toml 里槽位键名必须是 0 到 9,写错立刻拒载;同一条命令上多层 -c 时,子命令那层的覆盖也会留下来。
上一个版本 0.163 的重点是回答中途插话和可搜索的 /config,见 Codex CLI 0.163 回答到一半也能插话改方向了。这次更偏快捷输入和权限切换。
这版改了什么
十个编号的 /presets 槽位,用来存可复用的提示词或斜杠命令,键盘菜单能快速打开(#54380、#54381)。配置里对应 [tui.presets.<digit>],键名只能是单个数字 0 到 9,每条要有 input,可选 label;官方 schema 写明 input 上限是 8000 个 UTF-8 字节。
/model 和 /permissions 支持行内参数,一条命令就能设模型、推理力度、速度和权限配置(#54378、#54383)。全屏 transcript 里,在支持 Kitty 或 Sixel 的终端可以预览看过或生成的图片(#54216)。企业 MCP 能用符合条件的 Codex 账号授权或单独登录,含需要密钥的 OAuth 客户端(#55334、#55859、#56001)。支持的远程 Bash 和 Zsh snapshot 会话会掩码凭证,含自定义 provider 的凭证(#54309、#54432、#56049)。Amazon Bedrock 安装向导默认打开(#56033、#56023)。
修复里有一条对脚本友好:CLI 配置覆盖在多个子命令层级都写了 -c 或 --config 时不再丢(#56022)。压缩历史的会话恢复、失败 compaction 不留下半截摘要、Windows 代理 Negotiate/NTLM 等也一并修了。
装上看一眼
TUI 里的 /presets 菜单、行内 /model / /permissions、图片预览和企业 MCP 登录需要登录后的交互终端,本文没有实测这些界面操作,相关描述来自 release notes。下面是离线能核对的部分。
npm i -g @openai/codex@0.164.0
$ codex --version
codex-cli 0.164.0
$ codex features list | grep -E "bedrock_setup_wizard|view_image|credential_masking"
bedrock_setup_wizard stable true
credential_masking under development false
view_image stable true
bedrock_setup_wizard 和 view_image 已是 stable 且默认打开,和 release notes 一致。credential_masking 在 codex features list 里仍是 under development 且为 false,所以凭证掩码这条按功能开关口径还没默认开;release notes 已把它列进 New Features。
把 presets 写进 config.toml
用独立的 CODEX_HOME 试了三槽配置:
[tui.presets.1]
label = "sb-test"
input = "/status"
[tui.presets.2]
label = "mvn-test"
input = "在当前 Spring Boot 项目跑 mvn -o -B test,只看失败摘要"
[tui.presets.9]
input = "/permissions read-only"
这份配置能被 codex sandbox 正常加载。把键名改成字母 a,或把 input 撑过 8000 字节,马上报错退出:
$ CODEX_HOME=~/demo/codex-home-bad codex sandbox -- true
Error: tui.presets.a: slot must be a single digit from 0 to 9
$ CODEX_HOME=~/demo/codex-home-big codex sandbox -- true
Error: tui.presets.0: Preset input cannot exceed 8,000 UTF-8 bytes.
槽位名和长度限制不是文档里的软提示,加载配置时就会卡住启动。
多层 -c 在沙箱里跑 Spring Boot 测试
#56022 说多层级的 -c 覆盖会保留。实测用顶层 sandbox_mode=read-only,再在 sandbox 子命令上盖一层 workspace-write,工作目录里能写出文件:
$ codex -c sandbox_mode="read-only" sandbox -c sandbox_mode="workspace-write" -- \
bash -lc 'echo preserved > mark-multi.txt; cat mark-multi.txt'
preserved
同一套覆盖拿去跑最小 Spring Boot 3.5.6 项目(一个 @SpringBootTest 的 contextLoads,JDK 25,依赖提前放进项目内 .m2repo)。沙箱默认只读时,Maven 连本地仓库的文件锁都打不开;换成上面的多层 -c 后,测试通过。Mockito 仍要显式 -javaagent,这一点和 0.163 那篇在沙箱里的情况一样:
$ codex -c sandbox_mode="read-only" sandbox -c sandbox_mode="workspace-write" -- \
mvn -o -B test \
-Dmaven.repo.local="$PWD/.m2repo" \
-DargLine="-javaagent:$PWD/.m2repo/org/mockito/mockito-core/5.17.0/mockito-core-5.17.0.jar"
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.985 s -- in com.example.demo.DemoApplicationTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS
[INFO] Finished at: 2026-10-24T08:05:36+08:00
仓库路径特意放在项目目录里。若继续指向家目录下的 .m2,workspace-write 仍写不了仓库锁文件,Maven 会在解析 parent POM 时直接 InternalError。本地仓库放进工作区之后,多层 -c 盖上的写权限才够用。
资料来源:Codex rust-v0.164.0 release notes、ChatGPT & Codex changelog(2026-10-23),以及 rust-v0.164.0 release 资产中的 config-schema.json(Preset / tui.presets 定义)。
一起交流
分享你的思考,让讨论更进一步。