[WSL] Bind Alt+V to chat:imagePaste in addition to Ctrl+V for parity with Windows-native build
Summary
Two separate issues conspire to break image paste in Claude Code under WSL when it is launched from common Windows terminals. This report focuses on the first; the second is already tracked at #25935 and both must be fixed for a complete solution.
A) Platform-dependent defaults. Claude Code's default chat:imagePaste differs by build:
- Windows native:
Alt+V - Linux / WSL:
Ctrl+V
When Claude Code runs inside WSL, several Windows terminals (Warp for Windows, PowerShell console host) capture Ctrl+V at the host level, so the TUI never receives it. Alt+V does reach the TUI under those terminals, but it is not bound to chat:imagePaste on Linux/WSL, so users cannot paste at all.
B) Related MIME handling (#25935). Even once the keybinding reaches the handler in WSL, the Linux-side clipboard check only accepts image/png, while Windows screenshot tools (Snipping Tool, Win+Shift+S) publish image/bmp via WSLg — causing "no image" errors even with the keybinding corrected. Fixing (A) alone is insufficient for WSL users on Windows.
Proposal (this issue)
Detect the WSL environment (e.g. WSL_DISTRO_NAME, /proc/sys/kernel/osrelease containing microsoft, or WSL_INTEROP) and add alt+v to the default chat:imagePaste bindings alongside ctrl+v. This provides parity with the Windows-native build and gives users a fallback key when the host terminal intercepts one of the two.
{ "ctrl+v": "chat:imagePaste", "alt+v": "chat:imagePaste" }
End-to-end workaround (validated)
Users today can fully restore WSL image paste with the following steps:
- Move Warp's "Alternate terminal paste" off
Ctrl+V. See https://github.com/warpdotdev/Warp/issues/7069#issuecomment-4277676645 for details. - Explicitly bind both
ctrl+vandalt+vtochat:imagePastein~/.claude/keybindings.jsonunder WSL — and, if a Windows-native build is also used, inC:\Users\<you>\.claude\keybindings.jsonas well. The proposal in this issue would make this step redundant. - Install a BMP → PNG clipboard converter to work around #25935 until Claude Code accepts
image/bmpon Linux. A validated watcher (ImageMagick +wl-clipboard+xclip, polling at 300 ms since WSLg's Weston compositor does not supportwl-paste --watch) is included in the Warp comment linked above. - Restart Claude Code on both sides.
Environment
- Claude Code CLI v2.1.114
- WSL2 Ubuntu 24.04 on Windows 11
- Reproduced with Warp for Windows and PowerShell (Windows console host). Community reports indicate WezTerm and Windows Terminal deliver the keypress to the child TUI, though this was not personally verified.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗