[BUG] IME composition text (preedit) appears at bottom-left corner instead of cursor position

Resolved 💬 3 comments Opened Mar 20, 2026 by lnto3408 Closed Mar 23, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When typing with an IME (e.g., Korean, Japanese, Chinese input methods), the composing/preedit text is displayed at the bottom-left corner of the terminal window instead of inline at the cursor position in the input field.

What Should Happen?

The composing (preedit) text should appear inline at the cursor position within the input field, just like in other CLI tools.

Actual Behavior

The composing text floats at the bottom-left corner of the terminal window. Once composition is committed, the final text appears correctly in the input field.

<img width="1038" height="243" alt="Image" src="https://github.com/user-attachments/assets/97fa5f78-75ce-41ed-9c13-806dd3ac0d03" />

Error Messages/Logs

no specific errors

Steps to Reproduce

  1. Open System Settings → Keyboard → Input Sources → click Edit...
  2. Click the + button and add a CJK input source (e.g., search "Korean" and add "2-Set Korean")

<img width="835" height="737" alt="Image" src="https://github.com/user-attachments/assets/d2f1691c-3dd0-4274-8ac9-81fb788a37c9" />

  1. Launch Claude Code CLI in your terminal
  2. Switch to the Korean (or other CJK) input method using Caps Lock, Fn, or the input source menu in the menu bar

<img width="275" height="375" alt="Image" src="https://github.com/user-attachments/assets/a7c275da-cc42-42fa-b607-05dda11a9601" />

  1. Start typing in the Claude Code input prompt

Claude Model

Other

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.80

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Other CLI tools such as Gemini CLI handle IME inline composition correctly in the same environment, so this appears to be an issue with Claude Code's input handling rather than a terminal limitation.

<img width="1060" height="368" alt="Image" src="https://github.com/user-attachments/assets/153e1f6a-1ec4-49cd-a99d-976011a78d77" />

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗