Caps Lock key produces [57358u text in VS Code extension terminal (Kitty protocol conflict with macOS Korean IME)
Bug Description
When using Claude Code inside the VS Code extension panel, pressing Caps Lock to toggle Korean/English input (macOS native IME switching) produces the text [57358u before switching the input method. This does not happen in the regular VS Code terminal or external terminal apps.
57358 is the Caps Lock key code in the Kitty keyboard protocol. The Claude Code extension panel appears to enable Kitty keyboard protocol internally, and this conflicts with macOS Caps Lock → Input Source switching.
Steps to Reproduce
- macOS with Korean input method enabled (System Settings → Keyboard → Input Sources → "Use Caps Lock to switch input source")
- Open Claude Code in VS Code extension panel (
claudeCode.preferredLocation: "panel") - Press Caps Lock to toggle Korean ↔ English input
[57358uis typed into the input field each time
Expected Behavior
Caps Lock should toggle the input method without producing any visible text.
Actual Behavior
[57358u is inserted as text every time Caps Lock is pressed.
Environment
- OS: macOS Darwin 24.6.0 (Apple Silicon)
- VS Code extension:
anthropic.claude-code-2.1.90-darwin-arm64 - Input method: macOS built-in Korean 2-Set (com.apple.inputmethod.Korean.2SetKorean)
What I've Tried (no effect)
"terminal.integrated.keyboard.enableKeyboardProtocol": falsein VS Code settings"terminal.integrated.gpuAcceleration": "off"in VS Code settings- Restarting VS Code completely
These settings fix the issue for the regular VS Code terminal, but not for the Claude Code extension panel, suggesting the extension manages its own terminal instance with Kitty protocol enabled.
Workaround
Running claude from an external terminal app (Terminal.app, iTerm2) instead of the VS Code extension panel.
Suggestion
Provide an option to disable Kitty keyboard protocol in the Claude Code extension panel, or respect the VS Code terminal.integrated.keyboard.enableKeyboardProtocol setting.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗