The original native Cmd+V screenshot extension for VS Code Remote-SSH.
Cmd+V screenshots from your Mac clipboard into remote SSH terminals. Everywhere else, paste works exactly as it always does — the extension only activates when you need it.
This extension just uses Cmd+V. It only activates when you're in a remote SSH terminal with an image on your clipboard — everywhere else, Cmd+V works exactly as it always does. Paste in your editor, paste in a local terminal, paste text into a remote terminal — all normal. The only time the extension steps in is the one moment you actually need it. Nothing to remember, nothing to configure. Unlike other extensions that require a separate keyboard shortcut like Ctrl+Alt+V or Alt+I, there's nothing new to learn.
While connected to a remote host via Remote-SSH, with a workspace folder open:
- You take a screenshot on your Mac (Cmd+Ctrl+Shift+4)
- You Cmd+V in a remote terminal in VS Code
- The extension saves the PNG to
.vscode-screenshots/in the workspace on the remote host - The file path is typed into the terminal (without pressing Enter)
- If the clipboard has text instead of an image, normal paste happens — no interference
The extension only activates when all three conditions are met: remote SSH session + terminal focused + image on clipboard. Otherwise it's invisible.
Perfect for Claude Code running on remote VMs — paste a screenshot and the path is ready for your prompt.
Install pngpaste on your Mac:
brew install pngpaste- macOS — uses
pngpastefor clipboard image reading - VS Code Remote-SSH — the extension runs locally on your Mac and writes files to the remote via
workspace.fs - An open workspace folder on the remote host
- Transparent Cmd+V — no new shortcuts to learn, just paste as normal
- Remote-first — files are saved on the remote host, not locally
- Optional git exclusion — automatically add
.vscode-screenshots/to.gitignore(opt-in via settings) - Auto cleanup — screenshots older than 30 days are deleted (configurable)
- Non-intrusive — only activates in remote SSH terminals with an image on the clipboard. Local terminals, text paste, and non-remote sessions are completely unaffected
- Zero config — works out of the box, settings are optional
| Setting | Default | Description |
|---|---|---|
terminalScreenshotPaste.screenshotDir |
.vscode-screenshots |
Directory name in the workspace root for saving screenshots |
terminalScreenshotPaste.retentionDays |
30 |
Delete screenshots older than this many days. Set to 0 to keep forever. |
terminalScreenshotPaste.manageGitignore |
false |
Auto-add screenshot directory to .gitignore |
If pasting doesn't work, check the output log: View → Output → select SSH Screenshot Paste from the dropdown.
Common issues:
- "pngpaste is not installed" — run
brew install pngpasteon your Mac - "No workspace folder open" — open a folder on the remote host (File → Open Folder)
- Normal paste happens instead of screenshot — make sure you copied to clipboard with Cmd+Ctrl+Shift+4 (not just Cmd+Shift+4, which saves to a file)
Issues and pull requests are welcome at github.com/jamesprnich/ssh-screenshot-paste.