Windows: severe keystroke input lag in CLI (not present in WSL or bare Node.js)

Resolved 💬 3 comments Opened Mar 31, 2026 by matthew-dresden Closed Apr 4, 2026

Bug Description

Severe keystroke input lag when using Claude Code CLI on Windows. Every keypress has a visible delay before appearing on screen, making the CLI nearly unusable.

Environment

  • Claude Code version: 2.1.87 (latest)
  • OS: Windows 11 Pro 10.0.26200
  • Terminal: Windows Terminal 1.23.20211.0, also native cmd.exe and PowerShell consoles
  • Node.js: v24.14.0
  • Shell: PowerShell 7+ and cmd.exe
  • Hardware: 65GB RAM, Intel CPU, power plan set to Ultimate Performance

Reproduction Steps

  1. Open any Windows terminal (Windows Terminal, native cmd.exe, native PowerShell)
  2. Run claude
  3. Type anything — keystrokes echo with significant delay

Key Diagnostic Findings

  • No lag in WSL — same Claude CLI version runs perfectly in WSL2 (Ubuntu 20.04)
  • No lag in bare Node.js on Windows — a raw process.stdin test script in Node.js on the same Windows terminal has zero input lag
  • Affects all Windows terminals — Windows Terminal, native cmd.exe, native PowerShell console host
  • Persists across reboots
  • Started around March 30, 2026

What Was Ruled Out

  • Windows Defender real-time protection (exclusions added for claude binary, .claude dir, claude and node.exe processes — no change)
  • Minifilter drivers (all standard Windows filters, no third-party)
  • Dell services/drivers (disabled and uninstalled — no change)
  • Claude desktop app CoworkVMService (stopped — no change)
  • System resources (51GB RAM free, disk I/O idle, CPU fine)
  • DLL injection (only standard Windows system DLLs in claude.exe process)
  • Power plan (Ultimate Performance)
  • Keyboard/HID drivers (all standard)
  • Windows/driver updates (no relevant recent updates)

Conclusion

Since bare Node.js stdin has no lag on the same system but Claude CLI does, the issue appears to be in Claude CLI's own input handling or TUI rendering layer, specifically on Windows (ConPTY path). The Linux PTY path used in WSL is unaffected.

View original on GitHub ↗

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