Skip to content

feat: terminal bell (BEL) when Claude Code is waiting for tool approval #36850

@langdon

Description

@langdon

Summary

Ring the terminal bell (\a / BEL) when Claude Code pauses and is waiting for the user to approve a tool use. This is distinct from a completion bell — it's a "I need you right now" signal, not a "I'm done" notification.

Motivation

When Claude Code is running in a buried terminal or tmux pane, there's no way to know it's blocked on an approval prompt without switching to it and looking. The session silently waits, the user is doing something else, and minutes pass.

A terminal bell on the approval prompt solves this without any external tooling — it works in tmux, screen, iTerm2, Wezterm, Ghostty, and every terminal that supports the standard BEL character. Most terminals can translate BEL into a visual bell, a dock badge, or a desktop notification depending on user preference. The user controls what "bell" means to them.

Proposed behavior

When the approval prompt is displayed (the "Allow / Deny" dialog for tool use), emit a single \a (BEL, \x07) to stderr before or alongside the prompt text.

Optionally, make this configurable:

// ~/.claude/settings.json
{
  "bellOnApproval": true  // default: true
}

Why not just use the existing Notification hook?

The Notification hook fires for general notifications, not specifically for approval prompts. Wiring a bell through a hook requires the user to write and maintain a shell script for something that could be a one-liner in the core UI.

Related


Drafted with AI assistance. AI-G — fully AI-generated, human-reviewed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions