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

Status Closed — not planned
Maintainer reply None cached
Activity 3 comments · opened Mar 7, 2026 · 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 ↗