[BUG] After the recent updates Claude Code jumps and loses track of scroll position in Terminal window
Open 💬 39 comments Opened Jan 15, 2026 by woerndl
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?
After the recent updates meant to fix terminal flickering, Claude Code no longer reliably maintains the scroll position when navigating/scrolling up in chat history. At the time of writing, v2.1.7 is the latest version.
This behavior is most pronounced when the Terminal window (iTerm 2 in my case) loses or regains focus on my end. It’s maddening when trying to copy parts of the conversation.
What Should Happen?
Claude Code should keep the scroll position stable when you scroll up, enter, or leave the Terminal window.
Error Messages/Logs
Steps to Reproduce
- Update to the latest version of Claude Code; at the time of writing, v2.1.7
- Start a conversation in iTerm2 (my version Build 3.6.6) that triggers a response that spans multiple Terminal window heights in plan mode (Plan mode is important)
- Scroll to a specific position in the conversation
- Leave and/or re-enter the window
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Before the flickering fixes, I can't pinpoint the exact version, but it was before the major version jump
Claude Code Version
v2.1.7
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
_No response_
39 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Having the same issue on my mac in 2.1.7, the scrolling is so bad that every character you type can cause the scrolling. AS the context gets bigger it will crash the terminal and if running in vscode terminal, it will crash vscode. This is a constant issue with claude code, I really wish you'd folks do something about it.
I'm seeing terrible UI output with stable 3.6.6 version of iTerm2. I think this started happening around v2.1.5 of Claude, but it's still an issue in latest v2.1.9. What i'm seeing is just scrolling out of control as the output is displayed, scrollbar just starts going, text flies up. Then when it stops, sporadic newlines cause the output to look garbled.
I've temporarily switched to Ghostty (stable) and it's fine there with v2.1.9, so seems specific for iTerm2 for me. I
Btw, I also tested by going back to latest v2.1.4 of Claude and had no issues in iTerm2, but there are a couple of newere features i wanted to test, so Ghostty it is for now.
Note that this is especially severe in plan mode. Plan mode is essentially broken in iTerm2 as of now. Updated my initial problem description around this.
same here, with Claude Code v2.1.9. When it happens, it reproduces 10/10, but in some sessions it doesn't happen at all.
same issue
I see the same issue, though with Ghostty. Note:
scroll-to-bottomsetting is alreadykeystroke,no-outputby default, so this appears to be caused by Claude Code's TUI layer responding to focus-out eventsI'm on 2.1.12 w/ghostty and the formatting is completely broken. Especially after using menus.
Yes, I've been pasting the plan into a text editor and modifying it there and pasting it back. Because there's no way to read it in iTerm at the moment. This is a very annoying bug, please prioritize.
same issue, using version 2.1.14 in iterm2 with zsh on macOS
It was temporarily better for me, but v2.1.17 brought the problem back to the full extent. QC is just horrendous.
Yeah this one is killing my workflow, I frequently cmd+tab between iTerm, which has the plan, to vscode, where I'm taking notes for my plan review.
I managed to narrow it down to the intro header flickering between the compact intro and the extended intro that contains release notes etc. every time it flickers on focus my iterm scrolls to the top.
(this may or may not be what's causing the issue for other people)
The compact version
The big version
I tried setting
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"in my env because I thought it might kill the requests for the "what's new" but it doesn't seem to have workedI'm seeing a bug somewhat related to this - when I press up (pulling up conversation from before) while CC is running a task, the screen will keep flickering and the screen will start flickering and aggressively scrolling back and forth. It can be fixed by going to a shorter instruction, but I think a long one in the chat window will cause it.
Having same issue on windows - https://github.com/anthropics/claude-code/issues/20511
still: same issue on windows!
when will this major annoyance be fixed? 🤨
many people seem to have this issue. please also consider the numerous duplicate issues
this seems to be fixed in recent versions, e.g. on v1.0.69 🎉
~~A workaround for iTerm2 until the issue is properly fixed in Claude Code:~~
~~Settings -> Advanced -> Terminal -> disable "App may turn on Focus Reporting"~~
UPD. It appears the issue wasn't reproducing for me in certain cases and I linked that to the setting I changed. It doesn't help after all, sorry for the noise.
Still experiencing this on Windows with Claude Code v2.1.76.
Environment:
Reproduction:
What I've tried (no effect):
snapOnInput: falsein Windows Terminal profileNotes:
platform:macosbut this is clearly cross-platform ΓÇö multiple Windows users are reporting the same behavior (see also #20511, #24790)Adding another data point from a Windows + Git Bash environment since most reports here are macOS/iTerm2. Would appreciate the
platform:windowslabel being added.This comment was drafted with the help of Claude Code.
I have the same issue on Windows with Claude Code v2.1.76 too.
This is related to #826. The uncontrolled scrolling comes from Claude Code's full screen redraws during long streaming responses. I built a proxy called https://github.com/FurbySoup/quell that intercepts these redraws and strips the clear-screen sequence so scroll position stays stable. Single Windows exe, zero config — quell claude.
More technical detail in my comment on #826.
This issue has returned, it was fixed for a while, but reappeared last week for me.
Happening on
same here 🤚
For any Windows users that happen through here, a stop-gap fix was created by someone in the community:
https://github.com/FurbySoup/quell
Adding a Ghostty-specific data point: this isn't just a focus/blur issue. In Ghostty, the viewport scrolls to bottom on every TUI redraw — the status line spinner, streaming output, etc. Even with Ghostty's
scroll-to-bottom = no-output, no-keystroke, it still scrolls. The escape sequences Claude Code's TUI emits seem to bypass the terminal's scroll-on-output settings entirely. This makes reviewing previous output essentially impossible while Claude is doing anything.Just want to echo the request to please please address this. Not being able to read through the reasoning in my own scroll buffer is a huge step backwards. Would also be great if compaction didn't automatically clear my terminal's scroll buffer (I was using that!), but not being able to follow along with claude's reasoning / approach is a massive regression that makes it impossible to trust Claude's reasoning or interrupt it when necessary.
A fix for this is available as a Claude Code plugin: https://github.com/anthropics/claude-code/pull/35683
The scroll-fix plugin clamps cursor-up sequences within synchronized output blocks to the viewport height, preventing the terminal from scrolling to the top. Also includes Ctrl+6 freeze toggle for manual scroll control. Works on all platforms and terminals.
subscribing, please fix this is maddening. how to get someone from Anthropic to actually view this? Seems like low hanging fruit. but wow, 5000 issues most I've ever seen :D
A fix is available as a Claude Code plugin: scroll-fix
Install:
Root cause: both Ink renderer AND readline/prompt system emit cursor-up sequences exceeding viewport height. The plugin clamps all cursor-up per write call. Also includes Ctrl+6 freeze toggle.
PR: https://github.com/anthropics/claude-code/pull/35683
There are so many of these "fixes" that don't seem to actually tackle this at broad scope. Your fix is niche, and needs to specify what environment, CLI, etc it actually targets. The issue is far more technical than most realize, and you aren't the first one to note they created a fix and direct people to install their magic.
I'm not knocking the fixes people are vibing out, but it's turning into the wild west and there is no communication between all these cats releasing them. Might be a good idea to get together and tackle this in a more communal fashion - unless capturing the niche need for this fix is a driver for attribution or something.
This bug is killing me. Please don't make me stop using iTerm 😢
macos, iTerm2, zsh, oh-my-zsh.
Godspeed fixing it.
Still broken as of v2.1.81:
https://github.com/anthropics/claude-code/issues/36582
https://github.com/anthropics/claude-code/issues/35403
https://github.com/anthropics/claude-code/issues/36816
https://github.com/anthropics/claude-code/pull/35683
https://github.com/anthropics/claude-code/issues/33814
https://github.com/anthropics/claude-code/issues/34845
https://github.com/anthropics/claude-code/issues/33367
https://github.com/anthropics/claude-code/issues/34400
https://github.com/anthropics/claude-code/issues/826
https://github.com/anthropics/claude-code/issues/36621
https://github.com/anthropics/claude-code/issues/36128
https://github.com/anthropics/claude-code/issues/35766
https://github.com/anthropics/claude-code/issues/34242
https://github.com/anthropics/claude-code/issues/18299
It's so annoying man. I scroll up a little bit just to check what Claude said and BAM: top of the terminal and have to scroll all the way down again. This can't be that hard to fix, right?
Not at all, there's already been fixes provided by people who reverse-engineered the bug. The hard part is getting Anthropic to care.
v2.1.78 same issue using Windows Terminal
very annoying indeed
Hi, that's me, I'm people trying to fix this 👀
Quell is a terminal proxy that sits between your terminal and Claude Code. It intercepts the VT output, tracks screen state internally, and only forwards what actually changed — so the full-screen redraws that cause the jumping never reach your terminal.
How to try it (takes ~30 seconds):
Or grab a prebuilt binary from the releases page.
What it fixes:
ESC[3Jerase sequencesKnown limitations of the CLI version:
I'm also working on a standalone GUI version (Tauri + xterm.js) that gives full control over the rendering pipeline and avoids the host terminal layer entirely. That's close to a public release. If you want to follow progress, the repo is at https://github.com/FurbySoup/quell.
Happy to answer questions if anyone runs into issues getting it set up.
Same issue here on Tabby (Windows terminal) with Claude Code running in WSL2.
The scroll jump happens consistently when Claude Code redraws the UI — most noticeably when it displays a confirmation prompt or asks a question mid-conversation. The terminal viewport snaps back to the top of the conversation, forcing a manual scroll down or a focus-in/out cycle to recover.
This matches the behavior described in this issue and appears to be a TUI-layer problem rather than terminal-specific.
Also flagging two similar issues on MacOS and Windows :
### Environment - Claude Code v2.1.89
### Description
When launching subagents (Agent tool), the entire conversation history above gets wiped from the terminal display. Only the header and the latest prompt remain visible — cannot scroll up to
see previous messages or responses.
This happens consistently when subagents are dispatched, without any compaction taking place. The conversation context appears to be preserved internally (Claude still "remembers" prior
context), but the visual history in the terminal is gone.
### Steps to reproduce
### Screenshot
<img width="1374" height="244" alt="Image" src="https://github.com/user-attachments/assets/09f037b5-f96a-4899-a01b-12b6219906ea" />