Add option to suppress idle notification text message (causes terminal corruption in screen/tmux)
Summary
When Claude Code is waiting for user input (not a permission prompt), after ~30 seconds it prints the text "Claude is waiting for your input" to the bottom of the terminal. This text output shifts the terminal viewport, which desynchronizes Claude Code's internal screen model from what's actually displayed, causing persistent rendering corruption.
Environment
- Claude Code running inside GNU
screenunderkittyterminal - Bell notifications and notification hooks are both working correctly
- The text message is redundant when bell + hooks are already configured
Steps to Reproduce
- Run Claude Code inside GNU
screen - Trigger an interaction that presents a menu/elicitation (e.g.,
AskUserQuestion) - Wait ~30 seconds without responding
- The "Claude is waiting for your input" text appears at the bottom of the terminal
- Answer the prompt — the screen now has corrupted/overwritten text regions
Screenshot
(screenshot of corruption after idle notification fired during a menu interaction — will attach below)
Expected Behavior
A configuration option to suppress the idle notification text message while keeping bell and hook notifications active. Something like:
// in settings.json
"idleNotificationText": false
or an environment variable like CLAUDE_CODE_DISABLE_IDLE_TEXT=1.
Why This Matters
- The bell notification already alerts the user audibly
- The notification hook already provides visual notification (screen flash, etc.)
- The text message is the only notification mechanism that causes terminal corruption
- Sending
SIGWINCHto Claude Code after the text appears does not fix the corruption — the internal screen model is already wrong - GNU
screenredraw (Ctrl+A Ctrl+L) also does not help, since it redraws from screen's buffer, not Claude Code's
Additional Context
This is the last remaining source of terminal corruption after significant improvements on both the user side (migrating from urxvt to kitty) and Anthropic's side. Everything else works well — this one text message is the sole remaining trigger.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗