[BUG] Ctrl+C (app:interrupt) does not work when macOS CJK IME is active

Resolved 💬 4 comments Opened Apr 13, 2026 by aziyatali Closed May 26, 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 a CJK input method (Korean, Japanese, Chinese) is active on macOS, Ctrl+C is silently swallowed by the OS-level IME composition layer before it reaches the terminal. Zero bytes arrive at stdin. Since app:interrupt is hardcoded to Ctrl+C and cannot be rebound, there is no way to cancel a running operation without switching back to English first.

What Should Happen?

Ctrl+C should interrupt the running operation regardless of active input method, or an alternative interrupt key (e.g., Escape during a running operation) should be available.

Error Messages/Logs

Steps to Reproduce

  1. macOS with Korean IME (or any CJK input method) enabled
  2. Switch to Korean input mode
  3. Start Claude Code and trigger a long-running operation
  4. Press Ctrl+C — nothing happens
  5. Verified with raw stdin test: zero bytes arrive at process.stdin

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.92 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Proposed fix: Make app:interrupt rebindable via keybindings.json, or treat Escape as interrupt when an operation is running (Escape is never consumed by IME, and chat:cancel is irrelevant while streaming).
Affects all CJK input method users.

View original on GitHub ↗

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