Korean IME composition window jumps around during input
Description
When typing Korean (Hangul) in Claude Code on Windows, the IME composition window jumps to incorrect positions — sometimes below the input line, sometimes behind the cursor. This makes Korean input very difficult to use.
Environment
- OS: Windows 11
- Terminal: Windows Terminal / VS Code integrated terminal
- Claude Code: Latest version
Steps to Reproduce
- Launch Claude Code in Windows Terminal or VS Code terminal
- Start typing Korean at the prompt (e.g. "한글 처리")
- Observe the IME composition window position during input
Expected Behavior
The IME composition window should stay anchored at the text cursor position, following the input naturally.
Actual Behavior
- The composition window jumps to a different line (below the input area)
- The composition window drifts behind the cursor as more characters are typed
- The position becomes increasingly wrong with longer input
Screenshots
Composition window drops below the prompt
Composition window drifts behind cursor during "한글 처리" input
Root Cause Analysis
This appears to be caused by the ink/react-ink rendering framework moving the terminal cursor via ANSI escape sequences during UI re-renders (spinners, progress indicators, layout updates). The OS IME composition window tracks the terminal's physical cursor position, so when ink repositions the cursor for rendering, the composition window follows it to the wrong location.
This issue also reproduces in VS Code's integrated terminal with Claude Code extension.
Notes
- This is not a terminal emulator bug — it's caused by cursor movement during ink re-renders
- Native terminal apps that don't move the cursor during IME composition don't have this issue
- A potential fix would be to suppress cursor movement (or use a hidden cursor) during re-renders while IME composition is active
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗