Relayium

Push files to the cloud, pull them on another computer

Last updated: 2026-09-01

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:

Before you start

What you need

  • Install the CLI so the relayium command exists. The command below 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.
  • A way to move one link to the other machine — a note app, a chat window, a password manager. Anyone holding the link can download the file, so treat it like a password.

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

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

Upload from the first computer

up walks the files you give it, encrypts them locally, uploads the ciphertext, and prints a claim link:

  1. Check this machine is still bound to your account. It prints the account and the server it is bound to; if it says you are not logged in, do the login step above first.

    relayium whoami
  2. Upload the file. up encrypts it locally, sends only ciphertext, and prints the claim link on stdout.

    relayium up ./report.pdf
  3. Add a retention flag if the 24-hour default isn't what you want. Your plan caps how long the server will actually keep it.

    # 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
  4. Move the link to where the second machine can read it. Only the link goes to stdout, so a pipe stays clean.

    relayium up ./report.pdf | pbcopy

What a successful upload looks like

A progress bar runs on stderr while it uploads, then clears. The link lands on stdout on a line of its own, and the human hint — plus any retention note — follows on stderr.

relayium up ./report.pdf
https://relayium.com/d/7fK2p…#k=Xr8s…
opens in a browser, or fetch it with `relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…'`

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 '<your link>' <target directory>
  1. Get the link onto the second machine, however suits you. Nothing has to be installed or logged in there beyond the CLI itself.

  2. Hand it to down inside single quotes, with the directory the files should land in.

    relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…' ./downloads
  3. Leave the directory off to land in the current one.

    relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…'

What a successful download looks like

Every file it wrote is listed on stdout, one per line, and the count and destination are confirmed on stderr.

relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…' ./downloads
downloads/report.pdf
✓ downloaded 1 file(s) to ./downloads

Works with the website too

The link is the same one the website uses, so the CLI and the browser interoperate freely:

What the server can and can't see

Cloud transfers stay end-to-end encrypted:

When a link doesn't work

Four failures cover almost every unsuccessful up or down, and none of them needs guessing — the state that decides each one is printed by a command, or visible in the command you typed.

Symptom, check, fix

up refuses with "run relayium login first".
relayium whoami
# not logged in (run `relayium login`)

Uploading stores the file under your account, so this machine needs credentials. Run relayium login and approve it in the browser at relayium.com/device; whoami then prints your account and the server it is bound to.

down cannot parse the link, and the key seems to have vanished.
echo relayium down https://relayium.com/d/7fK2p#k=Xr8s
# relayium down https://relayium.com/d/7fK2p

An unquoted # starts a comment in most shells, so everything from #k= onwards never reached the command — echo shows exactly what survived. Wrap the whole link in single quotes and the fragment, which is the decryption key, arrives intact.

The link stops working sooner than the --ttl you asked for.
relayium up ./report.pdf --ttl 7d
# note: your plan caps retention, so this link is kept 1d, not the 7d you asked for

The server silently clamps a request beyond your plan's ceiling — 1 day on Free, 3 on Plus, 7 on Pro, 14 on Max — and up prints that note afterwards to say what it actually got. A link also ends early on --burn or --max-downloads. Upload again for a fresh one.

You are logged in, but up says you're logged in somewhere else.
relayium whoami
# you@example.com (https://relayium.com)

A --server that did not issue your token is refused rather than sent your credential, which would leak it and would not authenticate there anyway. Either drop --server so it uses the bound server whoami just printed, or run relayium login against the other host first.

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.

What happens if a download is interrupted?

Inside one run, down handles it: it reconnects up to five attempts and continues by HTTP Range from the last complete encrypted frame, or restarts the file within that run if the server ignores Range. Once the attempts are spent it removes the partial output instead of leaving a truncated file, so a later relayium down starts from the beginning rather than picking up where the last one stopped. Only relayium sync resumes across separate runs.

Ready to move a file across your own machines? Install the CLI, run relayium login, and up it.

Get the CLI

Keep reading