Skip to main content

Browser Relay

Browser Relay lets FleetQ cloud experiments drive a browser running on your own machine. A small relay agent on your computer polls the platform for commands, executes them locally, and posts results back — so automations can use a real local browser session without exposing it to the internet.

Browser Relay vs. FleetQ Bridge. They're different tools. Bridge is a persistent WebSocket gateway for running local LLMs and CLI agents at zero cloud cost. Browser Relay is a relay-token-authenticated, long-poll channel specifically for driving a local browser from cloud experiments. Use Bridge for compute; use Browser Relay for browser automation on your machine.

How it works

  1. You create a relay token and run the relay agent on your machine.
  2. The agent long-polls the platform for queued commands.
  3. When a cloud experiment needs the browser, it enqueues a command; the agent receives it, runs it locally, and posts the result back.

Relay token

Create a relay token in Settings → Relay. The token is a 64-character cryptographically-random value, shown once at creation (only its SHA-256 hash is stored), scoped to your team, and valid for 90 days. The relay agent authenticates by sending the token as a bearer token on every request.

The relay agent

Download the relay-agent package directly from the platform:

bash
curl -fsSL https://fleetq.net/get/relay-agent -o fleetq-relay-agent.zip

The download is a Node.js project (fleetq-relay-agent). Unzip it, install dependencies, and run it with your relay token configured.

Command channel

The agent talks to the platform over two relay-token-authenticated endpoints:

Method Path Purpose
GET /api/relay/commands Long-poll for the next command (blocks up to 25s, then returns a timeout to re-poll)
POST /api/relay/result Submit the result of an executed command (one POST per command)

Each poll blocks for up to 25 seconds waiting for a queued command. A poll also updates the agent's heartbeat, so the platform knows the relay is connected. When no command arrives within the window the endpoint returns {"type":"timeout"} and the agent re-polls immediately.

Because the relay agent only makes outbound HTTPS requests, it needs no inbound ports and nothing is exposed on your local network.