You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: bell ansi for user acknowledgment #36472
+1'ing with a concrete pain point: tmux's monitor-bell window flag (! in the status line) is the main reason BEL matters. The built-in attention.sound plays an audio file through system audio — it never writes \x07 to the PTY, so tmux/screen never light up. The result: in a multiplexed session the attention signal is invisible unless you're actively listening, even with attention.enabled: true.
For anyone hitting this today, here's a working TuiPlugin on 1.17.x. The snippet in the OP is slightly stale — TuiPlugin now returns Promise<void> (not Hooks), and disposal goes through api.lifecycle.onDispose:
// ~/.config/opencode/plugins/terminal-bell.tsimporttype{TuiPlugin}from"@opencode-ai/plugin/tui";constRING_EVENTS=["session.idle","question.asked","question.v2.asked","permission.asked","permission.v2.asked","session.error",]asconst;letlast=0;constring=()=>{constnow=Date.now();if(now-last<1000)return;// coalesce the v1/v2 event pairslast=now;try{process.stdout.write("\x07");}catch{/* never throw from a hook */}};exportconsttui: TuiPlugin=async(api)=>{constoff=RING_EVENTS.map((t)=>api.event.on(t,ring));api.lifecycle.onDispose(()=>off.forEach((u)=>u()));};
Still think this belongs built-in. An attention.terminal_bell: true option that writes \x07 alongside the sound (mirroring TuiAttentionSoundName — done, question, permission, error, subagent_done) would cover every multiplexer user without forcing them to ship a plugin, and the TuiAttention API already centralizes the "when to ring" logic.
Activity
github-actions commentedon Jul 12, 2026
This issue might be a duplicate of existing issues. Please check:
Please review these issues before continuing, and consider adding your plugin examples as a comment there if relevant.
klonuo commentedon Jul 12, 2026
wow, there is similar issue for any idea - nice
kudos to guys reviewing
prestonbrown commentedon Aug 10, 2026
+1'ing with a concrete pain point: tmux's
monitor-bellwindow flag (!in the status line) is the main reason BEL matters. The built-inattention.soundplays an audio file through system audio — it never writes\x07to the PTY, so tmux/screen never light up. The result: in a multiplexed session the attention signal is invisible unless you're actively listening, even withattention.enabled: true.For anyone hitting this today, here's a working
TuiPluginon 1.17.x. The snippet in the OP is slightly stale —TuiPluginnow returnsPromise<void>(notHooks), and disposal goes throughapi.lifecycle.onDispose:Still think this belongs built-in. An
attention.terminal_bell: trueoption that writes\x07alongside the sound (mirroringTuiAttentionSoundName—done,question,permission,error,subagent_done) would cover every multiplexer user without forcing them to ship a plugin, and theTuiAttentionAPI already centralizes the "when to ring" logic.github-actions commentedon Oct 11, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.