Screenshot Support via Clipboard Paste in Claude Code CLI

Open 💬 22 comments Opened Nov 28, 2025 by apuetzevape

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When working with Claude Code on PhpStorm, I frequently need to show Claude the visual result
of its work - to verify layouts, check rendering, identify visual bugs, or point
out CSS/styling issues. The web chat interface supports pasting screenshots directly
(Ctrl+V / Cmd+V), making this workflow seamless.

The Claude Code CLI has no way to accept images or screenshots. This forces me to
switch to the web interface just to show a screenshot, breaking the development flow
and context. For visual feedback (UI issues, layout problems, responsiveness checks),
screenshots are often more efficient than describing the problem in text.

Proposed Solution

Claude Code CLI should support pasting images from clipboard, similar to the web chat:

  1. User presses Ctrl+V (or Cmd+V on Mac) in the CLI input
  2. If clipboard contains an image/screenshot, Claude Code detects it and asks

"Image detected. Include in message?" (Yes/No)

  1. The image is attached to the message and sent to Claude for analysis
  2. Claude can see the screenshot and provide feedback on visual issues, styling

problems, layout issues, etc.

  1. Support common formats: PNG, JPG, WebP (same as web chat)

Alternative Solutions

Current workarounds are all suboptimal:

  • Switch to web chat interface (context loss, flow interruption)
  • Save screenshot to file and ask Claude to view it (cumbersome, not part of conversation flow)
  • Describe visual issues in text (inefficient, often unclear)
  • Use third-party tools to embed images in CLI conversations (hacky, not native)

None of these match the simplicity of native clipboard support.

Priority

High - Significant impact on productivity

Feature Category

Developer tools/SDK

Use Case Example

Scenario: I'm working on a Shopify theme customization. Claude Code is modifying
the product card styling. I run the code and take a screenshot of the result in
my browser - it shows the layout is broken on mobile.

Current workflow:

  1. Take screenshot
  2. Open browser, go to Claude web chat
  3. Paste screenshot and explain the issue
  4. Claude provides fix
  5. Copy fix back to IDE
  6. Lose context of the ongoing CLI session

Desired workflow:

  1. Take screenshot
  2. In Claude Code CLI, paste image (Ctrl+V)
  3. Type: "Mobile layout is broken, see screenshot above"
  4. Claude analyzes the screenshot, identifies the problem
  5. Provides fix immediately
  6. Continue in same session without context loss

Additional Context

Technical considerations:

  • Reuse existing image processing from web chat (same models, same capabilities)
  • Handle clipboard detection across Windows, Mac, Linux
  • File size limits should match web chat (e.g., max 5MB)
  • Support drag-and-drop of image files as alternative to clipboard

User context:
This is essential for developers working on visual components, CSS/styling,
responsive design, and UI bugs. Currently, Claude Code is not viable for
these workflows without switching to web chat. Adding clipboard image support
would make Claude Code a complete IDE-integrated development tool.

Related: This pairs well with the previous feature request about session
persistence - combined they would make Claude Code suitable for longer,
more complex development sessions including visual/UI work.

View original on GitHub ↗

22 Comments

mike1858 · 7 months ago

For macOS and Linux users at least, you can paste images directly into the chat via <kbd>Ctrl+V</kbd> (not <kbd>Cmd+V</kbd>). On Windows, you can drag images directly into the Claude Code input box where you send messages, but you still have to save the screenshot first.

https://code.claude.com/docs/en/common-workflows#work-with-images:~:text=You%20can%20use,your/image.png%E2%80%9D

whackedMallard · 7 months ago
For macOS and Linux users at least, you can paste images directly into the chat via Ctrl+V (not Cmd+V). On Windows, you can drag images directly into the Claude Code input box where you send messages, but you still have to save the screenshot first. https://code.claude.com/docs/en/common-workflows#work-with-images:~:text=You%20can%20use,your/image.png%E2%80%9D

Not sure about native Linux, but Ctrl+V pasting doesn't work when using Claude code on ubuntu WSL2 from Win11

mike1858 · 7 months ago

@whackedMallard Did you try dragging the image directly from File Explorer into the CC input box?

whackedMallard · 7 months ago

That works but is not useful. I want to paste directly from clipboard without saving

whackedMallard · 7 months ago

workaround might be a slight derivation of the below (untested):

Setup

  1. Create the script ~/.local/bin/lastshot:

``bash
#!/bin/bash
LATEST=$(ls -1t /mnt/c/Users/YOUR_USERNAME/Pictures/Screenshots/*.png | head -n1)
echo "$LATEST"
``

  1. Make executable:

``bash
chmod +x ~/.local/bin/lastshot
``

  1. Add to your CLAUDE.md:

``
When I type 'ss', run
lastshot and read the returned screenshot path.
``

## Usage

  • Take screenshot with Windows (Win+Shift+S, save to Screenshots folder)
  • In Claude Code, type "ss" to reference your latest screenshot
ethanfischer · 7 months ago

Anyone know if this is a limitation of terminal applications on windows or claude code? I've tried windows terminal and alacritty both with WSL1 and neither allowed pasting images

Edit: i'm guessing it's a claude code windows implementation issue. Just realized I can't paste images in iTerm in mac so I'm thinking claude code is just reading the clipboard when you hit ctrl+v on mac

github-actions[bot] · 6 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

whackedMallard · 6 months ago
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

Issue still occurring

localredhead · 6 months ago

I need a /paste command similar to Aider's capability.

minorcell · 5 months ago
I need a /paste command similar to Aider's capability.

I usually paste the picture in my work area and @ this picture, and Claude can understand.

polrue · 5 months ago

I also find this feature very interesting. I usually rely on images to “show” Claude the designs so it can understand them better. Without this, I have to resort to workarounds, which isn’t very practical — especially as a Windows user.

lamarquenet · 4 months ago

I cannot believe claude code has not make this happen yet, already late to the party, putting bullshit no one asked on their claude code cli app and not adding this incredible important feature and totally ignoring it.

ethanfischer · 4 months ago

Paste works for me on windows CLI using powershell and alt+v as of v2.1.19 and beyond

polrue · 4 months ago

Ethan, thanks for the tip. you were right!

Alt + V worked. I tried Ctrl + V, Shift + Insert... without any luck, but
I'm glad it works.

kirbysayshi · 4 months ago
For macOS and Linux users at least, you can paste images directly into the chat via Ctrl+V (not Cmd+V)

For MacOS I was amazed to find that CTRL+V works (especially because that means something completely different in terminals, usually)! But why does CMD+V for clipboard images work on mac?

halboffen · 4 months ago

Workaround for Windows/WSL using a shell function + custom slash command: https://gist.github.com/halboffen/5af17dc08ff34e75737cccdfc99c2e8a

holydrug · 4 months ago

+1 on this feature request.

AlexBuraks · 4 months ago

Adding macOS-specific observations (iTerm2 + external Logitech keyboard):

Claude Code v2.1.74, macOS Darwin 25.2.0, iTerm2

Two behaviors that I haven't seen reported:

  1. Image paste fails when text is already in the input field. If the input field is empty, Ctrl+V pastes

the image successfully. But if I've already typed some text, Ctrl+V does nothing — the image is silently
ignored. Expected: image should be appended regardless of existing text.

  1. Intermittent paste failures. Even with an empty input field, Ctrl+V sometimes works and sometimes

doesn't within the same session. Claude Code occasionally detects the image in clipboard and prompts "Press
Ctrl+V to paste", but pressing Ctrl+V still does nothing.

Both issues are independent of key mapping — verified the correct macOS Control+V is being sent.

dmsdc-ai · 4 months ago

macOS Solution: Clipboard Image Paste in Kitty Terminal

For anyone struggling with image paste on macOS + Kitty, here's a working solution that enables unlimited image pastes via Cmd+V (or Ctrl+V).

The Problem

Kitty's paste_from_clipboard only handles text. There's no native way to paste clipboard images into Claude Code.

The Solution: clip2path Script

A lightweight bash script that intercepts paste, checks for clipboard images, saves to a temp file, and injects the file path into the terminal via Kitty's remote control API. Claude Code automatically detects the image path and displays it as [Image #N].

Step 1: Install pngpaste

brew install pngpaste

Step 2: Create ~/bin/clip2path

#!/bin/bash
# clip2path - macOS clipboard image paste for Kitty + Claude Code
# If clipboard has image → save to temp file, paste path
# If clipboard has text → delegate to Kitty's built-in paste

TMPFILE="/tmp/clip2path_$(date +%s)_$$.png"

if /opt/homebrew/bin/pngpaste "$TMPFILE" 2>/dev/null; then
    kitty @ send-text --match state:focused -- "$TMPFILE"
else
    rm -f "$TMPFILE"
    kitty @ action paste_from_clipboard
fi
chmod +x ~/bin/clip2path

Step 3: Update ~/.config/kitty/kitty.conf

# Enable remote control (required)
allow_remote_control socket-only
listen_on unix:/tmp/kitty-sock

# Clipboard settings
clipboard_control write-clipboard write-primary read-clipboard read-primary

# Override paste to use clip2path
map cmd+v launch --type=background --allow-remote-control --keep-focus ~/bin/clip2path
map ctrl+v launch --type=background --allow-remote-control --keep-focus ~/bin/clip2path

Step 4: Restart Kitty — done!

How It Works

  1. Cmd+V triggers clip2path as a background process
  2. Script checks clipboard for image data via pngpaste
  3. Image found: saves to /tmp/clip2path_<timestamp>_<pid>.png, injects path via kitty @ send-text
  4. No image: falls back to Kitty's native paste_from_clipboard for normal text paste

Tested With

  • macOS (Darwin 24.6.0, Apple Silicon)
  • Kitty 0.45.0
  • Claude Code (Anthropic CLI)
  • Successfully pasted 6+ images consecutively with no failures

Credits

Inspired by claude-code-kitty-paste (Linux solution). This is the macOS adaptation using pngpaste instead of wl-paste/xclip.

liftconfig · 3 months ago

Here's a general solution for tmux + MacOS users.

Enables a tmux keybind to save a clipboard image to /tmp and paste the path directly into tmux. Requires pngpaste.

brew install pngpaste

Step 1: Create the script

~/dotfiles/tmux/scripts/clip2img

#!/bin/bash
TMPFILE="/tmp/clip2img_$(date +%s)_$$.png"

if pngpaste "$TMPFILE" 2>/dev/null; then
  echo -n "$TMPFILE"
else
  rm -f "$TMPFILE"
  exit 1
fi

chmod +x ~/dotfiles/tmux/scripts/clip2img

Step 2: Add tmux binding

I used prefix + v

~/dotfiles/tmux/tmux.conf
bind v run-shell -b "~/dotfiles/tmux/scripts/clip2img | tmux load-buffer -; tmux paste-buffer"
moravsky · 3 months ago

Windows workaround: AutoHotkey v2 script

For anyone stuck on Windows where clipboard paste doesn't work — here's a clean workaround using AutoHotkey v2.

The idea: leave Win+Shift+S alone (normal snip, image on clipboard). Add a second hotkey Ctrl+Win+Shift+S that triggers the same Snipping Tool, but after the snip completes, replaces the clipboard with the file path instead of the image. Paste the path into Claude Code.

Requires Windows 11 Snipping Tool (which auto-saves every snip to %USERPROFILE%\Pictures\Screenshots) and AutoHotkey v2.

Gist: https://gist.github.com/moravsky/e521900225004ef5f8100d69a543b050

How it works:

  1. Records the newest file in the Screenshots folder
  2. Fires Win+Shift+S (normal Snipping Tool)
  3. Polls the folder until a new file appears
  4. Waits for Snipping Tool to finish its clipboard activity
  5. Overwrites clipboard with the file path

To auto-start, drop a shortcut to the .ahk file into shell:startup.

Works great, but this really should be a native Claude Code feature.

hqhq1025 · 3 months ago

For macOS users: I built clipaste as a workaround that makes screenshot paste work today, without waiting for an official fix.

It's a tiny background daemon (~18 MB, 0% CPU) that detects when a screenshot is on the clipboard and auto-saves it as a temp PNG, then registers the file path. After that, both Cmd+V (file path paste) and Ctrl+V (image data paste) work in any terminal + Claude Code / Codex CLI.

brew install hqhq1025/clipaste/clipaste
brew services start clipaste

Works with Ghostty, Alacritty, iTerm2, Terminal.app.