Relayer logoRelayer

CLI

Publish releases and drive fleets from your terminal or CI with relayerctl.

The Relayer CLI wraps the management API in one-line commands. Zero dependencies, Node 20+. The installed command is relayer.

npx relayerctl --help
# or install globally
npm install -g relayerctl

Auth

Mint an API key in the dashboard (API keys), then export it. CI secret stores work the same way.

export RELAYER_API_KEY=rl_YOUR_KEY

Self-hosted or preview deployments: point the CLI anywhere with RELAYER_URL or --url (defaults to this deployment).

Publish a release

relayer releases create \
  --app YOUR_APP_REF \
  --channel stable \
  --version 1.4.2 \
  --notes-file CHANGELOG.md \
  --artifact platform=darwin,arch=aarch64,url=https://your-storage/app-1.4.2.dmg,sha512=HASH

--artifact repeats for multi-platform releases. It takes key=value pairs (platform, arch, url, sha512, size, signature) or a raw JSON object when a URL contains commas. Versions are unique per app+channel: duplicates return a clear 409 error, so retried CI jobs are safe.

Discover and list

relayer apps list
relayer releases list --app YOUR_APP_REF --channel stable

Push mode

Report device state and plan update waves from your orchestrator (see push mode for when to use this):

relayer fleet report --app YOUR_APP_REF --file devices.json
relayer fleet decisions --app YOUR_APP_REF --file devices.json --dry-run

--file takes a JSON device array or a full request object; - reads stdin, so you can pipe straight from your inventory system.

Scripting

Every command accepts --json and prints the raw API response:

relayer releases list --app YOUR_APP_REF --json | jq '.releases[0].version'

Exit codes: 0 success, 1 API or network error, 2 usage error.

On this page