TL;DR: Claude Code accepts images four ways: Ctrl+V paste, drag-and-drop, a file path typed into the prompt, or a screenshot hotkey that pastes the path for you. Paste is the flaky one. It works in VS Code and iTerm2, fails silently in Windows Terminal and WSL (use Alt+V there), and never survives SSH. The file path method works everywhere, every time.
The four methods
1. Paste with Ctrl+V. Copy an image (snip a screenshot, copy from a browser), focus Claude Code, press Ctrl+V. On every platform it’s Ctrl+V, not Cmd+V. That trips up every Mac user on day one, because Cmd+V is muscle memory and it only works in iTerm2, nowhere else. When the paste lands, Claude Code shows a placeholder like [Image #1] in your prompt.
2. Drag and drop. Drag the image file onto the Claude Code window. Depending on the terminal this either attaches the image or drops the file path in as text. Both work, because of method three.
3. Type the file path. This is the one nobody tells you about and it’s the most reliable of the four:
Look at /home/zach/screenshots/error.png and tell me what's wrong
Claude Code reads the file straight off disk. No clipboard involved, no terminal quirks, works over SSH, works in tmux, works everywhere. Every other method is a convenience layer on top of this.
4. A screenshot-to-path hotkey. Snip a screenshot, press one key, and the saved file’s path lands in your terminal ready to send. This is a feature I built into Invoke after typing method three by hand about two hundred times. More on it below.
Whether paste works depends on your terminal
This is where everyone loses twenty minutes. Ctrl+V pastes images in some terminals and silently does nothing in others, and there’s no error message to tell you which situation you’re in.
| Where you run Claude Code | Image paste | What to do instead |
|---|---|---|
| VS Code integrated terminal | Works | Ctrl+V |
| iTerm2 (macOS) | Works | Ctrl+V or Cmd+V |
| Terminal.app (macOS) | Works | Ctrl+V, not Cmd+V |
| Windows Terminal | Fails, terminal grabs Ctrl+V as text paste | File path or drag-and-drop |
| WSL2 | Fails silently | Alt+V on recent versions, or file path |
| tmux | Flaky without extended-keys config | File path |
| SSH session | Clipboard doesn’t cross the wire | File path on the remote machine |
The Windows Terminal case is the one I hit personally. The terminal intercepts Ctrl+V and treats it as a text paste before Claude Code ever sees the keystroke. Your clipboard has a perfectly good screenshot on it and nothing happens.
WSL is worse: the image crosses from Windows as a BMP encoding Claude Code couldn’t read for a long time. A 2026 update added Alt+V as a dedicated workaround, so if you’re on WSL, run claude update first and try Alt+V. If you’re seeing a “no image found in clipboard” message instead of silence, that’s a different failure with its own set of fixes: here’s the full breakdown.
Invoke is $49 once. Free 7-day trial, all features, no credit card.
Formats and limits
Claude Code takes JPEG, PNG, GIF, and WebP, up to 5 MB per image. Very large screenshots get downscaled before the model sees them, so don’t paste a full 4K monitor capture when the error dialog is the only part that matters. Crop to the thing you’re asking about. Smaller image, sharper detail, better answer.
The one-hotkey version
Since the file path method is the only one that works in every terminal, the real fix is making it fast. That’s what Invoke’s screenshot hotkey does:
- Win+Shift+S, snip the bug
- Press the image hotkey (middle click by default)
- Invoke saves the snip as a PNG and pastes its path into your terminal
Two keystrokes and the image is in Claude Code, in any terminal, including WSL and SSH into your own machine. It pairs with voice: snip a broken layout, paste the path, hold the dictation key and say “the sidebar should not overlap the header, fix the flexbox” and you’ve filed a complete bug report with a repro image in about four seconds.
I wrote up the full workflow in how to paste screenshots into Claude Code from any terminal.
Quick answers
Can Claude Code see images at all? Yes. Screenshots, diagrams, mockups, photos of a whiteboard. It reads them fine, and it’s one of the most useful things about it.
Why does Ctrl+V do nothing? Your terminal is eating the keystroke or the clipboard image can’t cross into your environment. See the table above, or use a file path.
Is there a /image command? No. Paste, drag, or path.
Does Cmd+V work on Mac? Only in iTerm2. Everywhere else it’s Ctrl+V.
Try the fast version
Invoke is my dictation app for developers. Local Whisper transcription on your GPU, push-to-talk, and the screenshot-to-path hotkey that makes image attachment a single keypress. $49 once, free 7-day trial, no credit card.