codex - 💡(How to fix) Fix Full Claude Code Hook Parity (29+)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
RAW_BUFFERClick to expand / collapse

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

EventParity stateCodex notes
SessionStartShippedNeeds stable source metadata and resume semantics.
SetupMissingEarly environment/project setup hook.
UserPromptSubmitShippedNeeds clean visible/hidden context behavior.
UserPromptExpansionMissingPrompt expansion/suggestion interception.
PreToolUsePartialCoverage must be consistent across every tool handler, not only selected paths.
PermissionRequestShippedBlocking approval bridge exists; needs complete payload contract.
PermissionDeniedMissingDenial should be observable as its own transition.
PostToolUsePartialNeeds complete coverage, including long-running/polled sessions and all write paths.
PostToolUseFailureMissingFailures should not be inferred from generic post-tool payloads.
PostToolBatchMissingNeeded for grouped edits/tool batches.
NotificationPartialNotify behavior exists, but event semantics need parity clarity.
SubagentStartMissingNeeds root/subagent identity and lineage.
SubagentStopMissingNeeds root/subagent identity and terminal state.
TaskCreatedMissingTask lifecycle should be observable.
TaskCompletedMissingTask lifecycle should be observable.
StopShippedNeeds reliable continuation and better validation errors.
StopFailureMissingStop hook failure should be first-class.
TeammateIdleMissingUseful for multi-agent/wrapper orchestration.
InstructionsLoadedMissingNeeded for deterministic memory/rule/cache injection parity.
ConfigChangeMissingNeeded for hot reload and plugin/runtime config drift.
CwdChangedMissingNeeded for multi-worktree and repo-local config correctness.
FileChangedMissingNeeded for external editor and generated-file awareness.
WorktreeCreateMissingNeeded for parallel-agent workspace orchestration.
WorktreeRemoveMissingNeeded for cleanup and watcher state.
PreCompactPartialRequested separately; should pair with post-compaction.
PostCompactPartialExists in some form; needs final contract and parity docs.
ElicitationMissingNeeded for interactive prompt/question surfaces.
ElicitationResultMissingNeeded for answers/results from interactive prompt/question surfaces.
SessionEndPartialNeeds reliable shutdown/thread-close semantics across surfaces.

Handler Matrix

Handler typeParity stateNotes
commandShippedBaseline executable hook handler.
httpMissingNeeded for local daemons and wrapper services.
mcp_toolMissingNeeded for hook-to-MCP orchestration.
promptMissingNeeded for model-visible context injection without shell glue.
agentMissingNeeded for delegated analysis/repair hooks.

Runtime Matrix

CapabilityTarget state
Blocking hooksSupported for all relevant interception points.
Async hooksSupported where transition does not need to block.
Payload schemaMachine-readable, versioned, and documented.
Matcher schemaConsistent across tools, files, MCP, skills, agents, and prompts.
Suppression controlsHook output can be hidden, collapsed, or made model-visible without TUI noise.
Audit logsDurable and searchable without polluting normal transcripts.
Hot reloadHook config changes take effect predictably or report why they cannot.
Plugin scopePlugin-defined hooks load into the same runtime with stable bundle context.
Trust flowLocal installers/wrappers can request hook trust through a supported path.
Cross-surface supportCLI, 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.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix Full Claude Code Hook Parity (29+)