TAB key outputs raw Kitty escape sequence [57358u in VSCode integrated terminal

Resolved 💬 2 comments Opened Mar 25, 2026 by mindongdong Closed Mar 25, 2026

Bug Description

Pressing the TAB key inside Claude Code CLI running in VSCode's integrated terminal outputs the raw Kitty keyboard protocol escape sequence [57358u instead of performing the expected action. This makes Korean/English (한/영) input switching and general TAB usage extremely inconvenient.

The issue does not occur when running Claude Code in an external terminal (iTerm2).

Steps to Reproduce

  1. Open VSCode integrated terminal (zsh)
  2. Run claude
  3. Press the TAB key in the chat input

Expected: TAB functions normally (autocomplete, input method switch, etc.)
Actual: [57358u is inserted as raw text into the input

Environment

  • OS: macOS 26.3 (Darwin arm64 25.3.0), Apple M4
  • Claude Code: v2.1.83
  • VSCode: 1.112.0 (Universal)
  • Commit: 07ff9d6178ede9a1bd12ad3399074d726ebe6e43
  • Electron: 39.8.0
  • Chromium: 142.0.7444.265
  • Node.js: 22.22.0
  • Shell: zsh
  • External terminal (iTerm2): Issue does NOT occur

What I've Tried (none resolved the issue)

  1. CLAUDE_DISABLE_KITTY_KEYBOARD=1 claude — no effect in VSCode terminal
  2. TERM=xterm-256color claude — no effect
  3. VSCode setting "terminal.integrated.enableKeyboardProtocol": false — no effect
  4. VSCode setting "terminal.integrated.sendKeybindingsToShell": false — no effect

Additional Context

  • Ctrl+C works correctly after applying CLAUDE_DISABLE_KITTY_KEYBOARD=1
  • Only TAB key is affected — the Kitty escape sequence 57358 corresponds to the TAB key's Unicode codepoint in Kitty protocol
  • This started after a recent Claude Code version update
  • Running Claude Code in iTerm2 (external terminal) works perfectly — this is specific to VSCode's integrated terminal keyboard protocol handling

View original on GitHub ↗

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