How to paste a screenshot into Claude Code
The short answer: on Windows, don't rely on Ctrl+V. Use Claude Code's own paste shortcut, drag the image file into the terminal, or reference the file by path in your prompt. This page covers all three, why the ordinary clipboard paste keeps vanishing, and how to size the screenshot so it doesn't cost a thousand tokens.
You want to show Claude Code a screenshot — an error dialog, a broken layout, a design frame — and typing it out would take forever. The problem is that the terminal is not a chat box: the same Ctrl+V that pastes an image everywhere else in Windows frequently does nothing here, especially inside WSL. The image isn't lost; the terminal just never received it. The fix is to use a route that doesn't depend on the fragile bitmap-on-clipboard path, and there are three reliable ones.
This is a Maxisnap-published guide. Maxisnap makes a Windows screenshot tool whose export is built for exactly this hand-off, so it appears where it's relevant — but the routes below work with any screenshot, from any tool.
What are the three ways to give Claude Code an image?
Claude Code accepts an image three ways, and on Windows they are not equally reliable. In rough order of dependability:
| Route | How | Reliability on Windows / WSL |
|---|---|---|
| File path in the prompt | Type or paste the saved image's path, e.g. C:\Users\you\shot.png, in your message. | Most reliable — no clipboard involved |
| Drag the file in | Drag the image file from Explorer (or straight from a capture tool) onto the terminal window. | Reliable when the terminal supports drop |
| Paste shortcut | Use Claude Code's dedicated paste key (recent versions use Alt+V for images). | Works in many setups; the fallback is a file path |
| The reflex everyone tries first. | Often silently does nothing in the terminal |
Claude Code's keybindings change between versions — check its current documentation for the exact paste key. The file-path route is the one that keeps working regardless.
Why does Ctrl+V do nothing in the terminal?
Because pasting an image into a terminal is a different, less-supported operation than pasting text. When you copy a screenshot, Windows puts a bitmap on the clipboard. Most terminals only handle text paste and quietly ignore a bitmap, so nothing appears. Inside WSL the gap is wider still: the Linux side of the terminal doesn't see the Windows clipboard bitmap at all, so even a tool that would accept a pasted image never gets the data. The image is fine — it just has no path from clipboard to prompt. That's why the routes that use a saved file rather than a clipboard bitmap are the ones that hold up.
Even the dedicated paste shortcut can be flaky here: image paste in the terminal has been reported to intermittently stop working on some Windows and PowerShell setups. When the clipboard route fails you, a saved file — dragged in or referenced by path — never depends on it, which is why it's the habit worth building.
Should I resize the screenshot before sending it?
Yes, if you're doing this all day. A full-resolution capture is not just heavy to move around — it's expensive. Vision models tile an image into patches and charge tokens per patch, so a 4K screenshot can cost well over a thousand image tokens, while a copy resized to a sensible width costs a few hundred and reads just as clearly, because the model downsamples large images internally anyway. Right-sizing the image before it reaches Claude Code is the cheapest optimization in the whole loop.
This is where a purpose-built capture tool earns its place. Maxisnap's AI-optimized export produces a copy capped at a default maximum width of 1600 px (configurable in Settings) and hands you the saved file — ready to drag into the terminal or reference by path. And if the shot shows an API key, a token, or a customer's data, the blur tool redacts it destructively before the file is ever created, so the secret can't be recovered from what you send.
| What you paste | Typical image-token cost | In Claude Code |
|---|---|---|
| Raw 4K / full-monitor capture | 1,000+ tokens | Pricier and may hit a size limit |
| Maxisnap AI-optimized copy (1600 px wide) | A few hundred tokens | Reads clearly, costs less, uploads fast |
Token figures are typical vision-model ranges, not a Maxisnap benchmark; exact counts vary by model and image content.
$ the fastest reliable hand-off
1. Ctrl+Alt+5 -> drag a box around the error 2. blur any secrets, then export the AI-optimized copy 3. drag the saved file into the terminal ...or paste its path: read this: C:\Users\you\shot.png # skip Ctrl+V — the terminal usually ignores the bitmap
Pasting screenshots into Claude Code — FAQ
Why won't Ctrl+V paste my screenshot into Claude Code?
Because the terminal usually can't accept an image from the clipboard — it's expecting text, and it ignores the bitmap Windows puts there when you copy a screenshot. Inside WSL the Windows clipboard bitmap isn't visible to the Linux side at all. Use Claude Code's own image paste key, drag the file into the terminal, or reference the saved file's path in your prompt instead.
The paste shortcut stopped working in Claude Code — now what?
Image paste in the terminal can intermittently fail on Windows and PowerShell, so don't rely on it as your only route. Save the screenshot and reference its file path in your prompt, or drag the file onto the terminal — neither touches the clipboard, so both keep working when the paste shortcut doesn't. It's worth checking Claude Code's current docs for the latest paste key, but the file-path route is the one that never breaks.
What's the most reliable way to add an image on Windows?
Reference the saved file by its path in your message. It doesn't touch the clipboard, so it works the same in Windows Terminal, WSL, and over SSH. Dragging the file onto the terminal is the next most reliable route.
Does the screenshot need to be a certain size?
Smaller is usually better. A full-resolution capture can cost over a thousand image tokens and is more likely to hit a per-image limit. A copy resized to around 1600 px wide costs far less and reads just as clearly, because the model downsamples large images anyway.
How do I hide an API key before sending a screenshot?
Redact it before the file is created. In Maxisnap, drag the blur tool over the secret in the editor, then export — the blur is applied destructively, so the key can't be recovered from the image you hand to Claude Code.
Can I do the same thing with Codex CLI or Gemini CLI?
Yes. All three take a file path or a dragged file, which is the portable route on Windows. Our screenshots for AI coding page has the per-tool detail, and screen recording for AI coding covers sending a short clip when a still isn't enough.
Capture, redact, and hand it over in three keystrokes.
A right-sized, AI-optimized screenshot with a saved file ready to drag or reference — free on Windows.
Related: screenshots for AI coding · screen recording for AI coding · blur a screenshot · screenshot tools for developers