Repository navigation
Releases: jaycverg/clip2remote
Release list
v0.2.0 — Linux clients and password-only SSH hosts
Adds Linux clients and makes password-only SSH hosts work with no setup.
Added
- Linux clients (beta). The clipboard is read through
wl-pasteon Wayland orxclipon X11, coveringtext/uri-listplus the GNOME and legacy Nautilus flavors, and PNG screenshots. Copy a file in Files or Dolphin and paste it into the terminal exactly as on macOS. - Password-only hosts work without configuration. When ssh rejects the upload for lack of credentials, clip2remote asks for the password once and opens a background master connection;
ControlPersistkeeps it warm so later pastes reuse it silently. The password is never written to disk and never placed in an environment variable — it travels through a 0600 FIFO in a 0700 directory, read once by a generated askpass helper, and the directory is removed immediately. Requires OpenSSH 8.4+ on the client (forSSH_ASKPASS_REQUIRE); tunable viaclip2remote.masterPersistSeconds. Ctrl+Shift+Valso triggers the paste, the conventional terminal paste on Linux.- A missing
wl-clipboard/xclip, or no graphical session, is reported once per session with the install command instead of failing silently on every paste.
Fixed
- Uploads no longer demand a second authentication on a password-only host.
reuseSshConnectionused to impose its ownControlPath, overriding any multiplexing the user had configured — so an ssh master already authenticated for the window (the one Remote-SSH holds open) was ignored, and the upload tried to open a fresh connection thatBatchMode=yescannot authenticate. clip2remote now consultsssh -G <host>and inherits the user's master. Affects every client platform, not just Linux. - A remote window with no resolvable SSH target no longer inserts client-side paths. Connecting to a host without opening a folder leaves no authority to read, so the window looked local and (with
enableInLocalWindowson) injected the client's own paths into a terminal on the remote, where they do not exist. Such a window now reports the problem instead. - Staged screenshots live under the OS temp dir rather than a hardcoded
/tmp.
Verified
- macOS client — macOS 26.5.2 (25F84), VS Code 1.131.0, Node 24.11.1. Unit suite 67/67. Live: a Finder-copied file pasted into a Remote-SSH terminal — uploaded, deduplicated on repeat, remote path inserted — against both a Linux and a macOS remote.
- Linux client (beta) — Ubuntu 24.04.4 LTS, Node 24.11.1, wl-clipboard 2.2.1 and xclip 0.13 present. Unit suite 67/67. The clipboard backend has not been run against a live desktop session. That is what beta means here.
- Windows client — not supported in this release;
Ctrl+Vfalls through to VS Code's own paste.
Full notes: CHANGELOG.md
v0.1.1 — control socket path fix
Patch release: fixes multiplexing to hosts with a long user@host:port.
Fixed
unix_listener: path ... too long for Unix domain socketwhenreuseSshConnectionwas on and the target was long enough to overrunsockaddr_un.sun_path(104 bytes on macOS). The control socket is now a fixed-width hash of the target rather than ssh's unbounded%r@%h:%p, with a/tmpfallback for when the OS temp dir is itself long enough to blow the budget — which it is on macOS, whereTMPDIRis a ~48-character/var/folders/…path.
Full notes: CHANGELOG.md
v0.1.0 — first release
First release, now on the VS Code Marketplace.
Paste any file — zip, video, PDF, anything — from your Mac clipboard into a VS Code terminal. In a Remote-SSH window the file is uploaded and the remote path is typed at your prompt, so a terminal agent like Claude Code can read it immediately.
Why it's different
Existing paste extensions are image-only and run on the remote host, reaching your Mac clipboard through a webview and shipping bytes back as base64 — hence their ~10 MB caps. navigator.clipboard.read() also cannot see Finder-copied files at all.
Clip2Remote declares "extensionKind": ["ui"] so the extension host runs on your Mac, reads the real pasteboard natively, and streams the file with scp. No base64, no webview, no size ceiling.
Included
- Multi-file clipboard, filenames with spaces, and in-memory screenshots (TIFF → PNG conversion, since macOS often puts only TIFF on the pasteboard).
- Unchanged files are never re-uploaded; optional SSH connection multiplexing (measured 397 ms → 38 ms per round trip).
- Inert in local windows by default —
Cmd+Vreturns to VS Code before the clipboard is even probed. - Non-file clipboard content always falls through to a normal paste.
Verified
macOS 26.5.2 client against both Linux and macOS remotes over Remote-SSH: extension host confirmed running locally, authority resolved from the real window, upload integrity MD5-matched, deduplication and terminal injection confirmed.
macOS clients only for now — see the README's Portability section for the seam another platform would need.
Install
From the marketplace, or download the .vsix below and run code --install-extension clip2remote-0.1.0.vsix.