Skip to content
vmup
DocsLearn

September 12, 2026 · #comparisons

Claude Code SSH screenshot tools compared

Compare scp, clipaste, cssh, clipssh, PasteHop, imgssh and vmup for sending Claude Code screenshots over SSH, including setup and workflow trade-offs.

Use scp when you want the smallest trustworthy solution for one screenshot; use a path uploader when you repeat that task, or a batch tool when several files belong together. Clipboard shims feel closer to native paste, but they add a tunnel, remote helper or display dependency that must be maintained.

A visual summary comparing the tested failure before upload with the successful remote PNG after an OpenSSH transfer.

The control case used for this comparison is a real OpenSSH transfer: the remote path is absent before upload and readable afterward.

Start with the manual scp baseline

Before installing a clipboard tool, verify the workflow with scp:

scp bug.png user@server:/tmp/bug.png

Expected result: /tmp/bug.png exists on the host where Claude Code runs.

Inspect /tmp/bug.png.

Expected result: Claude Code receives a server-side path and does not need access to the laptop clipboard.

If that is enough, stop here. If the repetition is the problem, install vmup and complete the first SSH upload before comparing it with a shim or path uploader.

Tool comparison

ToolDesignRemote changesBest fitMain trade-off
scpManual file copyNone beyond the uploaded fileOne named fileYou type every source and remote path
clipasteLocal clipboard daemon, SSH forwarding and remote helperInstalls helpers and SSH configurationFrequent Claude Code screenshot pasteMore moving parts; Codex uses a printed-path helper
csshClipboard sync plus remote xclip shimInstalls a shim; optional Xvfb for CodexNative-feeling Claude Code pasteModifies remote PATH and may run a daemon
clipsshReads local clipboard, uploads a PNG, copies the remote pathUploaded file onlyOne screenshot with no remote daemonScreenshot-focused; /tmp cleanup is your job
PasteHopUploads a clipboard image or file and inserts/copies its remote pathUploaded file; optional terminal integrationWezTerm or Kitty users who want a paste hookRequires host trust and terminal integration for native paste
imgsshWraps the SSH process and uploads on a triggerUploaded file onlyGhostty users who accept an SSH wrapperYou must connect through the wrapper; PNG-focused
vmupBatches paths, clipboard items or watched files into one remote folderUploaded batch plus TTL cleanupSeveral images or mixed file typesProduces a folder prompt, not a native image pill

Every tool row links to its current project documentation. Check the project again before installation because flags, supported terminals and cleanup behavior can change.

Shims versus path uploaders

Clipboard shims try to preserve Ctrl+V by making the remote clipboard look populated. clipaste and cssh fit this category. They are closest to local Claude Code, but they may alter SSH configuration, install a remote command or keep a background process alive.

Path uploaders accept that the agent needs a file. clipssh, PasteHop and imgssh transfer an image and provide the resulting remote path. They are easier to reason about because the success condition is visible with ls or file.

Expected result: after either design succeeds, Claude Code receives a readable remote file. The difference is whether the tool simulates paste or exposes the path.

Where vmup differs

vmup bug.png console.png notes.pdf

Expected result: one Agent folder: path contains the whole set, and the generated prompt asks the agent to inspect that folder.

vmup does not aim to recreate [Image #1] inside Claude Code. It is for the adjacent problem: several files, mixed formats, one remote directory and automatic expiry.

How to choose

  • One saved PNG and no new dependency: scp.
  • One clipboard screenshot and a remote path is acceptable: clipssh or PasteHop.
  • Native-feeling Claude Code paste is worth a daemon or remote shim: clipaste or cssh.
  • Ghostty-specific wrapper flow: imgssh.
  • Several files or mixed formats: vmup.

For the complete manual workflow, read paste an image into Claude Code over SSH. If the TUI prints an error, read fix “No image found in clipboard”.

Last tested with

  • Control transfer: macOS 26.6, OpenSSH 10.3p1, localhost SSH target, September 16, 2026
  • Linux control transfer: Ubuntu 26.04, OpenSSH 10.2p1, Lima VM to localhost SSH target
  • Batch workflow: vmup 0.4.0
  • Comparison claims: checked against each linked project README on September 16, 2026; third-party tools were not installed for this article

Quick answers

What is the simplest way to give Claude Code a screenshot over SSH? Save the PNG, copy it with scp, and paste the remote path into Claude Code.

Which tools avoid a remote clipboard daemon? scp, clipssh, PasteHop, imgssh and vmup upload files without requiring a persistent remote clipboard daemon.

Which options handle files beyond screenshots? scp, PasteHop and vmup accept explicit files. Confirm each tool’s current type restrictions before depending on it.

When should I use a clipboard shim? Use one when preserving the paste gesture matters more than minimizing remote setup and background processes.

When should I use a batch folder? Use a batch when several screenshots, documents or recordings belong to one agent request and one directory prompt is easier than listing every path.

Disclosure: vmup is maintained by the author of this article. The comparison keeps scp first so you can solve the problem without installing vmup or another helper.

Send a batch instead of pasting

vmup uploads the files over SSH and copies a prompt with the remote folder path.

Install·First upload

More guides

  • How to paste an image into Claude Code over SSH
  • Claude Code: no image found in clipboard over SSH

All guides

Maintained by nyxsky404 on GitHub.

GitHubnpmIssuesSecurityChangelog