Full Claude Code Hook Parity (29+)
Author: oxysoftCreated May 8, 2026Updated Sep 17, 2026
Labelsenhancementhooks
Full Claude Code Hook Parity (29+)
Umbrella tracker for bringing Codex hooks to full Claude Code-style parity, while keeping Codex-native event names and payloads where they make more sense.
The goal is not just more hook names. The goal is a complete automation surface:
- every major lifecycle transition is observable
- every high-risk action has a blocking interception point
- every hook payload is stable, typed, and documented
- every handler mode can participate in the same event surface
- hooks work consistently across CLI, TUI, Desktop, IDE, plugins, subagents, worktrees, resumes, compaction, and session shutdown
29+ leaves room for Codex-native hooks beyond Claude parity, especially skills, MCP, plan prompts, approval prompts, and local playbook promotion.
Event Matrix
| Event | Parity state | Codex notes |
|---|---|---|
SessionStart |
Shipped | Needs stable source metadata and resume semantics. |
Setup |
Missing | Early environment/project setup hook. |
UserPromptSubmit |
Shipped | Needs clean visible/hidden context behavior. |
UserPromptExpansion |
Missing | Prompt expansion/suggestion interception. |
PreToolUse |
Partial | Coverage must be consistent across every tool handler, not only selected paths. |
PermissionRequest |
Shipped | Blocking approval bridge exists; needs complete payload contract. |
PermissionDenied |
Missing | Denial should be observable as its own transition. |
PostToolUse |
Partial | Needs complete coverage, including long-running/polled sessions and all write paths. |
PostToolUseFailure |
Missing | Failures should not be inferred from generic post-tool payloads. |
PostToolBatch |
Missing | Needed for grouped edits/tool batches. |
Notification |
Partial | Notify behavior exists, but event semantics need parity clarity. |
SubagentStart |
Missing | Needs root/subagent identity and lineage. |
SubagentStop |
Missing | Needs root/subagent identity and terminal state. |
TaskCreated |
Missing | Task lifecycle should be observable. |
TaskCompleted |
Missing | Task lifecycle should be observable. |
Stop |
Shipped | Needs reliable continuation and better validation errors. |
StopFailure |
Missing | Stop hook failure should be first-class. |
TeammateIdle |
Missing | Useful for multi-agent/wrapper orchestration. |
InstructionsLoaded |
Missing | Needed for deterministic memory/rule/cache injection parity. |
ConfigChange |
Missing | Needed for hot reload and plugin/runtime config drift. |
CwdChanged |
Missing | Needed for multi-worktree and repo-local config correctness. |
FileChanged |
Missing | Needed for external editor and generated-file awareness. |
WorktreeCreate |
Missing | Needed for parallel-agent workspace orchestration. |
WorktreeRemove |
Missing | Needed for cleanup and watcher state. |
PreCompact |
Partial | Requested separately; should pair with post-compaction. |
PostCompact |
Partial | Exists in some form; needs final contract and parity docs. |
Elicitation |
Missing | Needed for interactive prompt/question surfaces. |
ElicitationResult |
Missing | Needed for answers/results from interactive prompt/question surfaces. |
SessionEnd |
Partial | Needs reliable shutdown/thread-close semantics across surfaces. |
Handler Matrix
| Handler type | Parity state | Notes |
|---|---|---|
command |
Shipped | Baseline executable hook handler. |
http |
Missing | Needed for local daemons and wrapper services. |
mcp_tool |
Missing | Needed for hook-to-MCP orchestration. |
prompt |
Missing | Needed for model-visible context injection without shell glue. |
agent |
Missing | Needed for delegated analysis/repair hooks. |
Runtime Matrix
| Capability | Target state |
|---|---|
| Blocking hooks | Supported for all relevant interception points. |
| Async hooks | Supported where transition does not need to block. |
| Payload schema | Machine-readable, versioned, and documented. |
| Matcher schema | Consistent across tools, files, MCP, skills, agents, and prompts. |
| Suppression controls | Hook output can be hidden, collapsed, or made model-visible without TUI noise. |
| Audit logs | Durable and searchable without polluting normal transcripts. |
| Hot reload | Hook config changes take effect predictably or report why they cannot. |
| Plugin scope | Plugin-defined hooks load into the same runtime with stable bundle context. |
| Trust flow | Local installers/wrappers can request hook trust through a supported path. |
| Cross-surface support | CLI, TUI, Desktop, IDE, and app surfaces behave consistently. |
Definition Of Done
- Codex publishes a single canonical hook event/handler schema.
- Existing hook bugs and feature requests can be mapped onto that schema.
- Claude Code parity gaps are explicit rather than rediscovered issue by issue.
- Codex-native extensions are admitted as first-class hooks instead of one-off surfaces.
Source: openai/codex