#21753·codex

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.