Last updated: 2026-07-08
Sometimes the other machine isn't yours and you can't SSH into it — a file for a colleague in another office, a build for a client, an archive for a friend across the country. relayium send and receive move it directly between the two of you across networks, using nothing but a short code you agree on.
The connection is peer-to-peer and end-to-end encrypted. Only a tiny rendezvous handshake passes through Relayium to introduce the two ends; the file bytes never do.
Pick any short code and share it out of band — say it over a call, drop it in a chat. One side sends, the other receives with the same code:
# sender
relayium send ./release.zip 428571
# receiver (in the folder where files should land)
relayium receive 428571
When the two ends connect, both terminals print the same 6-digit SAS (short authentication string) derived from the session keys. Compare them — read it aloud on the call — to be sure you're connected to each other and not to someone in the middle.
For a hard guarantee, add --verify: the transfer then waits for you to confirm the codes match before a single byte moves.
relayium send --verify ./release.zip 428571
The transfer races a direct connection between the two ends. When one can be established — which is the common case for at least one side with a reachable address — the file streams straight across, encrypted, at full speed and at no cost.
If both ends are behind strict NAT and no direct path can be found, the transfer fails cleanly rather than routing your file through a relay. That keeps the CLI completely free and keeps your file bytes off our servers. If you hit this, the reliable answer is daemon direct between two reachable servers, or push over SSH.
You make it up. It's any short string both sides type — agree on it over a call or a chat. It only needs to match on both ends.
No. The file streams directly between the two of you, end-to-end encrypted. Only a small rendezvous handshake passes through Relayium to introduce the ends — never the file.
If both ends are behind strict NAT with no reachable address, the direct connection can't be made and the transfer fails — the CLI has no relay fallback, by design. Use daemon direct between two reachable servers, or push over SSH, when a direct path isn't available.
Both terminals print an identical 6-digit SAS code from the session keys. Compare them out of band; if they match, there's no one in the middle. Add --verify to require that confirmation before any bytes move.
Send your next file straight to someone on another network — end-to-end encrypted, and free.
Get the CLI