Skip to content

config.toml 修改未生效 ​

文件保存成功,只说明磁盘内容改变。要证明配置生效,还要知道启动的是哪个客户端、它读取哪个目录,以及是否存在更高优先级的值。先写下一个具体症状,例如「项目文件写 false,但 CLI 列表仍是 true」,不要同时更换模型、网络与配置文件。

找到实际配置来源 ​

OpenAI 配置基础文档 说明用户配置在 ~/.codex/config.toml,项目可以使用 .codex/config.toml;项目层只对受信任项目加载。命令行标志与 --config 覆盖优先于项目文件。本文于 2026-10-18 复核依据;组织要求还可能约束可用行为,不能假定本地值能覆盖一切。

先记录 codex --version、当前目录、完整启动参数和你改动的文件位置。若通过快捷脚本启动,也要打开脚本确认它有没有追加参数;桌面上的名称并不能说明最终命令。不要为了排障公开整份配置,其中可能包含私人服务地址或认证信息。

最小对照:只改变命令行覆盖 ​

下载 配置练习 v1.0.0,阅读 README,在你已经信任的 Git 项目内运行 node run.mjs。需要 Node 22+ 与本机 CLI。脚本只在项目 artifacts/ 创建独立目录,其项目文件为:

toml
[features]
shell_snapshot = false

它通过 CLI 自己的 features list 读取解析结果,不使用本方 TOML 解析器模拟。本站 macOS、Node v22.23.3、CLI 0.163.0 的 原始记录 显示:

sh
codex -c features.shell_snapshot=true features list
# shell_snapshot ... stable ... true
codex features list
# shell_snapshot ... stable ... false

两次进程均退出 0。文件始终是 false;移除启动参数后才观察到 false,因而本例支持「命令行覆盖了项目值」。实验没有改用户配置,也没有实际执行 shell snapshot 或调用模型。

信任条件也是变量 ​

实验过程摘要:最初在系统临时目录的新 Git 项目运行,移除覆盖后仍是 true,对照断言未通过。该项目未被信任,不能据此宣称项目文件已经加载。移到已经信任的本方项目下,才得到上述对照;公开原始日志记录的是最终这组已信任目录的对照。不要为了让实验通过而盲目信任陌生仓库。

当前观察区分性检查对应处理与复测
项目值一直不出现核对工作目录和项目信任状态在正确、已审查的项目启动同一检查
只有某种启动方式不同比较别名、脚本与 -c 参数移除明确的覆盖,再查解析结果
CLI 报语法或未知项保存准确错误,核对版本文档只修对应字段,再运行原命令
值已正确但功能异常区分配置解析与功能执行用该功能的最小任务单独检查

复测与边界 ​

保留前后命令、退出码、文件差异和日期。此实验依赖该版本存在 shell_snapshot 开关;若未来移除,应更新实验而不是忽略报错。它不验证 IDE、App、网络服务或组织策略,配置列表正确也不等于那些行为通过。

命令本身找不到时先走 PATH 检查。仍无法定位时,用 报告模板 提供最小配置片段及覆盖条件,让下一位复现者能够比较同一变量。