Fullscreen TUI is repeatedly re-prompted and force-enabled on background session attach, overriding explicit user opt-out

Open 💬 1 comment Opened Jul 3, 2026 by dc-benh

Environment

  • Claude Code 2.1.191, macOS (Darwin 25.3.0, arm64), Ghostty

Summary

The fullscreen renderer (research preview) enables xterm mouse reporting, which takes over native terminal behaviour: text selection by drag, middle-click paste and link clicks all stop working. I have declined the fullscreen opt-in prompt multiple times across recent versions, yet:

  1. The opt-in prompt keeps coming back after updates, and
  2. Background sessions ignore the preference entirely. Attaching to a background session always uses the fullscreen renderer with mouse capture. Running /tui default inside one responds: "Background sessions always use the fullscreen renderer so scrolling and mouse work when attached. The tui setting applies to sessions started directly with claude."

The result is that a user who has explicitly and repeatedly said no still loses native mouse behaviour, with no indication of why, and has to diagnose stuck mouse-reporting mode themselves. It cost me a debugging session to trace selection/middle-click/link breakage back to this feature.

Expected behaviour

Do not change how a user's terminal behaves without their awareness. Everyone has their own TUI preference and runs their terminal the way they want - mouse handling, selection and paste belong to the user's terminal setup, not the app. Concretely:

  • Declining an opt-in should be remembered. Re-prompting the same user after each update treats paying users as feature testers.
  • A user preference (tui: "default" or a declined prompt) should be honoured in ALL session types. If background attach genuinely requires the alt-screen renderer for virtualised scrollback, degrade gracefully for opted-out users: keyboard scrolling without mouse capture, rather than silently re-enabling what was declined.
  • CLAUDE_CODE_DISABLE_MOUSE should be a first-class documented setting (settings.json key, /config toggle), not an env-var escape hatch buried in the fullscreen docs.

Workaround

~/.claude/settings.json:

{
  "tui": "default",
  "env": { "CLAUDE_CODE_DISABLE_MOUSE": "1" }
}

Repro

  1. Decline the fullscreen renderer prompt (or set /tui default)
  2. Start a background session and attach to it in Ghostty (or any terminal)
  3. Try to drag-select text, middle-click paste, or click a link - all captured by the app
  4. Run /tui default inside the attached session - it reports the setting does not apply to background sessions

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗