Image Paste Functionality Broken on Windows Platform

Status Closed — not planned
Maintainer reply None cached
Activity 13 comments · opened Jul 24, 2025 · closed Jan 24, 2026

Bug Description
The ctrl+v for putting an image is not working at all on windows

Environment Info

  • Platform: win32
  • Terminal: cursor
  • Version: 1.0.59
  • Feedback ID: 554150ff-9be0-44e0-aaa0-a35e9bea1ac7

Errors

[]

View original on GitHub ↗

13 Comments

hakonhagland · 1 year ago

Same problem with claude running from Ubuntu 24.04 WSL in Windows 11. I can paste the image (CTRL+V) on the clipboard to any other program fine. But in claude pressing CTRL+V does nothing.

rizrmd · 1 year ago

I just created a windows app to do this, It will copy the current screenshot as path, and you can ctrl+v to claude code: https://github.com/rizrmd/shotpath

10eputzen · 1 year ago

I think it only works for MAC - not on windows (WSL). I have to manually drag the image into my repo and from there into the Claude CLI. Ugly but it works. A copy + paste would really be appreciated.

neondeex · 1 year ago
I just created a windows app to do this, It will copy the current screenshot as path, and you can ctrl+v to claude code: https://github.com/rizrmd/shotpath

It is not generating a wsl path for the screenshot it is a normal windows path

PierrunoYT · 1 year ago

Same here

deadeuzesse · 12 months ago

CTRL+V stopped working for me around 10 days ago.
Alt+V now works.
Did nout found any doc or info on that in docs :/

hemangjoshi37a · 9 months ago

CONGRATULATIONS : i successfully resolved the issue. basically using ubuntu in wayland makes the image paste by CTRL+V work in claude code while in X11 does not work.

github-actions[bot] · 8 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.

khitab · 8 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.

Still happening.

titaniumshovel · 8 months ago

Python workaround for Windows users (no exe required)

For those who can't use shotpath.exe due to corporate security policies blocking downloads or PowerShell Constrained Language Mode, here's a pure Python alternative:

Setup

  1. Install dependencies:
pip install pillow pyperclip
  1. Save this as shotpath_watch.py in your home folder:
import os
import time
import hashlib
from datetime import datetime, timedelta
from PIL import ImageGrab
import pyperclip

folder = os.path.join(os.environ['TEMP'], 'shotpath')
os.makedirs(folder, exist_ok=True)

def cleanup_old_files(max_age_hours=24):
    """Delete screenshots older than max_age_hours"""
    cutoff = datetime.now() - timedelta(hours=max_age_hours)
    deleted = 0
    for f in os.listdir(folder):
        filepath = os.path.join(folder, f)
        if os.path.isfile(filepath):
            mtime = datetime.fromtimestamp(os.path.getmtime(filepath))
            if mtime < cutoff:
                os.remove(filepath)
                deleted += 1
    if deleted:
        print(f"[cleanup] Deleted {deleted} files older than {max_age_hours}h")

last_hash = None
last_cleanup = datetime.now()
print("ShotPath watcher running... (Ctrl+C to stop)")
print("Take a screenshot with Win+Shift+S - path will auto-copy to clipboard")
print("Auto-cleanup: files older than 24h deleted hourly\n")

cleanup_old_files()  # Initial cleanup

while True:
    try:
        img = ImageGrab.grabclipboard()
        if img:
            img_hash = hashlib.md5(img.tobytes()).hexdigest()
            if img_hash != last_hash:
                last_hash = img_hash
                timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
                filepath = os.path.join(folder, f"shot_{timestamp}.png")
                img.save(filepath)
                pyperclip.copy(filepath)
                print(f"[{timestamp}] Saved: {filepath}")
        
        # Cleanup every hour
        if datetime.now() - last_cleanup > timedelta(hours=1):
            cleanup_old_files()
            last_cleanup = datetime.now()
        
        time.sleep(0.5)
    except KeyboardInterrupt:
        print("\nStopped.")
        break
    except:
        time.sleep(0.5)
  1. For auto-start on Windows login, save this as shotpath.vbs in your Startup folder (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\):
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "pythonw """ & CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\shotpath_watch.py""", 0, False

Usage

  • Win+Shift+S → snip screenshot
  • Path is auto-copied to clipboard
  • Paste path into Claude Code
  • Files older than 24h are auto-deleted

Works around both the clipboard image detection bug and corporate security restrictions that block exe downloads.

github-actions[bot] · 7 months ago

This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.

marcindulak · 7 months ago

This issue was closed incorrectly despite recent human comments. This behavior of the bot is reported at https://github.com/anthropics/claude-code/issues/16497. Please upvote that issue, so maybe it gets noticed.

github-actions[bot] · 7 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.