[FEATURE] Feature Request: Add hook event for interactive MCQ/selection prompts

Resolved 💬 4 comments Opened Mar 20, 2026 by Manohar-D-S Closed May 1, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Feature Request

What

Add a dedicated hook event (e.g. UserPrompt or SelectionPrompt) that fires
whenever Claude Code displays an interactive multiple-choice selection UI to the user.

Why

Currently, the Notification hook only covers tool permission prompts.
The MCQ selection interface (the ❯ numbered options UI) does not trigger any hook,
making it impossible to get a notification sound or run a command when Claude Code
is waiting for user input via the selection menu.

Expected behavior

A hook like:
"hooks": {
"UserPrompt": [...]
}
that fires whenever Claude Code pauses and presents the user with a choice selection UI.

Current workaround

PreToolUse fires too broadly (every tool call) and doesn't specifically
target the selection prompt moment.

Proposed Solution

Feature Request

What

Add a dedicated hook event (e.g. UserPrompt or SelectionPrompt) that fires
whenever Claude Code displays an interactive multiple-choice selection UI to the user.

Why

Currently, the Notification hook only covers tool permission prompts.
The MCQ selection interface (the ❯ numbered options UI) does not trigger any hook,
making it impossible to get a notification sound or run a command when Claude Code
is waiting for user input via the selection menu.

Expected behavior

A hook like:
"hooks": {
"UserPrompt": [...]
}
that fires whenever Claude Code pauses and presents the user with a choice selection UI.

Current workaround

PreToolUse fires too broadly (every tool call) and doesn't specifically
target the selection prompt moment.

Proposed Solution

Introduce a new lifecycle hook event — suggested name: UserPrompt or SelectionPrompt
that is emitted specifically when Claude Code renders the interactive ❯ numbered selection UI
and is waiting for the user to make a choice.

This would follow the same structure as existing hooks:

"hooks": {
"UserPrompt": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "<any shell command>"
}
]
}
]
}

This is consistent with the existing hook architecture and requires minimal new surface area —
just a new emit point in the selection prompt rendering code.

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

Configuration and settings

Use Case Example

Real-World Use Case

Scenario: Multi-window developer workflow

When actively coding, I typically have multiple windows open simultaneously —
browser, editor, terminal, documentation, etc. Claude Code runs in one of these
windows in the background while I work elsewhere.

When Claude Code reaches an MCQ selection prompt (e.g. asking how to proceed,
which approach to take, or confirming a decision), it silently waits with no
system-level notification. Since I am focused on another window, I have no idea
it is waiting for my input.

The result:

  • Claude Code sits idle for minutes (sometimes longer) waiting for a response
  • I only notice when I happen to switch back to that window
  • Entire chunks of productive AI-assisted work time are wasted on idle waiting

With a UserPrompt hook, I could trigger a sound, a desktop notification,
or any shell command the moment Claude Code needs my attention — letting me
respond immediately without constantly context-switching back to check on it.

This is especially valuable for long-running tasks where Claude Code may hit
multiple decision points, and every unnoticed prompt compounds the wasted time.

Additional Context

_No response_

View original on GitHub ↗

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