WPS is the Warpeer persistent shell protocol. With plain SSH, the shell ends when the connection drops: a subway tunnel, a switch from Wi-Fi to cellular or Android stopping the app in the background is enough. With WPS, the shell keeps running on your server and your phone resumes it where it left off.
How it works
WPS runs inside the SSH connection you already use. When a terminal opens, the remote helper starts a small daemon that owns the shell and keeps a buffer of its recent output. Your phone attaches to that daemon over the same SSH channel.
When the connection drops, the shell keeps running. On reconnect, Warpeer logs in again over SSH, attaches to the same shell and receives every byte it missed, then restores the screen. Moving between Wi-Fi and cellular triggers a quick check, so a dead connection is noticed and resumed instead of waiting for a timeout.
- No extra port, no root access and no package to install.
- Scrollback stays in the terminal, so tmux, editors and coding agents behave as before.
- One device holds a shell at a time. Opening it on another device asks before taking it over.
Measured performance
We measured WPS on Debian 12, Ubuntu 24.04 and Fedora 44 hosts reached over OpenSSH.
| Measurement | Result |
|---|---|
| Resume after a closed connection or a silent loss, while streaming 1.49 MB | 113 to 185 ms, byte-exact |
| Reconnect to the shell with 0, 50 and 150 ms of added round trip | 0.11 s, 0.81 s and 2.03 s |
| First keystroke after resuming | One round trip |
| Median keystroke echo compared with a plain terminal relay | About 1 µs slower |
| Throughput compared with a plain terminal relay | 93 to 100% |
| Output kept while you are away | 10 minutes of agent redraws or a verbose build log; 2.1 minutes of incompressible output |
Most of a reconnect over a slow link is the SSH login itself, about 13 to 14 round trips with OpenSSH. Phone networks add their own latency, so your numbers will differ from these hosts. Output older than the buffer is marked as missing in the terminal rather than silently dropped.
Protocol and price
Choose the protocol under Settings › Session › Protocol:
- WPS is the advanced protocol. It is free during Early Access.
- SSH is standard SSH and always free.
Warpeer explains the difference before it switches. The choice applies to new terminals; open tabs keep their protocol. Shells already kept on a host stay there until they exit.
How to tell which protocol a tab uses
A tiny label in the top-left corner of each terminal tab and session card shows wps or ssh. An orange ssh means you chose WPS but the host could not keep the shell, for example:
- the host cannot run the remote helper;
- the host ends user processes at logout (
KillUserProcesses=yes) without lingering enabled.
Everything else works as usual on those hosts; only the shell ends with the connection.
Ending a kept shell
Type exit or close the tab as usual. An idle shell that no device has attached to for a long time is ended by the helper.