pastebridge is a local shared clipboard, two lanes, between two machines you own on the same network. Paste terminal output on one and read it on the other. Send a command back and copy it with one tap. It runs from a single binary for Linux, macOS or Windows, writes nothing down, and makes no outbound requests — there is no relay and no cloud in the middle.
Two devices, one feed, both running in this page. Switch sharing on, join from the phone with the PIN it shows you, then paste something into either lane and watch it land on the other side. Nothing you type is stored or sent anywhere — open the network tab and watch.
Pasting terminal output frequently carries more than you intended: API tokens, connection strings, internal hostnames, file paths, environment variables and session identifiers all appear in ordinary error messages. Whatever you paste becomes visible to every device currently paired, and stays in memory until it is cleared or the process stops.
The command lane exists so that text can be copied out of it and pasted into a terminal. That is its purpose, and it is also its risk. Nothing inspects, parses, validates or reviews what appears there, and the absence of any warning is not an assurance. Read every command before you run it, however routine the habit becomes. A command suggested by a language model is an untrusted stranger's advice that happens to be well phrased.
Pasting terminal output frequently carries more than you intended: API tokens, connection strings, internal hostnames, file paths, environment variables and session identifiers all appear in ordinary error messages. Whatever you paste becomes visible to every device currently paired, and stays in memory until it is cleared or the process stops.
The command lane exists so that text can be copied out of it and pasted into a terminal. That is its purpose, and it is also its risk. Nothing inspects, parses, validates or reviews what appears there, and the absence of any warning is not an assurance. Read every command before you run it, however routine the habit becomes. A command suggested by a language model is an untrusted stranger's advice that happens to be well phrased.
Both panes are the same page, so the "connection" here is a function call
rather than TLS on your LAN. The behavior is the real behavior: sharing off
means no listener, pairing takes a six-digit PIN and locks after ten wrong
guesses, switching sharing off ends the session, a leading $ is
stripped from a pasted command, and clearing a lane clears it everywhere at
once.
A Pi on a shelf. A server over SSH from a phone. A VM whose console doesn't do clipboard. A laptop across the room mid-install. The output you need is right there and completely stuck there, and re-typing an error into your phone to search it is how the evening goes.
psql: error: connection to server at "db01" failed:
FATAL: remaining connection slots are reserved…
It appears on the other device immediately, in full, selectable, with a copy button. Long blocks are clipped to a readable height with a control to open them out, because a thousand-line stack trace shouldn't cost you the rest of the page.
Search it, read the docs, ask a colleague, paste it into a language model. pastebridge has no opinion about this step and no connection to any of it. It is a clipboard, not a service.
$ psql -h db01 -U postgres -c "select…" → psql -h db01 -U postgres -c "select…"
One command per entry, each with its own copy button, so you're not
selecting text out of a wall on a touchscreen. A leading $
or # gets stripped, because the thing you copied out of a
tutorial usually has one and you don't want it.
The command lane exists so text can be copied out of it and pasted into a terminal. That is its purpose, and it is also its risk. Nothing inspects, parses, validates, or reviews what appears there — text arrives exactly as whoever is at the other end typed it, and the application has no opinion about whether a command is reasonable.
The workflow is designed to make copying quick, which means it is equally quick to copy something you didn't intend to. Read every command before you run it, however routine the habit gets.
Anyone holding the address and the PIN can read everything in both lanes and write into either of them. Write access matters more than it sounds: putting text into the command lane means putting text in front of someone who is in the habit of copying it into a shell. Share the PIN only with a device you control.
Routing an error into a model and a suggested command back is the obvious use of this tool, and we built it knowing that. pastebridge has no connection to any model, sends it nothing, and reviews nothing that comes back. Two things follow.
A model can be confidently wrong, and a suggested command may be destructive, inapplicable to your system, or simply mistaken. And because the text you paste in becomes part of what the model reads, content inside your own logs can steer what it suggests — log output is not always something you wrote.
API tokens, connection strings, internal hostnames, file paths, environment variables and session identifiers all turn up in ordinary error messages. Whatever you paste becomes visible to every paired device and stays in memory until you clear it or stop the process. Look at what you're pasting.
It is not built to withstand a determined adversary on your network, it does not authenticate the device at the other end beyond six digits, and it makes no claim to protect the content of what you paste. The certificate is self-signed: it defeats passive listening and it does not defeat someone already positioned to intercept and modify traffic between your two devices. Use it on a network you have reason to trust, and don't use it as a channel for material that would cause harm if read by someone else on that network.
A Pi, a NAS, a home server, a VM with an awkward console. Run it there
with -headless and read its output on whatever device is in
your hand.
The laptop is full of terminals and the phone is free. Errors go one way, commands come back the other, and neither of them goes through a chat app that keeps a copy.
The model lives on the device with the comfortable keyboard. The broken thing doesn't. This closes the gap without either of them talking to each other directly.
Two laptops, one feed, no screen share and no "can you send me that in Slack". Both ends can write to both lanes.
Chat apps, email drafts and paste sites all keep what you put in them. This holds the last few hundred entries in memory and forgets all of it when the process stops.
pastebridge writes no file for anything you paste. There is no database, no log file, no history and no cache. Entries are held in memory only, capped at the most recent 500 across both lanes, and every one of them is gone when the process stops. Clearing a lane clears it on every paired device at once.
~/.pastebridge/share-cert.pem
~/.pastebridge/share-key.pem
A TLS certificate and its key, so a device you've already paired doesn't have to accept a new certificate every time you restart. It contains no part of your content. It's regenerated when your machine's addresses change, because a certificate missing the address you typed gets rejected outright rather than warned about.
sudo tcpdump -i any host not 127.0.0.1
ls -la ~/.pastebridge/
Watch the traffic while you use it and you'll see two devices on your own network and nothing leaving it. Look in the directory and you'll find two PEM files and no third one. pastebridge is proprietary and you can't read its source, so these are the checks worth running — and both of them test the claims that actually matter.
Run the binary and it opens your browser at
http://127.0.0.1:8787 with the app and a sharing switch. Flip
the switch and a second listener starts on your network over HTTPS, on port
8788. The other device opens that address, accepts the certificate warning
once, enters the PIN on your screen, and joins the same feed.
Linux and Windows are x86-64, macOS is Apple silicon. Windows runs without a console window behind the browser; macOS is unsigned, so Gatekeeper asks the first time. Hashes for all three are below.
No browser, sharing already on. Read the PIN off the terminal and join from whatever you're holding. It builds for arm as well, so a Pi works, but we don't publish that binary — ask if you want one.
Without -pin a new six-digit PIN is generated each run, which is the better default. A fixed PIN is a convenience with an obvious cost.
Quits once the last browser has been gone that long. Worth setting: a forgotten process is a listener on your network with a live PIN. Quit from the header or Ctrl-C otherwise.
PORT, SHARE_PORT and PIN work as environment variables too.
Free to download and use, and free to pass on unmodified. License, Privacy, Safety notes and Imprint panels are inside the app, offline.
Each platform ships as one compressed archive with the binary inside it. Check it before you unpack it.
pastebridge-linux-v1_1 — ca90ddcc2d0fa93ff1a3818c495a629a58d3f27dc49db1312d841375e8f3268c
pastebridge-mac-v1_1 — 78f2aa8c91dc5c07e6445b3d80227ce0480e4f8b5a657442ba5d8dcc06d14d23
pastebridge-v1_1.exe — 3b78788183448e4e241e63b0c766317a70ce6b34ab1444874587e4a8097acf45
sha256sum -c reads the sums file, hashes the archive next to it and prints OK or FAILED. One line, because there is one file in it. If it fails, delete the download and fetch it again rather than unpacking it.
macOS ships shasum rather than sha256sum; -a 256 picks the same algorithm and -c checks the file the same way. The binary is unsigned, so Gatekeeper will ask the first time — right-click and choose Open, or run xattr -d com.apple.quarantine pastebridge-mac-v1_1.
curl.exe is built into Windows 10 and later, as is Get-FileHash, so there is nothing to install. The comparison prints OK or FAILED the same way sha256sum -c does. certutil -hashfile pastebridge-v1_1.zip SHA256 works too if you would rather read the hash yourself and compare it against the row above.
The archive hash covers the download. This one covers the file you will actually run, which is the one that matters if the archive was unpacked somewhere else or passed to you on a stick. Compare it with the Binary inside line in the table above; it should match character for character.
What a matching hash tells you is that the file arrived intact and is the same file we hashed. It does not tell you what the file does, and it cannot: a hash published on the same site as the download is only worth as much as the site. It catches a corrupted transfer or a tampered mirror. It is not an audit, and pastebridge is proprietary, so there is no source to audit against. The checks in the section above are the ones that test behavior.
pastebridge is free to download and use, with no paid tier planned. Donations cover build machines, signing, and maintenance hours.
If something here saved you an afternoon, buy us a coffee. Bitcoin goes straight to a wallet we hold, with no processor in the middle taking a cut or a name. Or a clear bug report to [email protected] is worth more than most donations and costs you less.
Bitcoin, straight to a wallet we hold.

On-chain only. Check the address matches before sending.