Korean (CJK) IME input composing text appears below prompt line then jumps up
Description
When typing Korean (and likely other CJK languages) in the Claude Code CLI prompt, the composing (uncommitted) text appears below the input line and then jumps up to the correct position once the character is confirmed. This makes Korean input very uncomfortable to use.
Expected Behavior
Composing text should render inline at the cursor position (like Windows Terminal or macOS Terminal.app).
Actual Behavior
- Start typing a Korean character (e.g., "안")
- The composing jamo appears one line below the prompt
- Once the syllable is committed (by pressing space or next consonant), it jumps up to the correct position
Environment
- OS: macOS 15 (Darwin 25.3.0)
- Terminal: iTerm2 3.6.9 (also reproducible in other terminals)
- Input Method: macOS default Korean (2-Set)
- Claude Code: latest version
Impact
Korean-speaking users have to rely on copy-paste workaround (type in another app → Cmd+V) instead of typing directly, which significantly hurts productivity.
Notes
This is likely related to how the underlying TUI framework (ink/React) handles IME marked text / composition events. Similar issues exist in other Node.js CLI tools using ink.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗