codex cli 默认处于 suggest 模式,仅生成 diff 不写入文件;需通过 --mode auto-edit 临时切换或配置 default_mode = "auto-edit" 永久启用,再确保在项目根目录用精准自然语言指令触发自动修改。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让 Codex CLI 真正帮你改代码,而不是只给建议或解释,必须明确告诉它“动手改”,同时确保它有权限、有上下文、有确认机制——否则它会卡在安全模式里,光输出 diff 却不落盘。
确认当前处于可执行修改的模式
Codex CLI 默认运行在 【Suggest 模式】,它只会生成 diff 并等待你输入 Y 确认,不会自动写入文件。如果你刚安装完或没改过配置,大概率就卡在这一步。
运行 codex --mode 查看当前模式;若显示 suggest,说明还没切换到可编辑状态。
临时切到 Auto-Edit 模式:在命令末尾加 --mode auto-edit,例如:codex "把 utils/date.js 里的 formatDate 改成支持时区参数" --mode auto-edit。
永久启用 Auto-Edit:编辑 ~/.codex/config.toml,在 [features] 下添加 default_mode = "auto-edit",保存后生效。
让 Codex CLI 实际修改代码的三步操作
第一步:进入项目根目录,确保 codex 能看到你要改的文件结构。它不会跨目录读取,当前路径就是它的“视野范围”。
第二步:用自然语言精准描述修改目标,必须包含 【具体文件名 + 具体行为 + 具体位置或逻辑】,例如:“在 src/api/client.ts 的第 42 行函数里,把硬编码的 'https://api.example.com' 替换成从环境变量 process.env.API_BASE_URL 读取”。
第三步:按下回车后,Codex CLI 会先分析上下文、定位文件、生成变更方案;若处于 Auto-Edit 模式,它会在终端内直接写出修改后的代码块,并自动写入文件——你不需要手动复制粘贴,也不需要再敲 Y。
两种绕过模式限制的应急方法
方法一:强制覆盖写入(慎用)
加 --force-write 参数,即使文件被 git ignore 或只读也会尝试修改。这一步不可逆,【务必提前 git commit 或备份】。
方法二:用 Plan 模式分步控制
先创建 .ai/plan.md,写明要改哪几个文件、每处改什么、为什么这么改;然后运行 codex --plan .ai/plan.md。它会严格按文件里写的步骤执行,跳过自由发挥,适合多人协作或上线前审查。
验证修改是否真正落地
执行完命令后,立刻运行 git status,查看是否有未暂存的修改;如果有,说明 Codex CLI 已成功写入磁盘。
打开对应文件,搜索你提到的关键字(比如新加入的环境变量名),确认它出现在正确行号上——别只信终端里打印的 diff,有些场景下它会模拟成功但实际因权限失败。
如果文件没变,检查终端最后一行是否出现 Write failed: Permission denied;出现即说明系统拒绝写入,需用 sudo codex ... 或改文件权限。











