You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
macOS: CapsLock IME toggle inserts U+E00E in VS Code 1.110 integrated terminal #16310
When running opencode in VS Code's integrated terminal on macOS, pressing CapsLock to toggle Chinese/English input inserts an unexpected character U+E00E into the prompt/input buffer.
This started in VS Code 1.110. VS Code 1.109.x does not show this behavior.
Reproduction
macOS + Chinese IME configured (CapsLock toggles input source).
Open VS Code 1.110 integrated terminal.
Run opencode.
Press CapsLock to switch IME.
Actual
A private-use character corresponding to U+E00E is inserted into input.
Expected
CapsLock IME toggle should not insert any visible character into opencode input.
This suggests opencode is receiving kitty keyboard protocol functional key events and treating some non-text events as printable text.
Likely root cause
Under kitty keyboard protocol, CapsLock can be reported as functional key code 57358 (0xE00E, private-use code point). opencode likely does not filter this event path and inserts it as text.
Suggested fix direction
Distinguish text input from functional key events in stdin/raw key parsing.
Ignore lock keys (CapsLock/NumLock/ScrollLock) for text insertion.
Add a guard against private-use single-codepoint insertions (U+E000-U+F8FF) unless explicitly mapped to actions.
Environment
macOS
VS Code 1.110 (integrated terminal)
Not reproducible in VS Code 1.109.x
Reacted by Xinqi Mu, Zhang Visper, ChiseCC, std4453 and Chuenhei Tai
Activity
github-actions commentedon Mar 6, 2026
This issue might be a duplicate of existing issues. Please check:
For keybind-related issues, please also check our pinned keybinds documentation: #4997
zHElEARN commentedon Mar 20, 2026
same issue for me
std4453 commentedon Mar 26, 2026
This happens with Claude Code as well, but not when inputting directly in the terminal.
github-actions commentedon Jul 3, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.