SCREEN SHARING ACTIVE — Session:
// Agent Status
State IDLE
Session
Tiles sent: 0  Quality:   Frame:
  Session ID only — any operator who knows the session ID can join as a viewer.
// Session Credentials
Session ID
Session routing key. Public — safe to share openly.
Viewer Token (VTK)
Access credential in the #vtk= URL fragment. Never sent to servers — the relay requires an exact match to admit a viewer.
// Agent Log

    
RSA-3072 Authentication

An ephemeral RSA-3072 key pair is generated in-browser via WebCrypto on every session. The full MeshCentral binary AUTH handshake (AUTH_REQUEST, AUTH_VERIFY, AUTH_CONFIRM) completes before any screen content is sent.

Dual-Mode Capture

Desktop / Android — uses getDisplayMedia to capture any browser tab or full desktop. The remote operator can see your full screen but cannot send mouse or keyboard input (browser security boundary).

iPhone / iPad (iOS Safari) — uses html2canvas to render the current page into a canvas in-browser. This avoids the iOS getDisplayMedia limitation and fully supports two-way KVM control (mouse clicks and keyboard events forwarded back to your device), but streams only the content of this page, not other apps or tabs.

JPEG Tile Stream

The frame is divided into tiles (128 px on desktop, 192 px on mobile). Each tile is hashed (FNV-1a) — only tiles that changed since the last frame are JPEG-encoded and sent as binary WebSocket frames. Quality and frame rate adapt automatically to network backpressure via relay.bufferedAmount — dropping as low as 30% quality under congestion and recovering gradually when the link clears.

Cloudflare Relay

Tiles stream over a Cloudflare Durable Object relay. The relay bridges the agent and operator WebSocket connections — no screen data is processed or stored server-side. The relay hibernates when idle and runs on the free tier.

Consent-Gated

No connection is made and no capture starts until you click Start Sharing. The Stop Sharing button is always visible during an active session and immediately closes the relay connection, notifies all viewers, and halts all screen capture.

Protocol: AUTH_REQUEST 0x0001 → AUTH_VERIFY 0x0002 → AUTH_CONFIRM 0x0004 → TUNNEL_OFFER → RELAY handshake → JPEG TILE 0x0003 stream. All integers big-endian. RSA-3072, RSASSA-PKCS1-v1_5, SHA-384. See MeshCentral deep dive for full protocol reference.