Korean/CJK text renders with extra spacing and broken wrapping in the TUI
Summary
When Codex CLI renders Korean text in the TUI, Hangul syllables appear visually separated by blank cells and long lines wrap incorrectly. The result looks like each Korean character is spaced out and the paragraph flow becomes hard to read.
Environment
- Codex CLI: 0.114.0
- oh-my-codex: 0.10.0
- Node.js: 24.14.0
- OS: macOS (darwin arm64)
- TERM: xterm-256color
- LANG: ko_KR.UTF-8
- LC_ALL: C.UTF-8
- Terminal where this was observed: Kiro embedded terminal (
kiro-cli-term)
Steps to reproduce
- Launch
codexin a terminal session with Korean locale settings. - Use the TUI normally and let the assistant emit Korean text in the conversation/history area.
- Observe the rendered output for Korean paragraphs.
Expected behavior
Korean text should render contiguously, without visual gaps between syllables, and line wrapping should stay aligned.
Actual behavior
- Korean syllables appear with an extra blank cell between characters.
- Wrapped lines break in visually awkward positions.
- Paragraphs become difficult to read because the layout no longer matches the underlying text.
Notes
I initially suspected the recent Node 24 LTS switch, but that seems unlikely to be the direct cause. The npm package is a Node launcher that spawns a platform-specific native binary (bin/codex.js -> @openai/codex-darwin-arm64), so the rendering path is inside the native TUI rather than Node itself.
From the upstream source, the TUI stack uses ratatui, crossterm, and unicode-width for rendering and width calculation in codex-rs/tui. That makes this look more like a terminal/CJK width handling issue in the TUI rendering path (possibly terminal-specific) than a Node runtime regression.
If helpful, I can provide a screenshot of the broken rendering.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗