[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

  1. Update to the latest version of Claude Code; at the time of writing, v2.1.7
  2. 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)
  3. Scroll to a specific position in the conversation
  4. 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_

View original on GitHub ↗

39 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/17992
  2. https://github.com/anthropics/claude-code/issues/826
  3. https://github.com/anthropics/claude-code/issues/17056

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

joeperuzzi · 6 months ago

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.

rhukster · 6 months ago

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.

woerndl · 6 months ago

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.

fabriph · 6 months ago

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.

festoinc · 6 months ago

same issue

jberdine · 5 months ago

I see the same issue, though with Ghostty. Note:

  • This occurs when Claude Code is completely idle - no output being generated
  • No terminal resize is involved
  • Ghostty's scroll-to-bottom setting is already keystroke,no-output by default, so this appears to be caused by Claude Code's TUI layer responding to focus-out events
esafak · 5 months ago

I'm on 2.1.12 w/ghostty and the formatting is completely broken. Especially after using menus.

abiusx · 5 months ago
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.

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.

davz13 · 5 months ago

same issue, using version 2.1.14 in iterm2 with zsh on macOS

woerndl · 5 months ago

It was temporarily better for me, but v2.1.17 brought the problem back to the full extent. QC is just horrendous.

anguskeatinge · 5 months ago

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

 ▐▛███▜▌   Claude Code v2.1.17
▝▜█████▛▘  Opus 4.5 · Claude Max
  ▘▘ ▝▝    ~/code/repo

The big version

╭─── Claude Code v2.1.17 ────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                    │ Recent activity                                                   │
│                 Welcome back Angus!                │ 1d ago  Lorem Ipsum                                               │
│                                                    │ 2d ago  Lorem Ipsum                                               │
│                                                    │ 1w ago  Lorem Ipsum                                               │
│                                                    │ /resume for more                                                  │
│                       ▐▛███▜▌                      │ ───────────────────────────────────────────────────────────────── │
│                      ▝▜█████▛▘                     │ What's new                                                        │
│                        ▘▘ ▝▝                       │ Fixed crashes on processors without AVX instruction support       │
│   Opus 4.5 · Claude Max · angus@email.com's        │ Added new task management system, including new capabilities lik… │
│   Organization                                     │ [VSCode] Added native plugin management support                   │
│              ~/code/repo                           │ /release-notes for more                                           │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

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 worked

dairyqiu · 5 months ago

I'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.

radaco99 · 5 months ago
DevTRCO · 5 months ago

still: same issue on windows!

markus-codewrangler · 5 months ago

when will this major annoyance be fixed? 🤨
many people seem to have this issue. please also consider the numerous duplicate issues

markus-codewrangler · 5 months ago

this seems to be fixed in recent versions, e.g. on v1.0.69 🎉

abusalimov · 5 months ago

~~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.

kyle-sog · 4 months ago

Still experiencing this on Windows with Claude Code v2.1.76.

Environment:

  • Windows 11 (MINGW64)
  • Windows Terminal + Git Bash
  • Font size: 15

Reproduction:

  • Occurs consistently once the conversation history gets long enough
  • When Claude adds new messages (streaming output), the viewport jumps to the very top of the scroll buffer
  • Have to manually scroll back down to see the new output

What I've tried (no effect):

  • Setting snapOnInput: false in Windows Terminal profile
  • Adjusting history buffer size (currently 32767)

Notes:

  • The issue labels say platform:macos but this is clearly cross-platform ΓÇö multiple Windows users are reporting the same behavior (see also #20511, #24790)
  • Gets progressively worse as conversation length increases

Adding another data point from a Windows + Git Bash environment since most reports here are macOS/iTerm2. Would appreciate the platform:windows label being added.

This comment was drafted with the help of Claude Code.

tranleo148 · 4 months ago
Still experiencing this on Windows with Claude Code v2.1.76. Environment: Windows 11 (MINGW64) Windows Terminal + Git Bash Font size: 15 Reproduction: Occurs consistently once the conversation history gets long enough When Claude adds new messages (streaming output), the viewport jumps to the very top of the scroll buffer Have to manually scroll back down to see the new output What I've tried (no effect): Setting snapOnInput: false in Windows Terminal profile Adjusting history buffer size (currently 32767) Notes: The issue labels say platform:macos but this is clearly cross-platform ΓÇö multiple Windows users are reporting the same behavior (see also [[BUG] Chat Header UI Issue #20511](https://github.com/anthropics/claude-code/issues/20511), [[BUG] Scroll position incorrect on startup, auto-jumps to top when scrolling (Windows PowerShell) #24790](https://github.com/anthropics/claude-code/issues/24790)) Gets progressively worse as conversation length increases Adding another data point from a Windows + Git Bash environment since most reports here are macOS/iTerm2. Would appreciate the platform:windows label 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.

FurbySoup · 4 months ago

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.

JamesMahy · 4 months ago

This issue has returned, it was fixed for a while, but reappeared last week for me.

Happening on

  • Windows (Tabby, Bash)
  • MacOS - zsh
  • Ubunutu - Bash
markus-codewrangler · 4 months ago

same here 🤚

Derjyn · 4 months ago

For any Windows users that happen through here, a stop-gap fix was created by someone in the community:

https://github.com/FurbySoup/quell

chriscoey · 4 months ago

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.

mscottnelson · 4 months ago

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.

cruzlauroiii · 4 months ago

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.

brokenalarms · 4 months ago

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

cruzlauroiii · 4 months ago

A fix is available as a Claude Code plugin: scroll-fix

Install:

/plugin marketplace add cruzlauroiii/claude-code
/plugin install scroll-fix@cruzlauroiii-plugins

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

Derjyn · 3 months ago
A fix is available as a Claude Code plugin: scroll-fix

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.

seanodonnell-udisc · 3 months ago

This bug is killing me. Please don't make me stop using iTerm 😢

macos, iTerm2, zsh, oh-my-zsh.

Godspeed fixing it.

Danielvandervelden · 3 months ago

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?

nullbio · 3 months ago
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.

Mlekow · 3 months ago

v2.1.78 same issue using Windows Terminal

taivu · 3 months ago

very annoying indeed

FurbySoup · 3 months ago
> 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.

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):

cargo install quell-cli
quell claude

Or grab a prebuilt binary from the releases page.

What it fixes:

  • The viewport snapping to top during streaming responses
  • Scrollback destruction from ESC[3J erase sequences
  • The full-screen flicker from Ink's 30fps redraw cycle

Known limitations of the CLI version:

  • Windows only (ConPTY is the core of the fix)
  • Some remaining less severe scroll jumping and conversation re-printing on long sessions (complete fix seems to be blocked by this bug)
  • Resizing the terminal during active streaming can cause brief duplication — this is a ConPTY reflow behaviour, not a quell bug
  • It's a proxy, not a terminal replacement — you're still subject to your host terminal's rendering quirks

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.

stauvel · 3 months ago

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 :

  • anthropics/claude-code#36816 — Windows Terminal / Git Bash, same frantic scroll-to-top during streaming
  • anthropics/claude-code#36582 — macOS / zsh, same auto-scroll to top on long conversations (also references PR #35683 as a potential fix but it changes the marketplace :/ )
jafresco · 3 months ago

### Environment - Claude Code v2.1.89

  • Windows 11 (10.0.26200)
  • VS Code integrated terminal
  • Opus 4.6 (1M context), Claude Max plan

### 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

  1. Start a conversation in Claude Code CLI
  2. Have a few exchanges (questions/answers)
  3. Send a prompt that triggers subagent launches
  4. Previous conversation history disappears from terminal — cannot scroll back

### Screenshot

<img width="1374" height="244" alt="Image" src="https://github.com/user-attachments/assets/09f037b5-f96a-4899-a01b-12b6219906ea" />