iPhone guide

The WPS protocol

How WPS keeps plain shells running across disconnects, what it costs and how to switch back to SSH.

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 iOS suspending the app is enough. With WPS, the shell keeps running on your server and your iPhone 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 iPhone 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.

MeasurementResult
Resume after a closed connection or a silent loss, while streaming 1.49 MB113 to 185 ms, byte-exact
Reconnect to the shell with 0, 50 and 150 ms of added round trip0.11 s, 0.81 s and 2.03 s
First keystroke after resumingOne round trip
Median keystroke echo compared with a plain terminal relayAbout 1 µs slower
Throughput compared with a plain terminal relay93 to 100%
Output kept while you are away10 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.