TL;DR: WSL runs a Linux clipboard that is separate from your Windows clipboard, so a screenshot you snipped in Windows isn’t where Claude Code is looking. Update Claude Code and press Alt+V, which reads the Windows clipboard directly. If that’s not available, save the image and pass Claude Code the file path using a /mnt/c/... or Windows-style path. Invoke automates the file-path route in one hotkey.

Why WSL breaks clipboard paste

Your machine has more than one clipboard. Windows keeps one. WSL, being a Linux environment, keeps its own. When you snip a screenshot with Win+Shift+S, those pixels go onto the Windows clipboard. Claude Code, running inside WSL, looks at the Linux side and sees nothing useful.

WSLg (the graphics and clipboard bridge in modern WSL) is supposed to sync the two. For text it mostly does. For images it has been unreliable for a long time, and the image often crosses as a BMP variant that Claude Code couldn’t decode. That mismatch is the whole reason “paste a screenshot into Claude Code on WSL” fails so often.

Fix 1: Update and use Alt+V

A 2026 Claude Code release added a shortcut built specifically for this WSL situation.

claude update

Snip your screenshot in Windows, then in Claude Code press Alt+V instead of Ctrl+V. Alt+V reaches across to the Windows clipboard and pulls the image directly, skipping the broken WSLg image path. For most WSL users this is the fix.

If Alt+V does nothing, your version is probably too old. The update above is the first thing to try.

Fix 2: Copy the saved file in Explorer

If you save the screenshot to a file first, then copy that file in Windows Explorer (right-click, Copy), you put a file reference on the clipboard rather than raw pixels. On WSL this reference path often works where pixels fail, because Claude Code can resolve it and open the file itself.

It’s fiddly, but it’s a known working path when Alt+V isn’t available.

> Sounds interesting?

Invoke is $49 once. Free 7-day trial, all features, no credit card.

Try it free →

Fix 3: The file path always works

This is the one I rely on. Claude Code reads image files off disk directly, so the clipboard never enters the picture. Save your screenshot somewhere, then reference it. Both of these work from inside WSL:

Look at /mnt/c/Users/zach/Pictures/Screenshots/bug.png and fix the CSS
Check C:\Users\zach\Pictures\Screenshots\bug.png for the alignment issue

WSLg can be broken, your terminal can be intercepting keys, none of it matters. The file is on disk and Claude Code opens it. This is the most reliable method on WSL, full stop.

The downside is the routine: snip, save, hunt for the file, copy its path, paste it in. Every single time. That got old fast for me, which is why Invoke does the whole thing in one hotkey. Snip with Win+Shift+S, press your image key, and Invoke saves the PNG and pastes the path straight into Claude Code, correctly formatted for your setup. On WSL specifically it grabs the image from the Windows clipboard with PowerShell, so it sidesteps the exact WSLg bug that breaks normal pasting.

Things that trip people up on WSL

The two-keystroke workflow

Invoke is a dictation app for developers, built on Windows and WSL first. It fixes the screenshot problem, then adds voice on top: hold a key, describe the bug out loud, release, and the prompt lands in Claude Code. $49 once. Free 7-day trial.