Paste screenshots and images into Claude Code running on WSL with Alt+V.
Note: The underlying BMP detection issue has been fixed upstream (merged Feb 16, 2026). Once a Claude Code release includes that fix, this wrapper becomes unnecessary. The Alt+V keybinding will likely still be required.
Claude Code's image paste does not work on WSL. The CLI relies on wl-paste to read clipboard contents, but Windows screenshots are stored as BMP on the clipboard, while Claude Code only looks for image/png. This is a known issue:
- #3150 — Cannot copy screenshots from WSL terminal
- #13738 — Clipboard image paste not working in WSL
- #14635 — xclip/wl-paste fail without X11 in WSL2
- #1361 — Can't paste image from clipboard
- #834 — Unable to paste images into TUI
A wl-paste wrapper that auto-detects your environment and picks the best approach:
Delegates everything to the real /usr/bin/wl-paste, only intercepts BMP→PNG conversion via ImageMagick. Text, wl-copy, other MIME types — all pass through unchanged. Based on the approach by @gptool.
Requires: imagemagick, wl-clipboard
Bypasses WSLg entirely using win32yank.exe for text and powershell.exe for images. Saves clipboard image to a temp file via UNC path to avoid binary corruption.
Requires: win32yank.exe, powershell.exe
The wrapper caches the WSLg check for 60 seconds, so there's no overhead on repeated calls.
git clone https://github.com/imurodl/claude-code-wsl-paste.git
cd claude-code-wsl-paste
bash install.shThe installer auto-detects which mode your system supports and warns about missing dependencies.
- Take a screenshot (Win+Shift+S, PrintScreen, or any snipping tool)
- In Claude Code, press Alt+V
- The screenshot is pasted into your conversation
Regular text copy/paste continues to work normally.
sudo rm /usr/local/bin/wl-pasteThe real /usr/bin/wl-paste takes over automatically.
MIT