Loft

Your machines, from anywhere. Direct E2E peer sessions; the server only introduces peers.

Sign in

Paste a session token instead

Desktop restart forgets its bearer: rotating or clearing here never locks the account; re-sign-in mints a fresh session.

Devices

Presence is online / asleep / offline. Windows hosts carry a Windows badge; iPhone Safari → Windows shell is the release-blocker path.

Terminal

Browser terminal uses the same frame.v1/Open framing as the CLI over a WebRTC DataChannel. Payloads chunk to pc.sctp.maxMessageSize.

No session selected.

    

Progressive enhancement: xterm.js 5.5.0 attaches when the CDN loads (typed input, auto-fit with resize reporting); otherwise this plain terminal keeps working (never a dead button).

Desktop

Native H.264 <video> when the host reports native (agents report still-PNG-only today, so this falls back automatically). Screenshot PNG always works, even if video fails.

Files

File bytes travel device-to-device over the existing E2E session, never through the control plane. Peek previews the first 8 KiB as text; downloads/uploads cap at 32 MiB (browser memory bound). POSIX remotes (cat/head); full outbox TTL ships in Phase 9.


    

Tunnel presets

Browsers cannot bind loopback listeners, so presets copy the CLI command (--install persists via serve). First Windows listen shows firewall consent copy before the OS prompt.

Approvals

Mode-gated injections park here as cards. Allow once answers one card, Always this session lifts the owning thread to full_access, Deny refuses. Polls approvals.pending every 5s for the selected device; new cards raise a system notification (blocking tier).

Sessions

Persistent windows on the selected device (sessions.list backend badge + mode). Pick one to fill the schedule/outbox session fields; the approval dot counts its pending cards.

Schedules

Box-local cron prompts (schedules.*, 5-field minute hour dom month dow). Fires pass the same permission gate as any injection.

Outbox

Session artifacts with TTL (outbox.*, non-destructive pull). Lists one session; pulls decode base64 into a download.

Docs