End-to-end terminal · WebRTC

Your shell on your phone.
Not on our servers.

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.

DTLS end-to-end No session recording v5 QR · v6 account

Core promise

Terminal data never touches the backend

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.

  • No terminal I/O in logs or diagnostics export
  • TURN relays opaque DTLS packets it cannot decrypt
  • SAS safety code detects malicious-signaling MITM
  • Connect tokens and device secrets stay client-side

Workflow

From zero to shell in three steps

Pair with a QR connect token for local labs, or sign in with a Zillurl Account for multi-device workflows.

01

Start an agent

Run the desktop app or CLI on your machine. A session publishes a terminal (tmux or your shell of choice).

02

Pair the phone

Scan a QR connect token (v5) or sign in and pick a published terminal (v6).

03

Type anywhere

WebRTC connects. Compare the SAS code once, then work like you are on the host console.

Capabilities

Built like an instrument panel

Clear status, bounded reconnects, and a protocol designed for flaky mobile networks.

WebRTC DataChannel

Low-latency binary frames for input, output, resize, and replay—no WebSocket terminal path.

Resilient reconnect

Bounded backoff, sequence-based replay dedupe, and permanent errors that stop thrashing.

Multi-session desktop

Up to six concurrent sessions in one agent process, with rename, delete, and diagnostics export.

Account + local pairing

OAuth device flow for production accounts; connect-token mode for air-gapped or lab setups.

SAS safety code

A six-digit code derived from the DTLS fingerprint so both ends can spot a signaling MITM.

Bilingual MVP

English and Traditional Chinese (zh-TW) across Android and Desktop UI strings.

Stack

Four surfaces, one protocol

Agent, Worker, Android, and Desktop share the same wire contract for signaling and frames.

Rust

Agent

Headless CLI and core runtime. Local v5 serve + QR, or publish terminals to the cloud for v6.

Cloudflare

Worker + DO

Auth, registry, HTTP signaling, and TURN credentials. Never a path for shell bytes.

Android · Desktop

Clients

Compose terminal on Android; Tauri + xterm.js on desktop for operators who live in the panel.

Ready when your network isn’t

Clone the monorepo, start a local agent, and pair from Android in minutes. Production signaling lives at term.zillurl.com.