Skip to content

Workspace automation and CLI

Use replaycorectl or the setup REST facade to configure servers, permissions and recorder settings with JSON-only output.

7 min read

One setup contract for the dashboard and automation

replaycorectl is ReplayCore's JSON-first command-line client. It lists and creates server setups, discovers workspace capabilities, reads and changes allowlisted settings, calls any developer endpoint and downloads the current OpenAPI document. Successful output is JSON on standard output; errors are JSON on standard error with a non-zero exit code.

The setup REST facade reuses the dashboard's existing handlers. Recorder configuration, permission, validation, plan, tenant and audit behaviour therefore stay identical whether a change comes from the browser, the CLI or direct HTTP.

Install replaycorectl

ReplayCore publishes one dependency-free executable for each Linux, Windows and macOS x86-64 or ARM64 target. Download version 1.0.0 from https://pub-ee634a62a0c84ef7bcda10dd5f21eb8d.r2.dev/cli/v1.0.0/replaycorectl-linux-amd64 and its SHA-256 file from https://pub-ee634a62a0c84ef7bcda10dd5f21eb8d.r2.dev/cli/v1.0.0/replaycorectl-linux-amd64.sha256. The Linux x86-64 digest is 41997683f7bd5a5890b03e93176ec02a867e75155e72c56d4ec8be2d9421e25a. The executable's help and version commands return JSON and do not require credentials.

Linux x86-64
curl -fLO https://pub-ee634a62a0c84ef7bcda10dd5f21eb8d.r2.dev/cli/v1.0.0/replaycorectl-linux-amd64
curl -fLO https://pub-ee634a62a0c84ef7bcda10dd5f21eb8d.r2.dev/cli/v1.0.0/replaycorectl-linux-amd64.sha256
sha256sum --check replaycorectl-linux-amd64.sha256
chmod +x replaycorectl-linux-amd64
sudo install replaycorectl-linux-amd64 /usr/local/bin/replaycorectl
replaycorectl version

Create the key

Create a key under Settings, then Developer API. Use servers:read and servers:write for server lifecycle commands. Add setup:read to inspect the wider workspace configuration and setup:write to change it. Only an active workspace owner can grant setup:write.

The key is bound to the member who created it. ReplayCore checks that member's current access again on every management call. Set the secret in REPLAYCORE_API_KEY; do not put it in a command-line argument.

Check access and discover setup
export REPLAYCORE_API_KEY="rc_live_your_key_here"
replaycorectl doctor
replaycorectl capabilities

Server lifecycle

The server commands list connected and pending setups, create a setup and reserve its plan slot, rename a connected server, deauthorise it, permanently remove it, or cancel a pending setup. Create accepts optional category and source-server ids so an orchestrator can reproduce dashboard placement and compatible settings.

Create and verify a server setup
replaycorectl servers create "BedWars EU"
replaycorectl servers list

Configuration and permissions

Use setup get, post, put, patch and delete with the dashboard resource path. The allowlist covers managed recorder configuration, capture, death-cam, retention, visibility, topology, governance, member permissions and permission groups, integrations, portals, feeds, branding, resource packs, recording credentials, in-game watch policy and recording rules.

The capabilities response includes exact route templates, supported methods, plain-English summaries, documentation links, content types and required concurrency headers. An automated setup can discover the surface without guessing dashboard routes.

Account deletion, billing, API-key administration, replay media and operator routes are intentionally not part of the setup facade.

Read and apply setup JSON
replaycorectl setup get plugin-config/schema
replaycorectl setup get capture-settings
replaycorectl setup put capture-settings --file capture-settings.json
replaycorectl setup get team/members

Files and safe retries

Use the generic api command for managed portal images, resource-pack archives and endpoints that require If-Match or Idempotency-Key. Repeat --header as needed. Authentication, tenant and actor headers are set from the bound key and cannot be overridden.

Use --raw-file with --content-type for a binary body. Raw and JSON body flags are mutually exclusive, and request bodies are bounded to 32 MiB.

Upload and publish a portal logo
replaycorectl api POST "/v1/api/networks/$NETWORK_ID/portal/media/logo" \
  --raw-file ./logo.png --content-type image/png
replaycorectl api POST "/v1/api/networks/$NETWORK_ID/portal/drafts/$REVISION_ID/publish" \
  --data '{}' --header 'If-Match: "4"' \
  --header 'Idempotency-Key: portal-setup-20260729'

Machine-readable contract

Run replaycorectl docs to print the current OpenAPI 3.1 document. It is also available at https://api.replaycore.com/v1/openapi.json. Neither route requires an API key. Customer-key operations declare the exact required capability in x-replaycore-scope.