TUI redraws force scroll-to-bottom, ignoring terminal scroll-to-bottom=no-output setting

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Mar 22, 2026 · closed Mar 25, 2026

Description

Claude Code's TUI output forces the terminal viewport to scroll to the bottom during long conversations, overriding the terminal's scroll-to-bottom = no-output configuration. This makes it impossible to review earlier output while Claude is actively streaming or redrawing.

Behavior

  • Works correctly at the start of a conversation
  • After the conversation reaches a certain length, the viewport is forced to the bottom on every TUI redraw (status line animation, streaming text)
  • The terminal's scroll-to-bottom setting is completely bypassed
  • Survives terminal restart — tied to conversation length, not session state

Reproduction

  1. Configure terminal with scroll-to-bottom = no-output, no-keystroke (tested in Ghostty, but also confirmed in iTerm2 and Terminal.app)
  2. Start a Claude Code session
  3. Have a conversation long enough (several back-and-forth exchanges)
  4. Scroll up to review earlier output
  5. Observe: viewport is yanked back to the bottom on every Claude Code redraw

Root Cause

Claude Code's TUI appears to use terminal escape sequences (cursor repositioning / screen redraws) that force scroll-to-bottom regardless of terminal configuration. This is not regular PTY output — it bypasses the terminal's no-output scroll behavior.

Expected Behavior

When the user has scrolled up to review previous output, Claude Code should not force the viewport back to the bottom. The terminal's scroll-to-bottom configuration should be respected.

Related

  • ghostty-org/ghostty#10456 — Ghostty discussion confirming this is a Claude Code issue, not terminal-side
  • #35208 — Related scroll-to-bottom issue on edit acceptance

Environment

  • Claude Code CLI (latest)
  • macOS (Darwin 25.3.0, Apple M4 Pro)
  • Tested in: Ghostty (tip channel), iTerm2, Terminal.app

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗