[BUG] Image paste (Ctrl+V) does not work in native WSL2 terminal on Windows 11
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When running Claude Code inside a native WSL2 terminal on Windows 11, copying an image from Windows (e.g. Ctrl+C on a file in
File Explorer, or copying an image from a browser) and then pressing Ctrl+V in the Claude Code prompt does not paste the
image. Nothing happens, or only an empty/garbled string is inserted; the image is never attached to the message.
To be explicit: this is reproduced in the native Windows Terminal / wsl.exe shell running a WSL2 distro, not the VS Code
integrated terminal.
Expected: the image is attached to the input as an image, the same way it works in Claude Code on macOS or in the VS Code
integrated terminal.
Actual: the image is not attached. The clipboard image is silently dropped.
Environment:
- OS: Windows 11
- Shell: WSL2 (Ubuntu) running in native Windows Terminal / wsl.exe
- Claude Code: <v2.1.145>
- Node: <v22.22.11>
Notes / likely cause: WSL2's clipboard interop does not expose image/png to Linux clipboard tools by default. xclip / wl-paste
either aren't installed or can't read the Windows clipboard image bytes. To bridge this, the CLI needs a WSL-specific path
that reads the Windows clipboard via powershell.exe (e.g. Get-Clipboard -Format Image or the
System.Windows.Forms.Clipboard.GetImage() API), saves it to a temp PNG, and attaches that. Other CLIs (e.g. Codex) appear to
do this and image paste works there in the same WSL2 environment.
What Should Happen?
Pressing Ctrl+V in the Claude Code prompt inside a native Windows 11 WSL2 terminal should attach the image currently on the
Windows clipboard to the input — same behavior as paste-image on macOS Terminal, iTerm2, or the VS Code integrated terminal.
Specifically, when running in WSL Claude Code should detect WSL (e.g. via WSL_DISTRO_NAME / /proc/version) and, on image
paste, fall back to invoking powershell.exe to read the Windows clipboard image, write it to a temp PNG inside the WSL
filesystem, and attach that file as an image to the message.
Error Messages/Logs
Steps to Reproduce
Repro:
- Windows 11 host, WSL2 distro (e.g. Ubuntu).
- Open Windows Terminal (or wsl.exe directly), launch Claude Code inside the WSL distro.
- In Windows, copy an image to the clipboard (right-click an image file → Copy, or copy an image from a webpage).
- Focus the Claude Code prompt and press Ctrl+V.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
v2.1.145
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗