Terminal output pushes scroll position during generation — cannot select/copy/read previous output
Description
During active generation (thinking, typing, or even the "deliberating" status indicator), terminal output causes the viewport to jump to the TOP of the scrollback buffer. This makes it impossible to:
- Select text from previous output (viewport jumps to top mid-selection)
- Copy commands that Claude outputs (the content you are trying to select disappears)
- Read important information that was just displayed (yanked to the top of the terminal history)
Any new output — even a single status line — causes the viewport to snap to the very top of the scrollback, not the bottom. The user is forcibly teleported thousands of lines away from what they were reading.
Environment
- Terminal: iTerm2 on macOS
- Claude Code: latest
- Account: Max (Pro/Max tier)
Impact
- Unusable for ops work where Claude outputs commands to run on remote machines
- Cannot read Claude's own responses — viewport jumps to top before you finish reading
- Forces the user to scroll back down after every single output event
- Especially bad during long multi-step operations where status updates keep firing
Comparison
Other CLI AI tools (competitors) do NOT have this issue in the same terminal. The scroll position is preserved when the user is reading previous output. This is standard terminal behavior.
Expected Behavior
- If the user is reading previous output, new output should NOT move the viewport
- Only auto-scroll when the user is already at the current output position
- Allow text selection to complete without interruption
Workaround
None currently. The web interface actually handles this better (has copy buttons on code blocks), which is ironic for a CLI tool.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗