Push files to the cloud, pull them on another computer
Last updated: 2026-07-12
Sometimes the two computers are never awake at the same time. You want to drop a file from your work laptop tonight and grab it from your home desktop tomorrow, with nobody waiting on a live connection. relayium up and relayium down do exactly that: up encrypts and uploads to your account, and down fetches and decrypts it later on any machine — no peer-to-peer handshake, no server you both ssh into.
This is the main part of the CLI that uses your Relayium account, alongside send, which needs it to mint a pairing code. Binding is optional for the rest: push/pull, daemon-direct and sync keep working with no login, and so does receive. Downloading needs no account at all, just the link.
When to reach for it
Pick the mode by whether the far end is online and how the two machines reach each other:
up / down (this guide) — the two machines are never online together. You upload now; you (or another machine) download later. Goes through your account.
send / receive — both ends are online right now and want a direct peer-to-peer transfer over a one-time code.
push / pull — you can already ssh into the far machine.
up and send are the two that need relayium login — up to store the file under your account, send only when it has to mint a pairing code (handed one, it needs nothing). down, receive, push/pull, daemon-direct and sync need no account.
Before you start
Two one-time things before your first up — install the CLI, and have an account. Already have both? Skip ahead.
curl -fsSL https://relayium.com/install.sh | sh
Install the CLI so the relayium command exists. The line above drops a prebuilt binary on your PATH (macOS and Linux; on Windows, grab the .zip from the releases page); relayium --version confirms it, and relayium.com/cli lists every install option. Skip this and relayium login just prints 'command not found'.
Have a free Relayium account. The browser step approves the login against your account, so you need one before you can approve — sign in at relayium.com first, or create one there if you haven't. Only uploading needs the account; downloading never does.
Bind this machine to your account (once)
up needs to know whose account to store under, so sign in once per machine. It's a browser-approved device login — nothing is typed into the terminal except the code you confirm:
relayium login
The CLI prints a short code and a URL (relayium.com/device). Open it in the browser where you're signed in to relayium.com (sign in there first if you aren't), enter the code, and approve — this machine is now bound.
The login is saved under ~/.config/relayium/, so you only do it once per machine. relayium whoami shows who you're bound to; relayium logout clears it.
To revoke a machine later, delete its device from your account's devices page in the browser.
Upload from the first computer
up walks the files you give it, encrypts them locally, uploads the ciphertext, and prints a claim link:
relayium up ./report.pdf
# → https://relayium.com/d/7fK2p…#k=Xr8s…
# choose how long it lives (default: 24 hours):
relayium up ./report.pdf --burn # deleted after one download
relayium up ./report.pdf --ttl 7d # kept 7 days (your plan sets the cap)
relayium up ./report.pdf --max-downloads 5 # allow 5 downloads, then gone
The link is the whole handoff — copy it to wherever the other machine can read it. Anyone with the link can download the file, so treat it like a password.
Retention: --burn removes the file after a single download; --ttl <duration> keeps it for a fixed time; --max-downloads <n> allows a fixed number of downloads. Give none of them and the link lives 24 hours, the default when --ttl is absent.
--ttl takes a duration with a unit — 30m, 12h, 7d, 2w — or a plain number of seconds, so --ttl 3600 and --ttl 1h are the same request. Your plan sets the ceiling: 1 day on Free, 3 days on Plus, 7 days on Pro, 14 days on Max. Ask for longer than your ceiling and the server silently keeps it for the ceiling instead — up prints a note afterwards telling you how long it actually kept it.
up needs you to be logged in; if you're not, it tells you and does nothing.
Download on the second computer
On the other machine, hand the link to down. No login, no setup — the key that decrypts the file is inside the link, so down needs nothing from your account:
relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…' ./downloads
relayium down '<your link>' <target directory>
Quote the link: the #k=… fragment carries the decryption key, and some shells treat # as the start of a comment.
Give a destination directory (./downloads here) or omit it to land in the current directory.
If the file was set to burn, has hit its download limit, or has expired, the link is spent and down reports that it's gone.
Works with the website too
The link is the same one the website uses, so the CLI and the browser interoperate freely:
A link from relayium up opens in a browser — hand it to someone who doesn't have the CLI and they download from the web.
A share link created on relayium.com can be fetched with relayium down on another machine.
What the server can and can't see
Cloud transfers stay end-to-end encrypted:
Your file is encrypted on your machine before it's uploaded. The decryption key lives only in the link's #k= fragment and is never sent to the server — Relayium stores ciphertext it cannot read, including the file names.
That also means the link is the only way back to the file: lose it and the file is unrecoverable, by you or by us.
Frequently asked questions
Do I need an account?
To upload, and to send when a code has to be minted. relayium up always requires relayium login, so the file can be stored under your account. relayium send requires it only when the server has to mint a fresh pairing code for you — run send with a code someone handed you and it mints nothing, so it needs no login. relayium down and relayium receive need no account, and push/pull, daemon-direct and sync work without one.
Is my file encrypted?
Yes, end-to-end. It's encrypted on your machine before upload; the key lives only in the link's #k= fragment and is never sent to the server. Relayium stores ciphertext it can't read, including the file names.
What if I lose the link?
The link carries the only copy of the decryption key, so a lost link means an unrecoverable file — there's nothing on the server that could recover it.
Can I limit who downloads it?
Anyone with the link can download, so share it privately. Use --burn to allow a single download, or --max-downloads <n> to cap the number, and --ttl <duration> to expire it after a set time.
Does it work with the website?
Yes. A link from relayium up opens in a browser, and a share link created on relayium.com can be fetched with relayium down on another machine.
Ready to move a file across your own machines? Install the CLI, run relayium login, and up it.