Problem
When running multiple Claude Code sessions simultaneously (e.g., across different projects or tasks), there's no way to know which session is blocked waiting for user input — permission approvals, questions, etc. You have to manually check each tab/window.
Proposed Solution
A built-in notification mechanism when Claude Code is waiting for user input. This could be:
- macOS/Linux system notification — native OS notification when a session needs attention
- Audio alert — a sound or
say command (especially useful for headless setups like Mac mini accessed via SSH)
- Hook support — a dedicated
onWaitingForInput hook event so users can customize the behavior (e.g., trigger say, osascript, Slack webhook, etc.)
Current Workaround
You can partially achieve this with a preToolUse hook:
{
"hooks": {
"preToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "say 'Claude needs your attention'"
}
]
}
]
}
}
But this fires on every tool use, not specifically when approval is needed. A dedicated event for "waiting on user" would be much more precise.
Use Cases
- Running 3-4 Claude Code sessions across different projects
- Headless Mac mini setup accessed via phone/SSH — need ambient audio feedback
- Long-running autonomous tasks where Claude occasionally needs a permission grant
- Pair programming flow where you're focused elsewhere and need to know when Claude has a question
Why This Matters
Claude Code is moving toward more autonomous, multi-session workflows. The bottleneck increasingly isn't Claude's speed — it's the human noticing that Claude is waiting. A simple notification closes that gap.
Problem
When running multiple Claude Code sessions simultaneously (e.g., across different projects or tasks), there's no way to know which session is blocked waiting for user input — permission approvals, questions, etc. You have to manually check each tab/window.
Proposed Solution
A built-in notification mechanism when Claude Code is waiting for user input. This could be:
saycommand (especially useful for headless setups like Mac mini accessed via SSH)onWaitingForInputhook event so users can customize the behavior (e.g., triggersay,osascript, Slack webhook, etc.)Current Workaround
You can partially achieve this with a
preToolUsehook:{ "hooks": { "preToolUse": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "say 'Claude needs your attention'" } ] } ] } }But this fires on every tool use, not specifically when approval is needed. A dedicated event for "waiting on user" would be much more precise.
Use Cases
Why This Matters
Claude Code is moving toward more autonomous, multi-session workflows. The bottleneck increasingly isn't Claude's speed — it's the human noticing that Claude is waiting. A simple notification closes that gap.