Skip to main content
Get fleet-rlm running against a Daytona Sandbox in a few minutes.

Prerequisites

  • Python 3.13 and uv.
  • Daytona API key for Sandbox execution.
  • A provider credential. The default daytona-recursive profile uses OpenCode Go (FLEET_OPENCODE_GO_API_KEY, FLEET_OPENCODE_GO_BASE_URL); the managed and benchmark profiles use the Databricks AI Gateway.
  • A Postgres URL (FLEET_DATABASE_URL) for durable deployments. Local SQLite is only suitable for development.
  • Node 22.19+ and pnpm if you want to run the supervised backend plus pi-tui via fleet cli.

1. Install fleet-rlm

Clone the repository and sync the extras:

2. Choose a profile

Non-secret runtime policy lives in config/fleet.toml. Confirm the desired profile in [config] default_profile before starting the backend:
Shipped profiles: The pi-tui /profiles command rewrites default_profile for the next restart. See the generated profile matrix for the exact environment names and token caps each profile expects.

3. Configure environment variables

Only variables named by the selected profile are read; process exports win over .env values.
.env
The managed profile additionally requires FLEET_MLFLOW_EXPERIMENT_NAME, FLEET_MLFLOW_TRACE_CATALOG, FLEET_MLFLOW_TRACE_SCHEMA, FLEET_MLFLOW_TRACE_TABLE_PREFIX, and FLEET_MLFLOW_TRACING_SQL_WAREHOUSE_ID.

4. Initialize the database

Fleet never applies migrations at startup. Bring the configured database to the canonical Alembic head before running the backend:
Confirm the head with uv run alembic check.

5. Prepare the Daytona snapshot

Verify the required Daytona base snapshot exists so recursive delegations skip the per-run image pull:
Use uv run fleet doctor daytona for a bounded probe of settings, database head, provider auth, Volume visibility, mount scoping, and interpreter execution before you diagnose a real Turn.

6. Start Fleet

Pick one runtime surface:
Launchers default to 127.0.0.1 and reject non-loopback binds unless --allow-non-loopback-bind is passed. Backend and MLflow output stream to .fleet_rlm/logs/; latest.log and mlflow-latest.log point to the active files. Forward arguments to pi-tui after --:

7. Stream a Turn from the API

Every Turn requires an Idempotency-Key. The stream begins immediately with a transient data-status chunk, then emits Runtime Events, and closes with finish + [DONE].
To cancel a live Run, PUT /api/runs/{run_id}/cancellation. Cancelled attempts persist a bounded tombstone in committed history.

Next steps

Installation

Install from source and pin the pi-tui workspace.

Configuration reference

Full config/fleet.toml and environment matrix.

HTTP API

Turn streaming contract and error envelope.

Troubleshooting

Common startup, Daytona, and database errors.
Last modified on August 13, 2026