Your agent runs over SSH and only ever sees the remote box's clipboard — so the screenshot on your laptop never shows up. cssh bridges the two: screenshot, then press Ctrl+V in your session.
One setup script · a few KB · no runtime deps beyond bash + ssh
Works with Claude Code · Codex · any terminal app that pastes via xclip
The gap: your image lives in your laptop's clipboard; your agent, running over SSH, only ever asks the remote's. cssh ships the bytes across a connection that's already warm — no X server, no OSC 52, no copy-paste dance.
A real sequence, start to finish — capture on your machine, sync over SSH, paste on the remote.
Grab anything the way you always do. It lands in your local clipboard — nothing new to learn.
A background daemon (or your hotkey) pushes the PNG to ~/.cssh/latest.png on the remote over a multiplexed connection.
A shimmed xclip, ahead of the real one on PATH, serves your image once — then gets out of the way.
Every component embeds in a single installer. Pipe it to bash — no secondary downloads, no package to trust.
The whole thing is a handful of bash scripts. Auditable in one sitting; you can read every line.
SSH connection multiplexing keeps a warm socket open, so images land in milliseconds — not a fresh handshake each time.
Each image is served once, with a TTL guard. Paste an image, then your very next paste is ordinary text.
Your laptop needs only bash + ssh. The remote needs bash, stat, date. That's it.
Pretty menus with gum when it's installed, a clean built-in numbered menu when it isn't. Your call.
Reads your OS clipboard natively — osascript on macOS, wl-paste / xclip on Linux, PowerShell on Windows.
The shim hooks the exact xclip calls your agent makes on Linux. Bash, stat, and date are all it needs.
Run it on your laptop. It reads ~/.ssh/config, lets you pick your hosts, and wires up both ends.
then screenshot → Ctrl+V inside your agent on the remote
Changed your mind? Uninstall is one line too — it reverses both ends and backs up your SSH config.