Skip to main content
Use nested --help for the version installed on your machine. Start with the Quickstart for a guided workflow, or Configuration & permissions to choose the project boundary.

Machine & setup

See setup for flags and examples.

The learning loop

The core cycle — see The learning loop for how these stages fit together.

Authoring

Git sharing

Generated Harbor packages and EvalsWiki files are shared through normal Git history and review. Release builds do not publish benchmark or evaluator package contents to the backend. Keep provider values, OAuth credentials, environment files, caches, resumable sessions, and local reports out of commits.

Project inputs

Configure the global permissions profile and optional global path rules in ~/.relai/config.toml. Repository .relai/config.toml files can add only further read/write restrictions. Supported agentic authoring commands accept --permissions {auto|accept_edits|ask} for a one-run override. Simulation and optimization do not expose this flag; check nested --help. See Permissions. Use permissions.read.deny to keep files away from RELAI agents; .relaiignore is not read. Use .relai-snapshotignore when files must remain available at runtime but should be omitted from relai optimize source snapshots.

Timeouts

Agentic commands stop after one wall-clock timeout per invocation. The clock starts when the command starts and includes time spent waiting for answers, approvals, simulations, model requests, Harbor setup, image build/pull, and diagnostic infrastructure. Within it, two give-up budgets keep one stuck step from using the whole run. Each Harbor trial’s run phase, which starts after its image build, may take its task’s agent and verifier timeouts plus 5 minutes, at most 2 hours; exceeding it is reported as an infrastructure timeout, not a scored failure. Runs of the relai init smoke task are limited only by the invocation timeout. relai optimize waits at most 30 minutes for any one backend optimizer task. Image builds and pulls are limited only by the invocation timeout. Task-authored agent and verifier limits still define the evaluation itself, and network transport/retry limits plus short cleanup graces remain bounded. Other commands have no timeout. Pass --timeout {DURATION} to an agentic command, such as --timeout 2h or --timeout 45m, or --timeout off to disable it for one run. The RELAI_TIMEOUT environment variable accepts the same values and applies when --timeout is not given.
When the timeout is reached, RELAI stops at the next safe step, saves resumable progress, prints the command to continue (for example relai init --resume), and exits with status 124. Commands without resume support ask you to re-run them instead. Running child processes are stopped at the timeout, while cleanup such as removing temporary containers or committing accepted relai optimize changes still finishes. With --agent-interaction, a timeout inside an agent loop is reported as a resumable pause (exit status 3).

Getting help

Use --help at any level for command-specific flags, and --version for the installed version.

Diagnostic telemetry

When telemetry is enabled, RELAI sends a single privacy-safe Sentry trace for each command. The trace contains command lifecycle and structural operation metadata only; credentials, argument values, prompts, model/tool content, and project file contents are excluded. A failed command reports a stable failure reason and the source location that raised it, never the error message. A CLI crash (panic) report keeps its sanitized panic message. Diagnostic telemetry is separate from token or dollar telemetry used to compare optimizer cost.