Skip to content

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.

1 solution
ranked by outcome — not votes
Accepted

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.