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 relayerctlAuth
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_KEYSelf-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 stablePush 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.