[BUG] Terminal UI rendering corruption on Windows

Resolved 💬 5 comments Opened Jan 7, 2026 by kolesarp1 Closed Jan 8, 2026

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?

Bug: Terminal UI rendering corruption on Windows

Environment

  • Claude Code version: 2.0.76
  • OS: Windows 10 (Build 10.0.26100.7462)
  • PowerShell: 7.5.4
  • Windows Terminal: 1.23.13503.0
  • Also tested with Windows Console Host (conhost)

Description

The terminal UI becomes progressively corrupted during use. Text overlaps, duplicate lines appear, and the interface becomes unusable. The issue occurs in both Windows Terminal and the legacy Windows Console Host (conhost).

Symptoms

  • Multiple duplicate "Calculating..." / "Bloviating..." / "Moseying..." spinner lines stacking up
  • Bash command output appearing duplicated with misaligned text
  • "Running PreToolUse hooks..." text appearing in wrong positions (right side of screen)
  • Autocomplete menu rendering with overlapping/garbled entries
  • Status tables completely misaligned
  • Issue starts mild and progressively worsens during session

Steps to reproduce

  1. Launch Claude Code (claude) in any Windows terminal
  2. Run /status or any command that triggers hooks
  3. Continue using the CLI - UI corruption worsens over time

What I've tried (none fixed it)

  • Windows Terminal: Changed Graphics API to Direct2D
  • Windows Terminal: Changed Text measurement mode to "Windows Console"
  • Windows Terminal: Enabled software rendering (WARP)
  • Windows Terminal: Disabled partial Swap Chain invalidation
  • Switched to Windows Console Host (conhost) - same issue

Screenshots

<img width="1324" height="703" alt="Image" src="https://github.com/user-attachments/assets/c44480f6-947e-4e68-9a2c-07eff3435cb2" />

<img width="1327" height="708" alt="Image" src="https://github.com/user-attachments/assets/52ca480c-8b02-4754-bf29-bd9be157312d" />

<img width="981" height="516" alt="Image" src="https://github.com/user-attachments/assets/3746693b-c42c-4451-b7bf-12610560b9ee" />

<img width="1109" height="627" alt="Image" src="https://github.com/user-attachments/assets/1192f682-61ab-4c05-b5bc-3f708ba2c96b" />

Notes

  • Fresh session starts rendering correctly
  • Corruption accumulates with each command/hook execution
  • Appears to be an Ink renderer issue with cursor positioning or screen buffer management on Windows

What Should Happen?

The terminal UI should render cleanly with:

Single spinner line ("Calculating...", "Bloviating...", etc.) that updates in place
Bash command output displayed once, properly aligned
Hook status ("Running PreToolUse hooks...") appearing in correct position
Autocomplete menu rendering without overlap
Status tables properly aligned

Error Messages/Logs

No error messages - this is a visual rendering issue. The UI becomes progressively corrupted:

Spinner lines stack vertically instead of updating in place (20+ duplicate lines)
"Running PreToolUse hooks..." text appears misaligned on the right side
Bash commands appear duplicated
Autocomplete suggestions overlap and become unreadable
Status command output completely garbled

Environment:
Claude Code: 2.0.76
OS: Windows 10 Build 10.0.26100.7462
PowerShell: 7.5.4
Windows Terminal: 1.23.13503.0
Also tested: Windows Console Host (conhost) - same issue

Steps to Reproduce

Install Claude Code 2.0.76 on Windows
Open any terminal (Windows Terminal or conhost)
Run claude in a project directory with hooks configured
Type status or /status
Observe UI starts rendering correctly initially
Continue using CLI - run a few more commands, type /sta to trigger autocomplete
UI corruption worsens progressively - spinner lines duplicate, text overlaps, layout breaks

Minimal hook config that triggers the issue (.claude/settings.json):
json{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": ["command"]
}
]
}
}
Note: Issue occurs even without custom hooks, but hooks accelerate the corruption. The rendering degrades with each screen update.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.76

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

What I've tried (none fixed it):

Windows Terminal: Changed Graphics API from Automatic to Direct2D
Windows Terminal: Changed Text measurement mode from "Grapheme clusters" to "Windows Console"
Windows Terminal: Enabled "Use software rendering (WARP)"
Windows Terminal: Enabled "Disable partial Swap Chain invalidation"
Switched to Windows Console Host (conhost) - same issue occurs
Ran via Command Prompt with pwsh -c claude - same issue

Observations:

Fresh session starts rendering correctly for the first few seconds
Corruption accumulates with each command/screen redraw
Hooks seem to accelerate the issue but it happens without hooks too
Issue appears to be Ink renderer miscalculating cursor positions or not clearing previous frames properly on Windows
The right-side aligned "Running PreToolUse hooks..." text suggests column calculation is broken

Possibly related:

Ink (React for CLI) has known issues with Windows terminal rendering
May be related to how ANSI escape sequences for cursor movement are handled on Windows

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗