[BUG] Windows: cmd (Command Prompt) rendering issue - text overlapping and garbled display since v2.1.3~v2.1.5
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?
Text display issues on Windows terminals since v2.1.3:
- cmd (Command Prompt) - SEVERE:
- Text completely garbled and overlapping
- Multiple lines render on top of each other
- UI elements duplicated and overlap
- Unusable
- PowerShell - MINOR:
- Small rendering glitches (extra characters like
Sappearing at line starts) - Some minor artifacts
- Still usable but not perfect
Symptoms:
- Text overlapping: Multiple lines of text render on top of each other (e.g.,
Reada28nlinesinstead of proper separate lines) - UI elements duplicated: Elements like
accept edits on (shift+tab to cycle)appear twice and overlap - Cursor position errors: New content writes over old content positions
Environment:
- Claude Code Version: 2.1.14 (also reproduced on 2.1.5, 2.1.12)
- Installation Method: Native installer (~\.local\bin\claude.exe)
- OS: Windows
- Working Version: 2.1.2 (no issue in either terminal)
Screenshots:
<img width="1113" height="652" alt="Image" src="https://github.com/user-attachments/assets/eb9af1a6-c332-44c5-b812-3a891c1805fb" />
<img width="932" height="547" alt="Image" src="https://github.com/user-attachments/assets/f8e6ad37-d3df-4eaa-b240-7fcefb724d3b" />
PowerShell : MINOR issue
<img width="1104" height="890" alt="Image" src="https://github.com/user-attachments/assets/567402c9-4796-422a-add5-ef5a63973ec5" />
What Should Happen?
Text should display correctly without overlapping or garbling. Each line should render in its own position, and UI elements should not duplicate.
Error Messages/Logs
No error messages. This is a visual rendering issue - see attached screenshots.
Steps to Reproduce
- Install Claude Code v2.1.3 or later on Windows (native installer)
- Open cmd (Command Prompt)
- Run
claudeto start a conversation - Ask Claude to read some files or perform any tool operation
- Observe garbled/overlapping text in output
Note: Based on release notes analysis, the issue was likely introduced in v2.1.3 by this change:
> "Improved terminal rendering stability by preventing uncontrolled writes from corrupting cursor state"
Subsequent fixes in v2.1.6, v2.1.7, and v2.1.12 did not fully resolve this issue on Windows.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.2
Claude Code Version
2.1.14
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_
24 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This is a different issue.
#17050 shows text scattered across random screen positions (layout/positioning problem).
My issue shows text overlapping within the same lines - characters from different outputs merge together (e.g.,
Reada28nlines), and UI elements duplicate in place.Different symptoms:
Also, I've identified a regression point:
Terminal: cmd (severe) and PowerShell (minor glitches)
Additional Report - Windows 11 + Windows Terminal
Environment:
Symptoms:
Screenshot evidence: The terminal shows severe rendering corruption with text from different UI sections (welcome message, recent activity, status bar, input area) all overlapping in the same visual space.
Attempted workarounds:
~/.claude/settings.json→"statusLine": falseImpact: Makes Claude Code essentially unusable as the output cannot be read properly.
This appears to be the same issue as originally reported, confirming it affects the latest 2.1.17 version on Windows Terminal with Git Bash.
This issue persists in v2.1.19 as well. See #20784 for details on WSL2 Ubuntu 22 and Windows 10 CMD environments.
Can confirm I experience the identical issue. Windows 11. Terminal (command prompt). Experienced in versions 2.1.5, 2.1.7, and 2.1.9.
MacOS is broken for me too.
Environment
Problem Description
Issue 1: Claude Desktop App - Code tab shows black screen
Issue 2: Claude Code CLI v2.1.x hangs on Windows
claudecommand shows no output (blank/frozen)claude --versionandclaude --helpworkclaude -p "hello"hangs with no responseWhat works
Steps to Reproduce
npm install -g @anthropic-ai/claude-codeclaudeWorkaround
Downgrade to v2.0.50:
Expected Behavior
Claude Code should display the interactive TUI properly on Windows.
---
Feedback to Anthropic Team
I am a paying customer ($118 USD/month) and I have been struggling with this issue for 2+ days. This has completely blocked my development work.
Problems with this situation:
Requests:
This is frustrating for customers who rely on Claude Code for their daily work.
Screenshots
[Attach your screenshots here]
<img width="1930" height="268" alt="Image" src="https://github.com/user-attachments/assets/5f098703-0b69-4dfe-aa6c-bd76134be2e5" />
Same issue here on 2.1.23 - Claude Code is basically unusable on Windows right now.
Have you tried using Windows Terminal? I'm on Windows 10 with Windows Terminal and don't experience this issue with v2.1.23. See #21156 for a similar discussion.
I'm using Powershell inside vscode.
claude team are went for holidays even they are not responfing to mails
Version 2.1.27 still has this issue; 2.1.2 is the last working version.
Version 2.1.29 still has this issue!
I installed v2.1.2 to avoid this, but it switched from npm to native installer for me, then I found it is still not fixed.
frustrated...
<img width="994" height="522" alt="Image" src="https://github.com/user-attachments/assets/bd682e01-1eaf-49d9-a3dc-ade5b8887470" />
你试试windows终端,不用cmd,我换成windows终端后,没这个问题了。
👍
<img width="1280" height="1046" alt="Image" src="https://github.com/user-attachments/assets/e45e1e1c-e8f6-4a93-b753-7fb9fdc6fbae" />
cmd对utf-8、emoji等支持不好,windows终端是新写的。
Unusable also on MacOS
Generate a long warning (100+ chars), python code block, and table。
这句话贴claude code去运行 百分白重现bug
Additional Report - Vertical (Single-Character-Per-Line) Rendering Variant
Environment:
claude.exeat~\.local\bin\).batfile), also reproduced in Windows Terminal + CMD profileSymptoms:
This is a different variant from the text-overlapping issue. The status bar and UI text render vertically, one character per line, instead of horizontally:
Expected:
16:16 | Opus 4.6 | Projects | no-git(single horizontal line)What did NOT fix it:
set TERM=dumb- Ink TUI ignores thisset NO_COLOR=1- No effectset COLUMNS=120/set LINES=30- No effectWorkaround that WORKS:
Launch Claude Code via PowerShell instead of CMD.exe:
PowerShell's VT100 parser handles the ANSI escape sequences correctly, while CMD.exe's legacy console host misinterprets cursor positioning sequences, causing each character to appear on a new line.
Root cause analysis:
This issue started after the automatic npm to native installer migration. The previous npm-based
claude(launched via Node.js/npx) worked fine in CMD.exe. The new nativeclaude.exebinary initializes ConPTY differently, which is incompatible with CMD.exe's console host.Timeline:
claudeworked fine in CMD.execlaude.exe)Seeing a similar artifact on Windows 10 + Windows Terminal + PowerShell (Claude Code latest).
When running
git merge --no-ffwith a multi-line heredoc commit message via the Bash tool, the spinner/status indicator text bleeds into the command output:instead of:
The "Puz" prefix appears to be residual spinner characters that weren't cleared before the output was rendered. This is the "minor" PowerShell variant described in the original report — small artifacts from spinner text overlapping with command output.
Screenshot:
The artifact appears on the line showing the merge strategy, with spinner characters prepended to the git output.
Still reproduces on v2.1.107 — Windows 11 Pro, Windows Terminal + PowerShell.
Symptom matches the "text overlapping within same lines" variant: a band of garbled/smeared text with residual highlight background appears mid-transcript during streaming output (plan mode content in my case, with long wrapped lines). So the workaround of "use Windows Terminal + PowerShell instead of cmd" no longer avoids it — it reproduces in that environment too.
This issue is marked as a windows issue, but I've been seeing this on Mac for the last few weeks. Whenever
/clearor/compactis called it corrupts the output. Anecdotally I can say it happens whenever the agent tries to clear the screen. This is the closest issue that I've seen for this issue. The only way to fix this is to close the session and reload the session. This has been extremely annoying.Let me know if it should remain on this ticket or you want to look at this seprately.
If it's helpful the terminal is Ghostty.
Adding a fresh data point: this is still happening on
2.1.181(Windows 11 Enterprise, native installer at~/.local/bin/claude.exe, Git Bash inside Windows Terminal, modelclaude-opus-4-8).The specific manifestation that surfaces it for me is the
AskUserQuestionmulti-question code path: when the model batches 2+ questions in a single picker, the resulting TUI overlay garbles — questions/options visually merge, checkbox states drift between questions, navigation hints duplicate. Single-question calls render fine.That symptom was previously filed as #20795 in January 2026 and closed-as-duplicate-of-this issue 3 days later. As of June 2026 (5 months later) it's still happening. Filed a fresh issue at #69294 with the
2.1.181repro details and a list of related open issues (#62493, #67426, #68082, #65967, #62657, #10258), but pointing back here so the data point stays attached to the umbrella bug.Workaround the end-user has been forced into: telling the model in
CLAUDE.mdto "never batch 2+ questions in a single AskUserQuestion call", which means structured forced-choice input on Windows is permanently degraded to one-decision-per-turn.Corroborating data point — a different terminal, same signature.
Environment:
@xterm/*addons) over node-pty 1.1.0 / ConPTYI'm hitting the overlapping/garbled output described here, but on a standalone xterm.js terminal rather than cmd.exe. xterm.js is already represented in this thread via the VS Code and Cursor integrated terminals; Orca is another, independent xterm.js + ConPTY host — a dedicated desktop terminal rather than an editor's embedded one. So the signature now spans native Windows consoles (cmd.exe, PowerShell) and several separate xterm.js hosts (VS Code, Cursor, Orca), plus tmux (#29937) and Ghostty (#55089) via the cross-refs. The common factor across all of them is Claude Code, not any one terminal.
What it looks like: output lines draw on top of each other, characters double up ("documents" comes out "docdocs", "inventory" as "invntory"), and a column of stray leftover characters is stranded at the right edge — the tail ends of earlier, wider lines that never got erased. This looks like a right-edge-specific version of the "band of garbled text with a residual highlight background during streaming" reported earlier in this thread (Avimarzan, 2.1.107); in my case the leftover cells cluster at the right margin.
When it happens: under heavy concurrent output. I run several Claude Code background agents at once on a 4-core box, and it garbles when they're all streaming at the same time and the machine is CPU-saturated. Idle output is clean. I haven't reduced it to a single controlled repro, so treat the load correlation as an observation, not a measurement.
Steps to reproduce (rough):
It's a paint bug, not data loss:
Ctrl+Lforces a full repaint and the screen comes back completely clean — the underlying content was intact the whole time, only the on-screen paint was wrong. That's consistent with the renderer's model of the cursor and line width drifting from the terminal's actual grid, so later erase-to-end-of-line and cursor moves land in the wrong place. (Contrast with #29937, where Ctrl-L does not help because the corruption lives in Ink's virtual buffer — here a repaint fixes it, which points at a different failure locus.)Version note: I'm on 2.1.198, the latest (the highest I saw in this thread was 2.1.181). The rendering fixes in 2.1.144 ("garbled glyphs in very long sessions"), 2.1.147 ("stale/doubled rows on Windows background sessions"), and 2.1.154 ("fullscreen TUI corruption") are already in my build and don't cover this path. It also lines up with the v2.1.3 "preventing uncontrolled writes from corrupting cursor state" change pinned here as the regression point — same subsystem.
Related: #55089 (streaming cursor-position drift, closed as duplicate) and #29937 (Ink cached-position drift under tmux).