Claude Code Paste Image: Windows, VS Code and SSH Fixes

16 min read

Claude Code paste image methods differ by surface: Alt+V on Windows and WSL, a normal paste in the VS Code chat panel, and scp plus a file path over SSH.

Renaissance-style landscape of a mountain path climbing toward a monastery in morning light, a red cloak on the trail

Ctrl+V or Cmd+V (iTerm2) or Alt+V (Windows and WSL): that is the Claude Code paste image shortcut, word for word from the image paste row in Anthropic’s interactive mode reference. The same row says a paste that works “Inserts an [Image #N] chip at the cursor so you can reference it positionally in your prompt”, and adds: “On WSL, both Ctrl+V and Alt+V are bound; use Alt+V if your terminal intercepts Ctrl+V.” I read it on 2 October 2026, when the newest release in Anthropic’s changelog was v2.1.287; my own CLI reports v2.1.283.

Those keys belong to the platform, but a press counts only if it reaches Claude Code, and that depends on the window with focus. Windows Terminal keeps Ctrl+V for its own paste. VS Code’s integrated terminal hands Alt keys to the shell while terminal.integrated.allowMnemonics stays off. The VS Code extension’s chat panel takes an ordinary paste with no special key, and the CLI over SSH cannot read an image from your local clipboard. When a paste does nothing, check the window before you try another key.

This site is built with the Claude Code extension in VS Code on Windows 11, with Git Bash and PowerShell as the shells Claude runs commands through, so Windows and VS Code get the most room below. Every product fact in the tables comes from the vendors’ own documentation or Anthropic’s changelog, checked in October 2026; where the docs are silent, the table says so.

Claude Code Paste Image Shortcuts by Surface

Press Ctrl+V in a macOS or Linux terminal (iTerm2 also takes Cmd+V) and Alt+V on native Windows; WSL binds both keys. In the VS Code extension’s chat panel, paste into the prompt box normally. If the clipboard route fails, give Claude the file’s path, and for a session on another machine, copy the file there with scp first.

SurfacePaste from the clipboardDrag or attach a filePoint to a saved file
Terminal on macOSCtrl+V; iTerm2 also takes Cmd+V, as does the CLI in VS Code since v1.0.61Drag the image onto the windowType its path in the prompt
Terminal on LinuxCtrl+VDrag the image onto the windowType its path
Native Windows: PowerShell, CMD or Git BashAlt+VDrag the image onto the windowType its Windows path
CLI in VS Code’s integrated terminal, on WindowsAlt+V; Ctrl+V is VS Code’s own text pasteDrag the image onto the terminalType its path
WSLAlt+V or Ctrl+V; Alt+V wherever the terminal keeps Ctrl+VFrom Windows Explorer, since v2.1.157Type its Linux path
VS Code extension chat panelPaste into the prompt boxHold Shift while dragging@-mention the file
Claude Desktop, Code tabNot covered on Anthropic’s Desktop page; the v2.1.275 changelog entry mentions pasted images in DesktopDrag into the prompt, or use the attachment button; the + button that holds it is not available in WSL or cloud sessions@-mention it in local and SSH sessions
CLI over SSHNot your local clipboardNot documentedCopy it over with scp, then type the remote path
Remote Control, from claude.ai/code or the Claude appNot documentedAttach a photo or file to your messageType the path of a file on the machine running the session

Sources: Anthropic’s Work with images steps for the drag and path columns, the Desktop guide for its row, and the sections below for the rest. Version numbers come from Anthropic’s changelog, dated in the version table further down.

To get a screenshot onto the clipboard in the first place:

  • Windows 11: Windows logo key + Shift + S opens the Snipping Tool overlay, Ctrl+C in Snipping Tool copies the snip, and Print Screen places the whole screen in your clipboard (Microsoft’s Snipping Tool guide).
  • macOS: Apple’s screenshot guide says to “press Control in addition to the other keys you press to take the screenshot”, so Control-Shift-Command-4 copies a selection.

Claude Code Image Paste Not Working? Check These in Order

The CLI on another machine and the extension’s prompt box are the two cases where your platform’s key is the wrong move, so they come first.

Five checks for a Claude Code image paste that does nothing: the CLI running on another machine over SSH (copy the file over with scp and type its path, or attach it through Remote Control), the VS Code extension's prompt box (paste normally), Windows or WSL (press Alt+V; WSL also binds Ctrl+V), macOS or Linux (press Ctrl+V), and an image that still does not appear after the fix in a local session (update, then drag the file in or type its path)

What you see after the paste narrows it down further. Each row below matches an entry in Claude Code’s CHANGELOG.md:

What you seeWhat changedWhat to do
An error that suggests scpv2.1.2 made the paste error over SSH suggest scp in place of the clipboard shortcut hintCopy the file to the server and type its path
”no image found” after Alt+V on Windows, with a screenshot copiedv2.1.141 fixed this errorUpdate Claude Code
”No image found in clipboard” after Ctrl+V, with text copiedv2.1.181 made Ctrl+V paste the text insteadUpdate Claude Code
Nothing, after you copied the image file in Explorer or Finder rather than the picturev0.2.75 added pasting copied image files, without naming a platformDrag the file in or type its path
Nothing on Linux, with an image copiedv2.0.52 made image paste fall back to wl-paste when xclip is unavailableCheck that xclip or wl-paste is installed, or type the path

To check which image a chip refers to, Ctrl+Click an [Image #N] reference in Claude’s reply (Cmd+Click on a Mac); the tips in Anthropic’s Work with images steps say this opens the image in your default viewer.

Advertisement

Claude Code Paste Image in VS Code: Chat Panel vs Terminal

VS Code gives you two places to paste an image, and they follow different rules: the extension’s chat panel has its own prompt box, while the CLI runs as a program inside the integrated terminal. Everything else that differs between the two is in my comparison of Claude Code in VS Code and the terminal.

The Extension’s Prompt Box

From the file and image section of Anthropic’s VS Code guide, plus one changelog entry:

To do thisDo thisWhat the docs say
Attach a screenshotCopy it, then paste into the prompt box”To attach an image, paste it from your clipboard into the prompt box.”
Attach a saved fileHold Shift while dragging it into the prompt boxThe guide says this attaches files; it does not say a dragged image becomes an image attachment
Point at a file in the workspaceType @ and the file name”Claude reads that content and can answer questions about it”
Remove an attachmentClick the X on it”To remove an attachment from context, click the X on it.”
Send an image with no textPaste it and sendAdded for VS Code in v2.1.275

On WSL2/WSLg, update to v2.1.267 or later before you troubleshoot anything else: that release fixed a pasted screenshot “inserting raw image bytes into the chat input”, and the same entry says “the image is now attached when the clipboard provides it, otherwise the paste is ignored”. If a paste in the prompt box still does nothing on WSL, give Claude the saved screenshot’s file path instead.

The CLI in VS Code’s Integrated Terminal

Run claude in the integrated terminal and the CLI keys apply; Microsoft’s documentation adds these Windows details:

KeyWhat VS Code does with it on WindowsSource
Ctrl+VPastes text into the terminal; Microsoft lists Ctrl+C and Ctrl+V as the Windows copy and paste keysVS Code terminal basics
Alt+VGoes to the shell, and so to Claude Code, while menu mnemonics stay off, which is the defaultVS Code terminal advanced

If Alt+V does nothing in the integrated terminal, open Settings with Ctrl+, and search for terminal.integrated.allowMnemonics. Microsoft says turning it on “will disallow any Alt key events to go to the shell”, so untick it. The same page notes the setting “does nothing on macOS”.

Claude Code on Windows 11 and WSL: Alt+V and the Ctrl+V Conflict

Native Windows: PowerShell, CMD and Git Bash

Anthropic’s keybindings reference names the action behind the shortcut chat:imagePaste, with the default “Ctrl+V (Alt+V on Windows and WSL)”. The defaults are listed by platform, and no row names a shell, so on native Windows the documented key is Alt+V whether you start claude from PowerShell, CMD or Git Bash. In Anthropic’s PowerShell tool notes, Git Bash matters as the shell behind the Bash tool, a choice about how Claude runs commands rather than which keys you press; my guide to Claude Code on WSL vs native Windows covers that choice and lists a Ctrl+V screenshot paste among its Windows errors.

Windows Terminal, which Microsoft describes as “a modern host application” for Command Prompt, PowerShell and bash under WSL (Windows Terminal overview), binds Ctrl+V, Ctrl+Shift+V and Shift+Insert to its own paste by default. Alt+V is not among the default bindings on Microsoft’s Windows Terminal actions page.

If another program on your machine claims Alt+V, add a second key for the action in ~/.claude/keybindings.json; run /keybindings to create or open the file, and the reference says changes apply without a restart. The alt+i below is only an example, so pick a key your terminal passes through:

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "alt+i": "chat:imagePaste"
      }
    }
  ]
}

The rest of Claude Code’s default shortcuts are in my Claude Code commands cheat sheet.

WSL: Both Keys Are Bound

In WSL, Claude Code binds both Ctrl+V and Alt+V, and Windows Terminal is a terminal of the kind the WSL note warns about. Microsoft’s actions page says a Linux program’s Ctrl+V binding in WSL “will be blocked, with the Windows Terminal paste command taking priority”, so Alt+V is the key to press there. To hand Ctrl+V back to programs running in WSL, the same page documents { "id": null, "keys": ["ctrl+v"] } in Windows Terminal’s settings.json, which leaves Ctrl+Shift+V as the text paste.

Four of the 2026 rows in the version table below are WSL image paste fixes. Keep those dates in mind if a search turns up a third-party extension, Claude Code Image Paste (WSL), which describes itself as a way to “Paste images from clipboard into VS Code/Cursor terminal for Claude Code conversations”. Its newest version on Open VSX, 1.1.6, is dated 3 January 2026, before every WSL fix in that table. On a current Claude Code build, try Alt+V before you install a workaround.

Pasting an Image Into Claude Code Over SSH and Remote Sessions

Anthropic’s troubleshooting page puts the SSH limit in one sentence: “When Claude Code runs on a remote machine over SSH, it can’t run a clipboard tool on your local machine.” That section is about copying text out of Claude Code. For pasting an image in, the changelog entry for v2.1.2 is the matching one: pasting over SSH shows an error that suggests scp.

Ways to get an image to a remote session:

RouteStepsWhat the docs say
Copy the file, then give its pathRun scp ./pricing.png you@host:~/site/ on your machine, then ask about ~/site/pricing.png in the remote sessionGiving Claude the path is method 3 in Anthropic’s Work with images steps (scp manual)
Attach it through Remote ControlRun /remote-control in the remote session, open it at claude.ai/code or in the Claude app, and attach the image”Claude sees attached photos directly as part of your message”; it needs a claude.ai sign-in (Remote Control)
A Claude Desktop SSH sessionAdd the host from the environment dropdown; Desktop runs Claude Code there with the app as the interfaceThe attachment button sits behind the + button, which the Desktop guide says “is not available in cloud or WSL sessions”
VS Code Remote - SSHCopy the file into the remote workspace, then @-mention it in the chat panelAnthropic’s VS Code guide does not cover Remote - SSH windows

Anthropic’s tmux setup covers Shift+Enter, notifications and the progress bar, and the keybindings reference lists Ctrl+B as the tmux prefix conflict; neither section mentions image paste. A tmux session on a remote host is the SSH case above, so the scp and Remote Control routes apply. For the Remote Control route, the Remote Control page suggests starting the remote session “inside tmux or screen” so it keeps running after you disconnect from SSH, and claude.ai/code can keep sending it images. In a local tmux session where the key does nothing, the file path route does not touch the clipboard at all.

Image Paste Fixes by Version

Anthropic’s changelog page prints a date beside each version. These are the image paste entries behind the advice in this post; the page lists many more image fixes:

VersionDateWhat changed
0.2.7521 April 2025Image files can be dragged in, or copied and pasted, into the prompt
1.0.6125 July 2025CLI in VS Code on macOS: Cmd+V pastes images
1.0.9326 August 2025Windows: Alt+V added for pasting images
2.0.5224 November 2025Linux on Wayland: image paste falls back to wl-paste when xclip is unavailable
2.1.07 January 2026iTerm2: Cmd+V pastes images, mapped to Ctrl+V
2.1.29 January 2026Pasting over SSH shows an error that suggests scp
2.1.4718 February 2026WSL2: paste works when Windows copies images as BMP
2.1.8325 March 2026The [Image #N] chip lands at the cursor, and Claude can use a pasted image’s on-disk path for file operations
2.1.978 April 2026Pasted and attached images are compressed to the same token budget as images the Read tool opens
2.1.1261 May 2026Images larger than 2000px are downscaled on paste instead of breaking the session
2.1.1368 May 2026WSL2: a PowerShell fallback reads the image when xclip or wl-paste cannot
2.1.13911 May 2026Pasting or dropping several images inserts every image instead of only the last
2.1.14113 May 2026Windows: Alt+V stops reporting “no image found” for a screenshot
2.1.15729 May 2026WSL: Alt+V paste and Windows 11 screenshot paste fixed, dragging from Windows Explorer added
2.1.18117 June 2026Ctrl+V with text on the clipboard pastes the text instead of reporting no image
2.1.2026 July 2026Images and files sent without a caption from the Remote Control mobile or web app are no longer dropped
2.1.2679 September 2026VS Code on WSL2/WSLg: a pasted screenshot attaches when the clipboard provides it and is ignored otherwise, instead of inserting raw bytes
2.1.27517 September 2026Pasted and attached images are saved where Claude can open them without a permission prompt, Desktop and VS Code included; VS Code can send an image with no text

Check the version on the surface where you paste: claude --version in a terminal, /status in the chat panel (v2.1.280 or later). The chat panel runs its own bundled copy of the CLI, so it and your terminal CLI can each carry a fix the other lacks.

From v2.1.275, Claude Code saves pasted and attached images as files, in an images/ folder for each session under its temp directory, which CLAUDE_CODE_TMPDIR controls (v2.1.274 and earlier used ~/.claude/image-cache). The retention sweep deletes them after cleanupPeriodDays, 30 days by default (.claude directory reference). Since Claude can use that on-disk path for file operations, you can paste a reference screenshot and ask Claude to copy [Image #1] into the repo, such as into the refs/ folder that the example brief in my guide to building a personal website with Claude Code points to by path.

Screenshots Worth Pasting for Marketing Work

Anthropic’s own examples in its Work with images steps include “Describe the UI elements in this screenshot” and “Generate CSS to match this design mockup”. The same pattern fits the screenshots a marketer already collects:

What you pasteWhat to askWatch for
A Search Console Performance chart”On which dates do the clicks and impressions lines change direction?”Keep the date range and metric toggles inside the capture
A competitor’s pricing page”Turn this into a table: plan, monthly price and every limit each plan sets.”Capture the pricing table, not the whole page
Two competitor homepages”Compare the headline and first call to action in [Image #1] and [Image #2].”Refer to each image by its chip number
A search results page”List every result type on this page from top to bottom.”Note when and where you searched
A design mockup”What HTML structure would recreate this component?” (Anthropic’s example)Name the file Claude should edit

A full-page capture is a large image, and Claude Code resizes large images before Claude sees them. The Read tool reference says Claude “may see a downscaled version of a large screenshot” and suggests asking it to “crop the region of interest first”. Pasted images are held to the same limit: since v2.1.97, pasted and attached images are compressed to the same token budget as images the Read tool opens.

A saved file reaches Claude through its path. This site’s repo keeps 2x renders of my LinkedIn banner, such as design/social-banners/primary/li-banner@2x.png at 3168 by 792 pixels, and at that width a prompt should ask for the crop first:

Read design/social-banners/primary/li-banner@2x.png, crop the headline
area with ImageMagick, and tell me whether the headline reads at half size.

Pasting and file paths cover images going into Claude Code; for images coming out, such as a diagram or that banner, my guide to what Claude Code can produce as an image covers six routes.

Check the Window Before the Key

When a Claude Code paste image shortcut does nothing, I would check the window first, the key second and the version third. Windows Terminal and VS Code’s integrated terminal each keep a paste key of their own, and the CLI over SSH cannot read an image from your local clipboard.

Copy one screenshot today and paste it into each surface you use. A terminal shows an [Image #N] chip and the extension’s prompt box shows an attachment; the surface that shows one is your route.

Frequently Asked Questions

How do I paste an image into Claude Code on Windows?

Press Alt+V in the Claude Code CLI on native Windows, the key Anthropic binds for image paste there. Windows Terminal and VS Code's integrated terminal both use Ctrl+V for their own text paste. In the VS Code extension's chat panel, paste into the prompt box with the editor's normal paste instead.

Why is image paste not working in Claude Code?

Check whether the CLI is running on another machine over SSH, whether you are in the VS Code extension's prompt box, and whether you pressed your platform's key: Alt+V on Windows and WSL, Ctrl+V on macOS and Linux. Then update, since Windows screenshot paste was fixed in v2.1.141 and WSL's in v2.1.157. Dragging the file in or typing its path skips the clipboard.

Can you paste an image into Claude Code over SSH?

Not into the CLI from your local clipboard: since v2.1.2, pasting an image over SSH shows an error that suggests scp. Copy the file to the server with scp and type its path, or attach the image at claude.ai/code if the session has Remote Control on.

How do I paste a screenshot into Claude Code in VS Code?

In the extension's chat panel, copy the screenshot and paste it into the prompt box, where it attaches as an image you can remove with its X. In the CLI inside VS Code's integrated terminal, press Alt+V on Windows and WSL, or Ctrl+V on macOS and Linux; on macOS, Cmd+V has also pasted images there since v1.0.61.

Why doesn't Ctrl+V paste an image into Claude Code in WSL?

Claude Code binds both Ctrl+V and Alt+V in WSL, but Windows Terminal's paste command takes priority over a Linux program's Ctrl+V, so press Alt+V there. To give Ctrl+V back to programs in WSL, unbind it in Windows Terminal's settings.json, which leaves Ctrl+Shift+V as the text paste.

Advertisement
Swapnil Biswas

Written by Swapnil Biswas

Product Marketing & Growth Strategist. I write about AI, SEO, and marketing strategy from real experience - not theory.