[BUG] Chat auto-scroll can't be paused during long Auto-mode sessions, making it impossible to read earlier output until Claude stops
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
In a long-running Auto-mode session, Claude streams new text continuously (multi-paragraph progress updates, "Insight" blocks, tool-result narration, etc.). The chat view auto-scrolls down one line for every new line that arrives. There is no way I could find to pause that auto-scroll, so once Claude is more than ~one screen ahead of where I'm reading, I lose my place every couple of seconds.
In practice this means I can't read anything Claude has already written until Claude stops working. For Auto mode specifically, that can be many minutes.
Actual behaviour
Auto-scroll fires for every line of new output regardless of where the viewport currently is. Scrolling up briefly succeeds but is undone within ~1 second by the next streamed line. Clicking and holding on the scroll bar does not interrupt the behaviour.
Workarounds tried
- Scrolling up with the mouse wheel: undone by the next streamed line.
- Clicking on the scroll bar (track and thumb): doesn't pin the view.
- Selecting text in an earlier message: selection is preserved but the view still jumps.
- Putting the window in the background: doesn't help; the view is still scrolled when I return.
The only working workaround is to wait for the session to finish or interrupt Claude, neither of which is reasonable in Auto mode where the whole point is letting Claude run.
Impact
Auto mode is the mode where this hurts most because:
- Sessions are long (minutes to tens of minutes of continuous output).
- The output volume is high and my role is to skim/review, not to dictate the next step.
- A lot of the value (e.g. inline
★ Insight ─explanatory blocks, design-decision rationale) lives in earlier output that I want to revisit while Claude continues.
Suggested fix (UX-level, not a prescription)
- Detect when the viewport is not at the bottom and suspend auto-scroll until the user returns to the bottom.
- Show a small floating "↓ Jump to latest" button while auto-scroll is suspended (Slack/Discord-style).
- Optionally, keep a setting under Preferences for users who'd prefer auto-scroll to always follow.
Environment
- Claude Code desktop app (macOS), Code mode, Auto mode active.
- macOS 15.x (Darwin 25.x).
- Claude 1.4758.0 (fb266c) 2026-04-24T20:22:30.000Z
What Should Happen?
Standard "follow tail" pattern, as used by GitHub Actions live logs, Slack, Discord, terminal pagers (less +F), most live log viewers:
- If the view is at the bottom, new output auto-scrolls into view.
- If I have scrolled up (by mouse wheel, scroll bar drag, page-up, etc.), auto-scrolling stops until I either return to the bottom or click a "Jump to latest" affordance.
Error Messages/Logs
Steps to Reproduce
- Start a long task in Auto mode (e.g. "scaffold a multi-service project end-to-end").
- While Claude is mid-task, scroll up to read an earlier message — say, an explanation block from a few tool calls ago.
- Observe that as soon as Claude streams the next line of output, the view jumps down by one line. Trying to read the earlier message becomes impossible — the lines I'm reading slide off the top while I'm reading them.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude 1.4758.0 (fb266c) 2026-04-24T20:22:30.000Z
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗