codex exec:从脚本运行 Codex
想在脚本里让 Codex 阅读代码、生成一份检查摘要,或者处理一个固定任务,可以使用 codex exec。它适合不需要持续对话的非交互运行。
下面从只读检查开始,介绍如何传入任务、读取最终结果,以及需要 JSONL 事件时怎样处理输出。
从只读任务开始
codex exec "Summarize this repository and identify its test entry points."官方说明中,非交互执行默认只读。确实需要在项目内修改文件时,可显式选择支持的沙箱:
codex exec --sandbox workspace-write "Fix the documented validation bug and run its focused tests."示例不指定项目的测试命令;真正执行前应从仓库规则和依赖中确认入口。执行身份和凭据由运行环境提供,不应写进任务文本。
区分结果与过程
常规模式的进度信息写到 stderr,最终答复写到 stdout。不要把混合控制台日志直接当作程序要解析的结果。
codex exec --json "Identify the test entry points without changing files."--json 输出的是逐行 JSON 事件(JSONL),不是一个可直接整体解析的 JSON 对象。消费者应逐行解析、按事件类型处理,并检查最终退出状态。日志可包含项目上下文,保留范围按项目要求处理。
自动化的失败条件
如果必需 MCP 服务初始化失败,任务可能在开始前退出。测试失败、权限不足、缺少输入、调用失败都需要在调用方显式处理;模型的自然语言“完成”不能代替业务检查。
当前版本不再支持旧教程中的 --full-auto。不要为了兼容过期示例放宽所有权限;先明确所需写入范围,参考 审批与沙箱。
最后更新于