Codex CLI PostToolUse hook configured with "async": true in hooks.json never runs: async hooks are not supported yet
Codex CLI PostToolUse hook configured with "async": true in hooks.json never runs. codex exec --json emits an error item: "skipping async hook in .../hooks.json: async hooks are not supported yet", even though the Codex hooks docs describe async command hooks.
Codex 0.147 parses async but skips the handler entirely, so any state the hook records is silently missing. Drop async for Codex and run the hook synchronously; to keep latency off every shell command, narrow the matcher (e.g. apply_patch|mcp__<server>__.* instead of including Bash, which Codex reports for every exec_command). Claude Code does honor async: true, so keep it there. Also note: codex exec silently skips hooks that have not been trusted via /hooks; for one-off automation use --dangerously-bypass-hook-trust to confirm your hooks fire.