Start an agent
Run the desktop app or CLI on your machine. A session publishes a terminal (tmux or your shell of choice).
Zillurl Mobile Term streams a real terminal from your machine to Android over a peer-to-peer WebRTC DataChannel. Signaling never sees keystrokes or output.
Core promise
The Worker handles auth, device registry, and signaling only. Input and output travel exclusively over the WebRTC DataChannel—DTLS-encrypted between agent and app. There is no server endpoint that accepts terminal bytes.
Workflow
Pair with a QR connect token for local labs, or sign in with a Zillurl Account for multi-device workflows.
Run the desktop app or CLI on your machine. A session publishes a terminal (tmux or your shell of choice).
Scan a QR connect token (v5) or sign in and pick a published terminal (v6).
WebRTC connects. Compare the SAS code once, then work like you are on the host console.
Capabilities
Clear status, bounded reconnects, and a protocol designed for flaky mobile networks.
Low-latency binary frames for input, output, resize, and replay—no WebSocket terminal path.
Bounded backoff, sequence-based replay dedupe, and permanent errors that stop thrashing.
Up to six concurrent sessions in one agent process, with rename, delete, and diagnostics export.
OAuth device flow for production accounts; connect-token mode for air-gapped or lab setups.
A six-digit code derived from the DTLS fingerprint so both ends can spot a signaling MITM.
English and Traditional Chinese (zh-TW) across Android and Desktop UI strings.
Stack
Agent, Worker, Android, and Desktop share the same wire contract for signaling and frames.
Headless CLI and core runtime. Local v5 serve + QR, or publish terminals to the cloud for v6.
Auth, registry, HTTP signaling, and TURN credentials. Never a path for shell bytes.
Compose terminal on Android; Tauri + xterm.js on desktop for operators who live in the panel.
Clone the monorepo, start a local agent, and pair from Android in minutes. Production signaling lives at term.zillurl.com.