Read the docs by the job you need to do.
This docs set is organized around what actually exists in the code: the CLI transport and sync loop, the Go agent's auth and control surface, blue-green preview routing, plugins, services, and webhook-driven deploys.
1. Quickstart for the first running preview.
2. relay CLI for the local operator workflow and command surface.
3. relayd for auth, app config, webhooks, services, and runtime state.
Open the guide that matches the task in front of you.
Each page is anchored to a real surface in the repo: a command group, an API family, a config file, or a runtime subsystem.
The docs now reflect what main.go and relay.js already ship.
Relay is no longer just deploy and logs. The server and CLI already include socket auth, dashboard sessions, projects inventory, secrets, app controls, companion service APIs, plugin mutation policy, and live event streams.
Local socket transport
The CLI can talk over relay.sock with filesystem ACLs instead of a bearer token. The same API stays available over HTTP for remote use.
Control APIs
The agent already exposes app config, companion management, secrets, events, projects, blue-green slot state, and rollout controls. The docs now point at the exact guides for each one.
Recent CLI additions
status, list, projects, rollback, start/stop/restart, secrets, plugin management, relay version, agent update, and the interactive init wizard are all part of the shipped client surface.
GET /api/projects
GET /api/events
POST /api/apps/config
GET /api/apps/companions
POST /api/apps/secrets
POST /api/webhooks/githubThree files, three jobs.
Most confusion comes from mixing local CLI defaults with build hints or runtime topology. Relay keeps those concerns in separate files on purpose.
CLI defaults for one project folder: socket or URL, token, app, env, branch, and optional dir.
Buildpack and command overrides used during the build and run plan.
Runtime topology for project services and companion containers.
{
"kind": "next-standalone",
"service_port": 3000,
"install_cmd": "npm ci",
"build_cmd": "npm run build",
"start_cmd": "node server.js"
}The pages operators usually need after the first preview works.
The API accepts both Authorization: Bearer and X-Relay-Token.
The dashboard stores its token in an HttpOnly relay_session cookie.
Socket requests are treated as local auth and inherit filesystem ACL protection.
Plugin install and remove stay disabled unless the server enables mutation explicitly.