TL;DR: The screenshot is on your Windows or macOS clipboard, but Claude Code is reading a different clipboard, or your terminal ate the paste before Claude Code saw it. On WSL, update Claude Code and press Alt+V instead of Ctrl+V. On Mac, press Ctrl+V, not Cmd+V. If nothing works, skip the clipboard entirely: save the image as a file and give Claude Code the path. That fix has never failed me once.
Why this error is so maddening
You snip a screenshot. You can paste it into Slack, into a Google Doc, into anything. Then you paste it into Claude Code and it says no image found in clipboard. The image is obviously in the clipboard. You just used it.
The error is technically telling the truth, though. Claude Code isn’t lying, it’s looking somewhere else. There are several clipboards in play on a modern dev machine (Windows has one, WSL has another, tmux keeps its own, a remote SSH box has none of yours), and the image is sitting in a clipboard Claude Code can’t reach, or in a format it can’t decode. Which fix you need depends on which wall you hit.
Fix 1: On WSL, update and press Alt+V
This is the most common cause I’ve seen. You’re running Claude Code inside WSL, the screenshot lives on the Windows clipboard, and when it crosses the boundary it arrives as a BMP variant Claude Code couldn’t decode for a long time.
A 2026 release (v2.1.157) added a dedicated workaround: Alt+V reads the Windows clipboard image directly.
claude update
Then snip your screenshot and press Alt+V in Claude Code instead of Ctrl+V. If your version predates the fix, this is the whole reason it’s failing.
Fix 2: On macOS, it’s Ctrl+V, not Cmd+V
Claude Code binds image paste to Ctrl+V on every platform, including Mac. Cmd+V only works if you’re in iTerm2, which handles it specially. In Terminal.app and most other emulators, Cmd+V does a plain text paste, finds no text worth pasting, and you get the error or nothing at all.
Press Ctrl+V. This one fix resolves most Mac reports.
Fix 3: Your terminal is intercepting the keystroke
Windows Terminal grabs Ctrl+V as its own text-paste command before Claude Code ever sees the key. The clipboard image never gets a chance. Other emulators do the same thing with their default keybindings.
You can rebind the terminal’s paste key, but honestly, don’t bother. Use a file path (fix 5) or drag the image file onto the window instead.
Invoke is $49 once. Free 7-day trial, all features, no credit card.
Fix 4: You copied a file, not an image
Right-clicking an image file in Explorer and hitting Copy puts a file reference on the clipboard, not image pixels. Snipping with Win+Shift+S puts pixels on the clipboard. They are different things and terminals treat them differently.
The good news: the file-reference version often works in Claude Code where the pixel version fails, because Claude Code can read the path and open the file itself. If pixels won’t paste, try copying the saved file in Explorer and pasting that. On WSL this is a known working path.
Fix 5: The one that always works
Stop fighting the clipboard. Claude Code reads image files straight off disk:
Look at C:\Users\zach\Pictures\Screenshots\bug.png and fix the layout
No clipboard boundary, no terminal keybinding, no encoding problem. It works in WSL, over SSH, inside tmux, everywhere. Every clipboard fix above is just a shortcut for this.
The catch is speed. Saving a snip, finding where it saved, and typing the path takes half a minute, and you’re doing it twenty times a day. That’s the exact annoyance that made me add a screenshot hotkey to Invoke: snip with Win+Shift+S, press one key, and Invoke saves the image and pastes its path into your terminal. The clipboard problem stops existing.
Still stuck?
Two more things worth checking:
- Image too big. Claude Code’s limit is 5 MB per image. A huge PNG of a 4K desktop can blow past that. Crop to the relevant part, which gets you a better answer anyway.
- You’re in tmux or SSH. Clipboard forwarding through tmux needs extra config, and a remote machine can’t see your local clipboard at all. File path on the machine where Claude Code runs. That’s the move.
For the full picture of every way to get an image in, including drag-and-drop and the per-terminal support table, see how to attach images in Claude Code.
The two-keystroke workflow
Invoke is a dictation app for developers that also fixes this. Snip, one hotkey, path in terminal. Add voice on top: hold a key, say what’s wrong with what you snipped, release, and the whole prompt lands in Claude Code. $49 once. Free 7-day trial.