Remote control
Lime’s remote control lets you drive a lime session running on
your laptop from a phone, tablet, or any browser — over a Cloudflare
Quick Tunnel or a persistent named tunnel.
Topology
The CLI hosts the bridge; the client connects in. There is no Anthropic- or Lime-hosted relay — you control both sides.
┌──────────┐ wss ┌────────────────┐ ws ┌────────────────┐│ phone │ ◀─────────▶ │ Cloudflare │ ◀────────▶│ lime CLI on ││ PWA / │ │ tunnel (cfd) │ │ your laptop ││ browser │ │ │ │ (bridge --ws) │└──────────┘ └────────────────┘ └────────────────┘Local-only (LAN)
lime bridge --ws --ws-port 9111 --ws-token "$(openssl rand -hex 32)"Bound to 127.0.0.1, bearer-token gated (constant-time compare,
4001 close on auth failure), NDJSON framing. Connect from the phone over
the LAN with ws://<laptop-ip>:9111 if your network allows.
Remote (Cloudflare Quick Tunnel)
-
Mint a device token.
Terminal window lime remote pair --label "my-phone"The token is printed once. Lime stores only a hash; the full token is shown to you exactly one time.
-
Bind the bridge and spin up a tunnel.
Terminal window lime remote startLime starts the bridge in WebSocket + device-auth mode, then launches
cloudflared(auto-downloading it on first use if missing). It prints a one-shot pairing URL. -
Open the pairing URL on the phone.
The PWA exchanges the device token for a long-lived credential. Subsequent reconnects don’t need pairing.
For a stable hostname, use a pre-configured named tunnel:
lime remote start --persistent prod-tunnel --url tunnel.example.com--persistent and --url require each other; either both are present or
neither is.
cloudflared lifecycle
- Auto-downloaded on first use if not on
PATH. Disable with--no-auto-install. - Restarted on crash.
- Stderr is mirrored as
cloudflared:lines so an operator runninglime remote startsees exactly what’s happening.
Manage devices
lime remote pair --label "phone-1" # mint a tokenlime remote devices # list registered deviceslime remote revoke <device-id> # revokelime bridge --status # inspect bridge engine stateWhat’s protected
- Device token authentication — constant-time compare on the bridge, hashed-at-rest on the host, single-use pairing token.
WsBridgeConfigwith sane defaults —127.0.0.1bind, allowed origin list, redaction on by default.BridgeTelemetry— connection events, reconnect counters, per-device usage.- Redaction in event logs — secrets from MCP tool calls and permission decisions are redacted on the wire.
- Event log with backfill on resume — the phone can drop offline and rejoin without losing transcript turns.
When to disable redaction
For trusted local-only setups (a phone on the same LAN, no tunnel) you can disable outbound redaction:
lime bridge --ws --no-redact ...Design posture
Lime’s bridge is self-hosted by design: the CLI is the server, not a relay client to a multi-tenant service. That trades convenience features (zero-config cross-network reach through a SaaS) for full local control over the wire format, redaction policy, and reachability.