Send a file to another machine

pb send takes a file and a machine name. The file lands in that machine's Inbox folder, and the command only succeeds once the other side has confirmed it.

$ pb send ./report.pdf ./data.csv --to studio
Sending to studio (machine_8a1d5c2e-3b47-4f0e-9d62-1c7e5b0a4f93)
report.pdf: delivered to /home/ana/Paperboat/Inbox/report.pdf on studio
data.csv: delivered to /home/ana/Paperboat/Inbox/data.csv on studio
$ pb inbox path
/home/ana/Paperboat/Inbox
  1. 1

    "Delivered" means the other machine checked the file's hash and wrote it to disk.

  2. 2

    Where files land on this machine. pb inbox set moves it.

Limits and what happens at them

Two transfer modes, because "any size" and "always arrives" pull in different directions.

Size, Automatic modeUp to 2 GB per send. Goes directly when it can, through a relay when it must. Relayed bytes count as bandwidth.
Size, Unlimited modeNo limit. Only directly, or through a relay you host. If neither path is up, the send waits instead of using our relay. Per send with --unlimited, or as your default in Settings.
Files per sendUp to 10. For whole directory trees, use pb rsync or pb scp.
If it is interruptedIt resumes from the last confirmed byte. No duplicates, no half files in the Inbox.
Both machinesMust be online. There is no cloud drop box in between holding your file.
Full disk, offline target, too largeEach has its own plain message, and nothing partial is left behind.

Transfer history

Every send has a record. List them, check one, or cancel one that is waiting. Set a default destination if you always send to the same machine.

Sending to the machine you are on simply copies the file into its own Inbox.

$ pb send list --on studio
$ pb send status <transfer-id> --on studio
$ pb send cancel <transfer-id> --on studio
$ pb send destination set studio
$ pb send ./notes.md
$ pb inbox requests
$ pb inbox approve <request-id>
  1. 1

    --on names the machine the files were sent to.

  2. 2

    With a default destination, --to is optional.

  3. 3

    Files a teammate wants to send you.

Questions

Where do my files go on the way?

From one machine to the other, encrypted between them. If they cannot connect directly, a relay passes the encrypted bytes along. No Paperboat server stores your files or can read them.

Is this a replacement for scp or rsync?

For "get this file onto that machine", yes: one command, no path to remember, safe to retry. For syncing a tree or pulling from a path, pb scp and pb rsync are right there.

Can a teammate send files to my machine?

Yes, as a request. You approve or decline it with pb inbox approve or in the console, or set a policy that accepts requests from your team. Requests expire if you ignore them.

Can I get to received files from a browser?

Yes. Each machine's page in the web console lists its Inbox, and you can download or remove items there.

How is this different from Taildrop?

Taildrop works across phones and desktops on a tailnet and drops files in Downloads. Paperboat sends between Linux and macOS machines, confirms delivery by hash, resumes, and has no size limit in Unlimited mode.

Start with the machine in front of you

Install Paperboat here, then on a second machine. Free for personal use, no card needed.

$ curl -fsSL https://get.pprbt.dev/install | bash
> irm https://get.pprbt.dev/install.ps1 | iex