[BUG] TUI rendering completely broken in WSL2 - scattered/misaligned UI elements (v2.0.76)

Resolved 💬 3 comments Opened Jan 6, 2026 by TheDechev Closed Jan 6, 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?

Two issues with TUI in WSL2:

  1. Broken rendering: ASCII art and menu options are scattered/misaligned across the screen (see screenshots). The welcome screen is completely garbled.
  1. 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
  1. Config file ignored: Setting "theme": "dark" in ~/.claude.json doesn'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

  1. Install Claude Code in WSL2: npm install -g @anthropic-ai/claude-code
  2. Run claude
  3. Observe broken rendering on theme selector screen
  4. Press Enter - note it creates a newline instead of selecting
  5. Press Down arrow - note the selection moves but screen redraws with duplicated content
  6. 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-256color and COLORTERM=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:

  1. TUI rendering/layout completely broken
  2. TUI not capturing Enter key input (goes to terminal instead of Ink)

View original on GitHub ↗

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