必须先运行 codex --version 确认版本 ≥ 0.9.0,否则 --output-format jsonl 无效;升级用 npm install -g @openai/codex@latest;启用事件流需用 codex exec "...” --output-format jsonl,每行一个含 type 和 timestamp 的标准 JSONL 对象。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让 Codex CLI 把每一步推理、执行、响应都按结构化事件逐行输出,方便后续用脚本解析状态或做审计追踪,而不是只看最终文字结果。
确认 CLI 版本与基础能力
先运行 codex --version,确保输出版本 ≥ 0.9.0。低于这个版本的 CLI 不支持 --output-format jsonl 和完整的事件流字段;旧版即使加了参数也会静默忽略或报错 Invalid output format。
若版本过低,请执行 npm install -g @openai/codex@latest 升级后再继续。这一步跳过会导致后续所有事件流命令无效。
启用 JSONL 事件流输出
方法一:用 exec 模式 + --output-format jsonl
在项目根目录下运行:codex exec "list recent commits" --output-format jsonl。
这条命令会把 session_meta、event_msg、response_item 全部以独立 JSON 行(JSONL)格式打印到终端,每行一个合法 JSON 对象,符合 Codex CLI 官方定义的事件流规范。
【必须加 --output-format jsonl,不加默认是 text】。只写 codex exec ... --json 是错的——--json 是旧版简写,已被弃用,它不会触发事件流,只会尝试把最终响应包成单个 JSON 对象,且不包含 timestamp 或 type 字段。
方法二:用 --stream 配合重定向解析
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
运行:codex exec "check test coverage" --stream > events.jsonl。
注意:此方式输出的是原始流式响应,不是标准 JSONL 事件。它缺少 type 字段和明确的事件分类,仅适合调试,不能直接喂给 jq -s 'map(select(.type == "response_item"))' 这类解析逻辑。
验证事件流内容是否完整
第一步:捕获一次最小事件流
执行:codex exec "say hello" --output-format jsonl 2>/dev/null | head -n 5 > verify.jsonl。
第二步:检查关键字段是否存在
运行:jq -r '.type' verify.jsonl,应至少输出 session_meta、event_msg、response_item 三类值。缺任何一类,说明 CLI 未真正进入事件流模式,大概率是版本或参数拼写问题。
第三步:确认时间戳可解析
执行:jq -r '.timestamp' verify.jsonl | head -1 | grep -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$'。匹配成功才表明 timestamp 是 ISO 8601 格式,可用于时序分析。

















