Five events, three hostsSessionStart, PreToolUse, PostToolUse, UserPromptSubmit, Stop. Translated between Claude Code, Cursor, and Codex.
Event normalizationCursor's beforeShellExecution / beforeMCPExecution / beforeReadFile / afterFileEdit fold into PreToolUse / PostToolUse with a unified tool field. Codex's apply_patch aliases to Edit.
Dropped-field warningsFields a host can't honor are dropped with a stderr warning naming the field, the host, and the event. No silent failure.
Library APIdefineHook(handlers) + run(handlers) read stdin, dispatch, write stdout. No bin, no global install.
install commandbunx @pivanov/agent-hooks-bridge install ./.hooks/format.ts writes .claude/settings.json, .cursor/hooks.json, .codex/hooks.toml.See usage
Cursor 'ask' regression handlingCursor's permission: 'ask' has been broken since 2.4.21 (still broken on 3.2.16). The adapter downgrades 'ask' to 'deny' with a warning; opt out with cursorAskFallback: 'ask'.