[BUG] Agent view (claude agents) mojibakes pasted CJK input (UTF-8 read as Latin-1, C1 bytes dropped) and ignores tui:default / CLAUDE_CODE_NO_FLICKER=0 — Linux, v2.1.173
Environment
- Claude Code version: 2.1.173 (native install)
- OS: Ubuntu Linux (kernel 6.17), accessed over SSH from Windows
- Terminal:
TERM=xterm-256color(both plain SSH and VS Code remote terminal — same result) - Locale:
LANG=ko_KR.UTF-8, allLC_*=ko_KR.UTF-8 - Shell: bash
What happened
Pasting Korean (or any multibyte UTF-8) text into the reply input box of the agent view (claude agents) produces mojibake: the UTF-8 bytes are interpreted as Latin-1/Windows-1252, and bytes in the C1 control range (0x80–0x9F) are silently dropped.
Byte-level example — pasting 바로 (UTF-8 EB B0 94 EB A1 9C):
| bytes | rendered |
|---|---|
| EB B0 | ë° |
| 94 | (dropped — C1 control) |
| EB A1 | ë¡ |
| 9C | (dropped — C1 control) |
Result: ë°ë¡. The garbled text is what actually gets submitted to the background session (confirmed from the session transcript), so this is input-path corruption, not just a display artifact.
This looks like the same root cause as the no-flicker renderer paste bug (#65806), but in the agent view none of the known workarounds apply:
What works vs. what doesn't
- ✅ Regular
claudeTUI: after setting"tui": "default"in~/.claude/settings.json(and/orCLAUDE_CODE_NO_FLICKER=0), pasting Korean works correctly. - ❌
claude agents: still garbled even when: "tui": "default"is set in~/.claude/settings.json, and- it is launched explicitly as
CLAUDE_CODE_NO_FLICKER=0 claude agents(fresh process, settings confirmed loaded). - The in-session
/tuiswitch is also unavailable in background sessions (see #59145), so there is no way to get the classic renderer's input path in the agent view. - Output rendering of Korean is fine everywhere; only pasted input is affected.
- Terminal/SSH/locale verified OK: pasting the same text into a plain
readprompt in bash on the same host round-trips correctly, so the bytes arriving at the PTY are valid UTF-8.
Steps to reproduce
- On a Linux host with a UTF-8 locale, set
"tui": "default"in~/.claude/settings.json. - Run
CLAUDE_CODE_NO_FLICKER=0 claude agents. - Select a background session and paste Korean text (e.g.
안녕하세요 바로) into the reply input. - The input box shows Latin-1 mojibake (e.g.
안녕...-style) with some characters' bytes missing, and the garbled text is submitted.
Expected behavior
Pasted multibyte UTF-8 input should round-trip correctly in the agent view — or at minimum, the agent view should honor the tui/CLAUDE_CODE_NO_FLICKER renderer setting the way the main TUI does, so CJK users have a workaround.
Related issues
- #65806 — same mojibake pattern in the main TUI with the no-flicker renderer (closed; main TUI is indeed fixed for me via
tui: "default", but the agent view path is not covered) - #59145 —
/tuiswitching unavailable in background sessions (closed; this is what removes the last workaround in the agent view)