WezTerm Bell for Claude Code

Maintained

A tiny Rust binary that triggers WezTerm visual bell and toast notifications from Claude Code hooks, with project-aware per-pane targeting

A zero-dependency Rust binary that bridges Claude Code hook events to WezTerm’s visual bell. Claude Code captures all stdout/stderr from hook commands, and Windows ConPTY drops control characters written directly to CONOUT$, so the BEL character can’t reach WezTerm through normal means.

Instead, bell.exe writes a signal file to ~/.claude/bell_signal containing the project name, pane ID, hook event name, and message. WezTerm’s Lua timer polls this file every second, locates the target pane by ID, and injects the BEL character via inject_output. Toast notifications display for 4 seconds with the project name and event type.

Filters out subagent events so only main conversation stops and notifications trigger the bell. Works with stock WezTerm for bell and toast notifications; per-pane header bars require the WezTerm Evo fork.