Paste images from clipboard into terminals for Claude Code conversations. Optimized for Windows & WSL environments.
Works with all VS Code-based IDEs: VS Code, Cursor, Windsurf, VSCodium, and other forks.
Based on agg4code/claude-image-paste - enhanced with WSL path handling, auto-save to project directory, and automatic cleanup.
- 📋 Clipboard Images: Paste screenshots directly from your clipboard
- 📁 File Support: Copy image files from Explorer and paste their paths
- 🖼️ Multiple Formats: PNG, JPG, JPEG, GIF, BMP, WebP, SVG, ICO, TIFF
- 🔄 WSL Path Conversion: Automatically converts paths for WSL terminals
- 📂 Auto-Save to Project: Save images to your project directory instead of temp
- 🧹 Auto-Cleanup: Keeps only the last N images to prevent folder bloat
- 🤖 @ Prefix: Automatically adds
@prefix for Claude Code file imports - 📝 Auto-Gitignore: Automatically adds save directory to
.gitignore - ✏️ File Renaming: Optional rename dialog for custom filenames
- 📅 Smart Naming: Auto-generates timestamped filenames with configurable prefix
Install from the marketplace:
ext install melon-hub.claude-code-image-paste-wsl
Or search "Claude Code Image Paste WSL" in the Extensions panel.
These IDEs don't always sync with the VS Code Marketplace. Install manually:
- Download the latest
.vsixfrom Releases Ctrl+Shift+P→ "Install from VSIX..."- Select the downloaded file
- Restart the IDE
-
Copy an image:
- Take a screenshot (
Win+Shift+S,PrintScreen, etc.) - OR copy an image file from File Explorer
- OR right-click an image in browser → Copy image
- Take a screenshot (
-
With your terminal open, press:
Ctrl+Alt+V -
The image path is inserted with
@prefix, ready for Claude Code!
Note: The keyboard shortcut requires a terminal to be open. The command palette (
Ctrl+Shift+P→ "Paste Image for Claude") is available but will shift focus away from the terminal.
Configure in VS Code Settings (Ctrl+,) → search "Claude Image Paste":
| Setting | Default | Description |
|---|---|---|
saveDirectory |
"" |
Where to save images (see below) |
skipRenamePrompt |
false |
Skip the file rename dialog |
maxImages |
10 |
Max images to keep in directory (oldest auto-deleted) |
filenamePrefix |
img_ |
Prefix for auto-generated filenames |
Images are automatically named with a timestamp:
img_20250103_143052.png
│ │ │
│ │ └── Time: 14:30:52 (HHMMSS)
│ └─────────── Date: 2025-01-03 (YYYYMMDD)
└────────────────Prefix (configurable)
This ensures filenames are unique and sort chronologically in file explorers.
| Value | Behavior | Example Result |
|---|---|---|
"" (empty) |
Uses system temp folder | C:\Users\You\AppData\Local\Temp\img_20250103_120000.png |
.claude-images |
Relative to current workspace root | [workspace]/.claude-images/img_20250103_120000.png |
screenshots |
Relative to current workspace root | [workspace]/screenshots/img_20250103_120000.png |
~/Pictures |
Expands ~ to home directory |
/home/you/Pictures/img_20250103_120000.png |
/absolute/path |
Uses exact path | /absolute/path/img_20250103_120000.png |
Key point: Relative paths (like .claude-images) are resolved from whatever folder you have open in VS Code/Cursor. So if you open /home/user/my-project, images save to /home/user/my-project/.claude-images/.
The folder is automatically created if it doesn't exist, and automatically added to .gitignore.
Add to your VS Code/Cursor settings.json:
{
"claudeImagePaste.saveDirectory": ".claude-images",
"claudeImagePaste.skipRenamePrompt": true,
"claudeImagePaste.maxImages": 10
}This configuration:
- ✅ Saves images to
.claude-images/in your project root - ✅ Skips the rename prompt for faster workflow
- ✅ Auto-deletes old images, keeping only the last 10
- Windows 10/11 with WSL2 (or native Windows)
- PowerShell (comes with Windows)
- VS Code 1.74.0+ or any VS Code-based IDE (Cursor, Windsurf, VSCodium, etc.)
"No active terminal found"
- Open a terminal first (
Ctrl+`) - Make sure at least one terminal exists in VS Code/Cursor
"No image in clipboard"
- Ensure you copied an image (not just selected it)
- Try copying again - some apps don't copy to clipboard correctly
"Failed to move file to custom directory"
- Check the directory path is valid
- Ensure you have write permissions
- Try using an absolute path instead of relative
Keyboard shortcut doesn't work
- Ensure a terminal is open (doesn't need to be focused)
- Check for conflicts:
Ctrl+K Ctrl+S→ search "Paste Image" - Try reassigning to a different shortcut
Extension not updating
- Fully close and reopen VS Code/Cursor (reload window may not be enough)
Have an idea or found a bug? Contributions welcome!
- Bug reports: Open an issue
- Feature requests: Open an issue
- Pull requests: Fork, make changes, submit a PR
- Original Extension: claude-image-paste by agg
- WSL Fork: melon-hub
MIT License - see LICENSE