Hebrew (RTL) text in assistant responses renders unreadably in Terminal.app
Summary
When Claude's responses contain Hebrew (RTL) text — especially mixed with
English words, numbers, code, file paths, or punctuation — the output in
the terminal is visually scrambled and effectively unreadable. The
bidirectional text reordering breaks down on common patterns the assistant
naturally produces (e.g. a Hebrew sentence followed by an English filename,
or Hebrew text containing a number and a period).
Environment
- Claude Code CLI on macOS (Darwin 25.4.0)
- Terminal: Terminal.app (macOS built-in)
- Shell: zsh
Repro
- Start a Claude Code session and write/ask in Hebrew.
- Have Claude reply with mixed Hebrew + English content
(e.g. file paths, code snippets, or numbers embedded in Hebrew sentences).
- Observe that punctuation, numerals, and Latin tokens land in the wrong
visual positions; sentences read incoherently.
Expected
Hebrew sentences with embedded LTR runs (numbers, English words, paths)
should render with correct Unicode bidi ordering, like they do in any
modern browser, VS Code, or cat of the same string.
Notes
- The same strings render correctly when piped through
cat, opened in
a browser, or viewed in VS Code — so the underlying bytes are fine.
The issue appears to be in how Claude Code's TUI lays out / wraps
bidi text before printing.
- Likely culprits: width calculation for RTL chars, line-wrapping that
splits a bidi run, or markdown rendering that inserts ANSI codes mid-run.
- This makes Claude Code essentially unusable for Hebrew-speaking users
on long-form responses.
Screenshot
(will attach in a follow-up comment — example of Hebrew + English mixed content from a Claude Code response)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗