[FEATURE] Allow skipping a running hook via keypress (e.g. Esc)

Resolved 💬 3 comments Opened Mar 7, 2026 by yuuichieguchi Closed Apr 30, 2026

Problem Statement

Hooks are incredibly useful, but they always run unconditionally when triggered. Sometimes the user knows the hook's result is unnecessary (e.g., skipping a plan review when prototyping). Currently there's no way to cancel or skip an individual hook during execution — the only option is to disable all hooks via /hooks, which is too coarse-grained.

While statusMessage shows a spinner during hook execution, there's no interactive way for the user to say "I don't need this right now."

Proposed Solution

While a hook is running (and the statusMessage spinner is visible), allow the user to press a specific key (e.g. Esc) to skip/cancel the running hook. The skipped hook should be treated as if it exited with code 0 (allow), so execution continues normally.

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

  1. User has a PreToolUse hook on ExitPlanMode that sends the plan to an external AI for review (takes ~30-60 seconds)
  2. User is prototyping and knows the plan doesn't need a full review this time
  3. The spinner shows "Reviewing plan..." — user presses Esc
  4. The hook is cancelled, ExitPlanMode proceeds immediately
  5. User saves ~30-60 seconds without having to disable all hooks

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗