[BUG] TUI rendering completely broken in WSL2 - scattered/misaligned UI elements (v2.0.76)
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?
Two issues with TUI in WSL2:
- Broken rendering: ASCII art and menu options are scattered/misaligned across the screen (see screenshots). The welcome screen is completely garbled.
- Keyboard input not captured:
- Pressing Enter doesn't select an option - it just adds a newline to the terminal (as if TUI isn't capturing the keypress)
- Arrow keys partially work - pressing Down moves the selection AND triggers a screen redraw, which duplicates the entire menu on screen (see screenshot 2 showing two copies of the menu)
- Cannot proceed past the theme selector at all
- Config file ignored: Setting
"theme": "dark"in~/.claude.jsondoesn't bypass the theme selector - it still prompts on every startup.
Key observation: claude --print "test" works perfectly, confirming this is specifically a TUI/Ink rendering and input handling issue in WSL2.
What Should Happen?
The TUI should render correctly with properly aligned ASCII art, readable menu options, and a functional theme selector - similar to how it works in the VS Code/Cursor extension or with --print mode.
Error Messages/Logs
No error messages - the TUI loads but visual output is scattered/misaligned.
Steps to Reproduce
- Install Claude Code in WSL2:
npm install -g @anthropic-ai/claude-code - Run
claude - Observe broken rendering on theme selector screen
- Press Enter - note it creates a newline instead of selecting
- Press Down arrow - note the selection moves but screen redraws with duplicated content
- Cannot proceed past this screen
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.76 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Environment details:
- WSL2 with Ubuntu
- Node.js v22.21.1 (via nvm, confirmed Linux binary)
- Windows Terminal
What I've tried:
- Multiple Claude Code versions
- Different terminals (Windows Terminal, VS Code integrated terminal)
- Setting
TERM=xterm-256colorandCOLORTERM=truecolor - Confirmed using Linux Node.js (not Windows Node via PATH leak)
Workarounds that work:
claude --print "prompt"works correctly- Claude Code extension in Cursor works correctly
Related but different issues:
- #9114 is about hanging/freezing - my TUI loads but renders incorrectly
- v2.0.74 changelog says "[Windows] Fixed issue with improper rendering" but this doesn't cover WSL2
Screenshots attached showing:
- Screenshot 1: Initial broken rendering with scattered ASCII art and diagonal menu items
- Screenshot 2: After pressing Down arrow - selection moved to "Light mode" but screen duplicated the entire menu (broken version at top, slightly better version at bottom)
<img width="1710" height="765" alt="Image" src="https://github.com/user-attachments/assets/fa21fe17-d216-488f-b672-c1daf6a0d08f" />
<img width="1691" height="762" alt="Image" src="https://github.com/user-attachments/assets/9c86d08e-1e42-4c11-9f7d-3ced5e251a12" />
Config workaround attempted:
Added "theme": "dark" to ~/.claude.json - config is ignored, theme selector still appears on startup.
This appears to be two related bugs:
- TUI rendering/layout completely broken
- TUI not capturing Enter key input (goes to terminal instead of Ink)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗