[BUG] Desktop app: chat window auto-scrolls to bottom during streaming even when user has scrolled up
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?
This affects the Claude Code Desktop app on Windows (not the CLI / terminal version).
While Claude is streaming a response (token-by-token / phrase-by-phrase), the
chat window force-scrolls to the bottom on every update. This happens even when
I have explicitly scrolled up to read earlier content — including scrolling all
the way to the top of the conversation. The viewport is yanked back down on
every new chunk, making it impossible to read previous messages while a
response is being generated.
This started in recent versions; older builds of the desktop app did not behave
this way.
What Should Happen?
Standard "sticky bottom" behavior used in terminals, chat apps and IDE chat
panels:
- If the user is at the bottom of the scroll
container, auto-scroll to follow new streaming content.
- If the user has scrolled up beyond that threshold, do NOT auto-scroll. Leave
the viewport exactly where the user put it.
- Optional: show a "jump to bottom" button / new-message indicator so the user
can opt back in with a single click.
This is the same UX that was already shipped for the VSCode extension via
issue #11092 ("Auto-scroll should pause when user scrolls up in chat",
closed completed on 2025-11-12). The desktop app appears to be missing that
fix (or has regressed it).
Error Messages/Logs
Steps to Reproduce
- Open Claude Code Desktop app on Windows.
- Send a prompt that produces a long streamed response (e.g. ask for a
detailed explanation, or run an agent task that emits a lot of streaming
output).
- While the response is still streaming, scroll up to read an earlier part
of the conversation — even all the way to the top.
- Observe: the viewport jumps back toward the bottom on every new chunk the
model emits. There is no way to keep the viewport stationary until
streaming finishes.
Expected: viewport stays where the user put it.
Actual: viewport is yanked down on every streaming update.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
app-1.3561.0
Claude Code Version
app-1.4758.0
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗