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 exact wording varies by version and platform. You’ll see the short form:
No image found in clipboard
or the long one:
Failed to paste image: No image on clipboard: The clipboard contents were
not available in the requested format or the clipboard is empty.
Same failure, same fixes.
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 turns the clipboard image into a PNG on disk and pastes the file path into your terminal — one hotkey, works in Hyper, Wezterm, Windows Terminal, and WSL2. It's also the fastest way to dictate prompts to Claude Code. Free for 7 days, then $49 once.
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 same file-path workflow.
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, and here’s the full SSH workflow.
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.
Quick answers
Why does Claude Code say no image found in clipboard when the image is right there? Because Claude Code is reading a different clipboard than the one holding your screenshot, or your terminal ate the paste first. WSL, tmux, and SSH each keep their own clipboard, and none of them is the Windows or macOS one you snipped into.
What is Alt+V in Claude Code? Alt+V reads the Windows clipboard image directly on WSL, added in the v2.1.157 release. Run claude update first, then snip and press Alt+V instead of Ctrl+V.
Why doesn't Cmd+V work on Mac? Claude Code binds image paste to Ctrl+V on every platform, Mac included. Cmd+V only works in iTerm2; everywhere else it does a plain text paste and you get the error or nothing.
What does 'Failed to paste image: No image on clipboard' mean? Same failure as the short ‘No image found in clipboard’ wording, just a longer version string. The fixes are identical.
How do I get a screenshot into Claude Code when nothing pastes? Save the image and put its path in the prompt, like Look at C:\Users\zach\Pictures\Screenshots\bug.png and fix the layout. It works in WSL, over SSH, and inside tmux, and every clipboard fix is just a shortcut for it.
Is there a size limit on images? Yes, 5 MB per image. A full 4K desktop PNG can blow past it, so crop to the relevant part, which gets you a better answer anyway.
The two-keystroke workflow
Invoke is a local Whisper dictation app that also fixes this, on Windows and on Apple Silicon Macs. 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. Local Whisper on your GPU, Windows and Mac, $49 once. Free 7-day trial, no credit card.