[BUG] Intermittent terminal rendering corruption in VS Code (text selection forces a partial re-render)
Preflight Checklist
- [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?
Output from claude in the VS Code integrated terminal intermittently becomes garbled. Clicking and dragging over the affected region forces a partial repaint and makes the text readable again, which points to a terminal renderer issue rather than malformed output from Claude Code.
What Should Happen?
Terminal output should render cleanly without requiring user interaction to force a repaint.
Steps to Reproduce
Intermittent and non-deterministic. There are no reliable repro steps. Not correlated with any specific command or output length I can identify. Happy to test alternative renderer settings if useful.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Claude Code Version
2.1.143
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
VS Code integrated terminal
Additional Information
Visual symptoms
See screenshot. Latin characters are replaced with fallback Unicode glyphs, but layout, colours, and Claude Code's UI elements all render correctly. Consistent with glyph cache / texture atlas corruption, not malformed output.
<img width="1123" height="837" alt="Image" src="https://github.com/user-attachments/assets/5ef6a533-99f8-4289-a6fa-941f064e09d4" />
Key diagnostic observation
Selecting the garbled text forces a repaint of the highlighted region, which makes it readable. Releasing the selection often reverts the area to its garbled state.
Prior reports
Several similar reports have been filed over the past year, many closed without resolution. Happy to link them if it helps consolidate the investigation.
17 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Maybe related. I posted repro steps in #59163: switching macOS Spaces
and coming back to the terminal. Same VSCode integrated terminal,
claude 2.1.143.
One extra data point for the selection/repaint behavior you describe:
I am a Korean user, so my buffer has mix of English and Hangul. After
the bug hits, dragging to force repaint recovers English text mostly,
but Korean only partially. Looks like CJK / wide chars get worse cache
corruption than ASCII. Fullscreen mode doesn't avoid the bug either.
Environment
Symptoms
Claude Code output in the VS Code integrated terminal intermittently becomes garbled. Latin characters are replaced with fallback glyphs, but layout, colours, and Claude Code UI elements (boxes, status indicators, the
accept edits on …footer, the recap header) all render correctly. Consistent with a glyph cache / texture atlas issue rather than malformed output from Claude Code.Key diagnostic — matches OP
Clicking and dragging to select the garbled region forces a partial repaint and the text becomes readable again. This reproduces reliably on the corrupted output, so the underlying byte stream from Claude Code is correct — only the rendered glyph cache is bad.
Trigger observations on my side
Workaround that does help
Screenshot attached.
<img width="1602" height="387" alt="Image" src="https://github.com/user-attachments/assets/c1589205-8cb6-4307-96ee-591b312004b7" />
+1 face the same issue frequently!
+1 face same issue
+1 !
VS Code, Win 11, Claude Code v2.1.145 - impossible to work
+1
Mac, VS Code, 2.1.146 (Claude Code)
Started occurring after installing the superpowers plugin, although it's most probably not related.
+1
VS Code, macOS Tahoe 26.5, 2.1.146 (Claude Code)
I am also affected:
<img width="674" height="158" alt="Image" src="https://github.com/user-attachments/assets/1b446fe4-2031-40a6-99b4-ac8b6d921f44" />
VS Code v1.121.0, macOS Tahoe 26.5, Claude Code v2.1.146, zsh 5.9 (arm64-apple-darwin25.0)
This was originally reported in #59163, but was closed as it could be resolved by switching to another monitor (GPU issue, not Claude Code) - however I'm back in the issues tab as I am still seeing this problem with Claude Code 2.1.148 and it is not always solvable by moving to another monitor (which does work in most cases)
Confirming on the latest release, 2.1.150 — reports here stop around 2.1.146–2.1.148, so a newer data point: still not fixed. Version is visible in-frame via
claude --versionin screenshot 1.Screenshot 2 confirms the select-to-repaint behavior this issue is about: same frame, text selected → redraws clean, with a few lines left unselected at the top still corrupted. The buffer is intact; it's the glyph-atlas mis-render described above.
<!-- DRAG SCREENSHOT 1 HERE -->
<img width="1076" height="1918" alt="Image" src="https://github.com/user-attachments/assets/99cd4dfa-32b4-4d62-82ee-94c6c245155b" />
<!-- DRAG SCREENSHOT 2 HERE -->
<img width="1084" height="1919" alt="Image" src="https://github.com/user-attachments/assets/40cfee1d-f0af-4d55-a8ad-99ff0a85cf50" />
Why this is a Claude Code regression, not purely upstream (re: the reasoning that closed #59163):
So even if the mis-render lives in xterm.js, Claude Code triggers it and can mitigate it further, as 2.1.144 began to. Please keep this tracked on the Claude Code side rather than deferring it entirely upstream.
Workaround
Downgrade to the last clean version, 2.1.140:
Then pin it so the auto-updater doesn't bump you back, in
~/.claude/settings.json:2.1.150 · Windows 11 · VS Code integrated terminal (ConPTY) · PowerShell 7.6.1Aside from reverting to
2.1.140, another workaround that people have reported success with is to disable GPU acceleration for VS Code's terminal, by settingterminal.integrated.gpuAccelerationtooff(see linked issues).I assume doing this will likely have some impact on performance and battery life.
edit: 2 weeks later, I can confirm that making this change has prevented the issue from recurring for me; I have not seen garbled text again since disabling GPU acceleration. This is still a workaround, I certainly wouldn't call it a fix.
Workaround:
+1
+1
1+
vscode://settings/terminal.integrated.gpuAcceleration
Disabling terminal gpu Acceleration fixed it for me
<img width="738" height="358" alt="Image" src="https://github.com/user-attachments/assets/bfa9235c-1a5d-4548-91a6-1cc001df148d" />