From your phone
The sessions stay on your computer. Getting a phone attached is six digits, not a network to set up.
Six digits, then approve it
The desktop shows a six-digit code; you type it into the phone. There is no QR code and no pairing link — the QR did not work, and a link is a live bearer secret with a trip through a messaging app attached to it, so both were deleted rather than hidden.
The code lives sixty seconds, is single-use, and dies after five wrong guesses. Redeeming it does not pair anything on its own: it creates a pending device that a person has to approve on the machine itself. The same six digits pair one computer to another.
They find each other by themselves
Nothing is set up on your network: no port forwarding, no VPN, no account and nothing else to join. Both ends dial out and a rendezvous server puts them together — it carries sealed bytes it holds no key for, and it is the one piece of plumbing in this product. How that is built, and what it can and cannot see.
A browser, an Android APK, and an iPhone build on TestFlight
app.terminaldeck.dev is the web client: open it anywhere, type the six digits, and you have the session list and a real terminal. Nothing to install, and it follows your system's light or dark setting.
Both phone clients are native, with a real terminal and a key bar for the characters a phone keyboard hides. Neither is in an app store: Android is a signed APK on the download page, and iPhone is on TestFlight, internal testing only.
Your dev server, on the phone
Tap a port and the phone reaches a dev server running on the desktop. It is a raw TCP byte pipe rather than an HTTP proxy, so WebSockets, hot reload, service workers and cookies survive untouched. Only loopback is dialable, only ports something is listening on right now, and only after a person taps one.