Codex Docs 非交互模式
English

非交互模式

使用 Codex 的非交互模式来自动化常见工作流。

codex exec "计算此项目中代码行的总数"

在非交互模式下,Codex 不会请求命令或编辑批准。默认情况下,它以 read-only 模式运行,因此它无法编辑文件或运行需要网络访问的命令。

使用 codex exec --full-auto 允许文件编辑。使用 codex exec --sandbox danger-full-access 允许编辑和网络化命令。

默认输出模式

默认情况下,Codex 将其活动流式传输到 stderr,并且只将来自助手的最终消息写入 stdout。这使得更容易将 codex exec 通过管道传输到另一个工具而无需额外过滤。

要将 codex exec 的输出写入文件,除了使用像 > 这样的 shell 重定向外,还有一个专用标志来指定输出文件:-o/--output-last-message

JSON 输出模式

codex exec 支持 --json 模式,该模式在助手运行时将事件作为 JSON Lines (JSONL) 流式传输到 stdout。

支持的事件类型:

支持的项目类型:

通常,assistant_message 在回合结束时添加。

示例输出:

{"type":"thread.started","thread_id":"0199a213-81c0-7800-8aa1-bbab2a035a53"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","item_type":"reasoning","text":"**搜索 README 文件**"}}
{"type":"item.started","item":{"id":"item_1","item_type":"command_execution","command":"bash -lc ls","aggregated_output":"","status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_1","item_type":"command_execution","command":"bash -lc ls","aggregated_output":"2025-09-11\nAGENTS.md\nCHANGELOG.md\ncliff.toml\ncodex-cli\ncodex-rs\ndocs\nexamples\nflake.lock\nflake.nix\nLICENSE\nnode_modules\nNOTICE\npackage.json\npnpm-lock.yaml\npnpm-workspace.yaml\nPNPM.md\nREADME.md\nscripts\nsdk\ntmp\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_2","item_type":"reasoning","text":"**检查仓库根目录中的 README**"}}
{"type":"item.completed","item":{"id":"item_3","item_type":"assistant_message","text":"是的 — 仓库根目录中有一个 `README.md`。"}}
{"type":"turn.completed","usage":{"input_tokens":24763,"cached_input_tokens":24448,"output_tokens":122}}

结构化输出

默认情况下,助手以自然语言响应。使用 --output-schema 提供定义预期 JSON 输出的 JSON Schema。

JSON Schema 必须遵循 严格模式规则

示例模式:

{
  "type": "object",
  "properties": {
    "project_name": { "type": "string" },
    "programming_languages": { "type": "array", "items": { "type": "string" } }
  },
  "required": ["project_name", "programming_languages"],
  "additionalProperties": false
}
codex exec "提取项目详细信息" --output-schema ~/schema.json
...

{"project_name":"Codex CLI","programming_languages":["Rust","TypeScript","Shell"]}

--output-schema-o 结合以仅打印最终的 JSON 输出。你也可以将文件路径传递给 -o 以将 JSON 输出保存到文件中。

Git 仓库要求

Codex 需要 Git 仓库以避免破坏性更改。要禁用此检查,请使用 codex exec --skip-git-repo-check

恢复非交互式会话

使用 codex exec resume <SESSION_ID>codex exec resume --last 恢复之前的非交互式会话。这保留对话上下文,因此你可以提出后续问题或向助手分配新任务。

codex exec "审查更改,查找释放后使用问题"
codex exec resume --last "修复释放后使用问题"

只保留对话上下文;你仍必须提供标志来自定义 Codex 行为。

codex exec --model gpt-5-codex --json "审查更改,查找释放后使用问题"
codex exec --model gpt-5 --json resume --last "修复释放后使用问题"

身份验证

默认情况下,codex exec 将使用与 Codex CLI 和 VSCode 扩展相同的身份验证方法。你可以通过设置 CODEX_API_KEY 环境变量来覆盖 api 密钥。

CODEX_API_KEY=your-api-key-here codex exec "修复合并冲突"

注意:CODEX_API_KEY 仅在 codex exec 中受支持。