A terminal that survives disconnects

pb connect opens a shell that lives on the machine. Your laptop only attaches to it, so a closed lid or a dead connection ends nothing.

$ pb connect studio
ana@studio:~$ ./train.sh --epochs 40
# lid closed, Wi-Fi gone, laptop in a bag
$ pb connect studio
# epoch 31/40 ... the output you missed, then live
  1. 1

    A shell on studio. The session belongs to studio, not to this connection.

  2. 2

    The script keeps running. Nothing is buffered on your laptop.

  3. 3

    From this laptop, another machine or a browser tab.

What it survives

Each row is checked on real Linux, macOS and Windows machines before a release, including the one where the answer is no.

What happensWhat you see
You close the laptop or it sleepsThe shell keeps running. On wake, pb reconnects to it by itself.
Wi-Fi drops or you change networksReconnects to the same shell. Keys typed in the gap are sent once, not lost and not repeated.
The session sits idle for 8 hoursStill there and usable.
Paperboat updates on the machineOrdinary updates keep shells and their programs alive; the connection blinks and comes back.
Our servers restartOpen terminals keep working or recover on their own, and say why while they do.
The machine rebootsThe shell ends, like any process. Paperboat does not snapshot your programs.

Several sessions per machine

pb connect studio returns to the default session; new starts another, with a name you choose.

$ pb session list studio
NAME     TITLE / PROCESS  DIRECTORY     STATE    ATTACHED  LAST ACTIVE  CREATED
default  train.sh         ~/experiments running  1         now          3h ago
logs     tail             /var/log      running  0         12m ago      1d ago
$ pb connect studio new --name deploy
$ pb connect studio --session logs
$ pb session rename studio logs nginx-logs
$ pb session close studio logs

Share a session

Let a teammate or a whole team watch a live shell, or type in it. Up to 50 people can watch; removing someone ends their access at once.

Careful: someone who joins sees up to 64 KiB of recent output, secrets included.

$ pb session share <session-id> --team <team> --member <account> --role interactive
$ pb session share <session-id> --team <team> --all
$ pb session join <session-id>
$ pb session participants <session-id>
$ pb session unshare <session-id>
  1. 1

    One named teammate may type.

  2. 2

    Everyone on the team may watch.

  3. 3

    What your teammate runs.

  4. 4

    See who is in, and end it.

In the browser

The web console opens the same shell, encrypted from your browser to the machine.

Two windows, one shell

A terminal app and a browser tab can be attached together. Output shows in both and either can type.

A hidden tab costs nothing

Switch away for an hour and come back: what was printed meanwhile is drawn at once, with no reconnect.

A status bar, if you want one

pb config status-bar shows the machine, session and connection state on the last line, and hides in full-screen programs.

Questions

How is this different from tmux over SSH?

tmux keeps the shell alive, but you still need a way in: an open port, keys, and a reconnect by hand after every drop. Paperboat keeps the shell alive, reconnects on its own, and needs no open port. You can still run tmux inside it.

How is this different from mosh?

mosh survives roaming but needs UDP ports open on the server and does not keep scrollback. Paperboat needs nothing opened, replays recent output when you return, and the session can be opened from a second device or shared.

How much output is replayed when I come back?

The recent tail, about a screenful or two (up to 64 KiB), then live output. It is not a full scrollback archive; for long logs, write to a file or use tmux inside the session.

Which shell does it run?

Your own login shell on that machine: bash, zsh or fish, with your normal dotfiles. Full-screen programs such as vim, htop and less work, with colours and resize.

Is there a limit on sessions?

Terminals from the pb command are unlimited on every plan. One machine holds up to 256 open sessions. Terminals opened in the web console are limited per plan: 10 at once on Free, 100 on Pro.

Can Paperboat read my terminal?

No. Terminal traffic is encrypted between the two machines, and from the browser when you use the console. Our servers pass ciphertext. See security.

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