[BUG] Display corruption on Debian 12 with ncurses 6.4
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?
## Environment (Problem)
- OS: Debian 12
- ncurses: 6.4-4
- Node.js: v22.22.0 (NodeSource, static build)
- Claude Code: v2.1.29
- Terminal: Teraterm / RLogin (SSH, vt100 mode)
- TERM: xterm-256color
## Environment (Working)
- OS: Ubuntu 22.04 (WSL)
- ncurses: 6.3-2ubuntu0.1
- Node.js: v22 (apt, dynamic build with libnode.so.72)
- Same terminal client, same settings
## Problem
- Box-drawing characters display as 'q' characters
- Selection menus are corrupted and difficult to use
- Arrow key navigation causes display glitches
- Normal text appears correctly
## Attempted fixes (none worked)
- TERM=vt100 (partially helped text, selection still broken)
- TERM=linux
- TERM=xterm-256color
- NCURSES_NO_UTF8_ACS=1
- Reinstalled Claude Code
- Moved ~/.claude to ~/.claude.bak
## Key difference
ldd shows Debian Node.js is statically linked (minimal libs),
while Ubuntu Node.js dynamically links libnode.so.72 with libicu.
## Reproduction
Unable to confirm if reproducible on other Debian 12 systems.
What Should Happen?
Box-drawing characters should display correctly as borders and lines, not as 'q' characters. Selection menus should be usable with arrow keys.
Error Messages/Logs
No error messages. Visual display issue only.
Steps to Reproduce
- SSH to Debian 12 server with ncurses 6.4
- Run
claude - Observe box-drawing characters displayed as 'q'
- Try to use selection menu with arrow keys - display becomes corrupted
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
N/A
Claude Code Version
2.1.29
Platform
Other
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
Works correctly on Ubuntu 22.04 (WSL) with ncurses 6.3.
Same terminal client and settings on both systems.
Node.js on Debian is statically linked, Ubuntu version dynamically links libnode.so.72.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗