[Bug] v2.1.83: Kitty keyboard protocol causes raw escape sequences ([57376u) to appear in input on VS Code integrated terminal (Windows)

Status Fixed / completed
Reported on v2.1.83
Maintainer reply None cached
Activity 4 comments · opened Mar 25, 2026 · closed Mar 25, 2026

Summary

After updating from v2.1.83 (from v2.1.51), raw Kitty keyboard protocol escape sequences appear as literal text in the Claude Code input when using VS Code's integrated terminal on Windows.

Environment

  • Claude Code version: 2.1.83 (issue did NOT occur in 2.1.51)
  • OS: Windows 11 Pro (10.0.26200)
  • Terminal: VS Code integrated terminal (xterm.js) with PowerShell
  • Shell: PowerShell / Git Bash (MSYS2)

Steps to Reproduce

  1. Update Claude Code to v2.1.83
  2. Open VS Code's integrated terminal
  3. Launch claude
  4. Type any input — especially press the 変換 (Henkan/Convert) key or modifier keys

Observed Behavior

Raw escape sequences appear as literal text in the input field, e.g.:

[57376u[57376u [57376u[57376u[57376u[57376u[57376u

57376 corresponds to F13 in the Kitty keyboard protocol (ESC [ 57376 u). On Japanese keyboards, this is triggered by IME-related keys such as 変換 (VK_CONVERT).

Root Cause (Analysis)

It appears v2.1.83 began requesting the Kitty keyboard protocol from the terminal (via \e[>1u or similar). VS Code's integrated terminal (xterm.js) supports and responds to this request, sending Kitty-encoded key events. However, Claude Code does not fully handle all Kitty protocol sequences — specifically key events for functional keys like F13 (codepoint 57376) leak through as raw text into the input.

This did not occur in v2.1.51, confirming the regression was introduced between these two versions.

Workaround

  • Use Windows Terminal (standalone) instead of VS Code's integrated terminal. Windows Terminal has "compatibility.kittyKeyboardMode": false which prevents these sequences.
  • Downgrade to v2.1.51.

Expected Behavior

Kitty keyboard protocol sequences should be fully handled internally and never appear as literal text in the user input.

View original on GitHub ↗

4 Comments

github-actions[bot] · 5 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/38624
  2. https://github.com/anthropics/claude-code/issues/38672
  3. https://github.com/anthropics/claude-code/issues/38743

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

1827mk · 5 months ago

This is a cross-platform regression in v2.1.83. The issue also occurs on macOS when switching Input Sources (languages). The Kitty keyboard protocol sequences (e.g., 57376u) are not being correctly parsed/consumed, causing them to leak as raw text in the terminal.

Xaxilis · 5 months ago

Confirming this regression. Shift+Tab stopped working in VS Code integrated terminal after upgrading from v2.1.81 to v2.1.83. Still works correctly in Windows Terminal.

Environment:

  • OS: Windows 10 Home 10.0.19045
  • VS Code: 1.112.0
  • Claude Code: 2.1.83
  • Node: v24.13.0
  • npm: 11.6.2
  • Shell: bash (Git Bash)

Repro:

  1. Open Claude Code in VS Code integrated terminal
  2. Press Shift+Tab — nothing happens (no mode switch)
  3. Open Claude Code in Windows Terminal
  4. Press Shift+Tab — works as expected

Worked in v2.1.81 with the same VS Code version.

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.