> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qredence.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# fleet-rlm quickstart

> Install fleet-rlm with uv, configure Daytona credentials and a LiteLLM-compatible provider, then launch the recursive ReAct Web UI in under five minutes.

Get fleet-rlm running locally in under five minutes.

## Prerequisites

* **Python 3.10 or later**
* **[uv](https://docs.astral.sh/uv/getting-started/installation/)** package manager
* **Daytona API key** — sandbox execution backend
* **An LLM API key** — any LiteLLM-supported provider (OpenAI, Anthropic, Gemini, etc.)

## 1. Add fleet-rlm to a uv project

<CodeGroup>
  ```bash New project theme={null}
  uv init my-fleet-app
  cd my-fleet-app
  uv add fleet-rlm
  ```

  ```bash Existing project theme={null}
  uv add fleet-rlm
  ```
</CodeGroup>

Published installs already include built frontend assets, so you do not need `pnpm` or a separate frontend build step.

## 2. Configure environment variables

Create a `.env` file in your working directory:

```bash .env theme={null}
# LLM provider (LiteLLM model identifier)
DSPY_LM_MODEL=openai/gpt-4o-mini
DSPY_LLM_API_KEY=sk-your-api-key

# Daytona sandbox runtime
DAYTONA_API_KEY=your-daytona-api-key
# Optional override:
# DAYTONA_API_URL=https://app.daytona.io/api
```

<Tip>
  See the [configuration reference](/fleet-rlm/reference/configuration) for the full environment variable list, including auth, database, and MLflow settings.
</Tip>

## 3. Launch the Web UI

```bash theme={null}
uv run fleet web
```

Open `http://127.0.0.1:8000`. You should see four product surfaces:

* **Workbench** — adaptive chat and runtime execution
* **Volumes** — runtime-backed file browsing
* **Optimization** — DSPy evaluation and GEPA workflows
* **Settings** — runtime configuration and diagnostics

## 4. Try a recursive task

In the Workbench, send a prompt that exceeds a single context window — for example, asking the agent to summarize a long document or analyze a repository. The agent will:

1. Decide the task is too large for one ReAct context.
2. Call `delegate_to_rlm` to spin up an isolated child Daytona sandbox.
3. Run a bounded `dspy.RLM` inside the child, recursing further with `sub_rlm` if needed.
4. Stream intermediate trace events back to the UI and bubble the final answer into the chat.

## Other surfaces

<CardGroup cols={2}>
  <Card title="Terminal chat" icon="terminal">
    ```bash theme={null}
    uv run fleet-rlm chat --trace-mode compact
    ```
  </Card>

  <Card title="API server only" icon="server">
    ```bash theme={null}
    uv run fleet-rlm serve-api --port 8000
    ```
  </Card>
</CardGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Installation guide" icon="download" href="/fleet-rlm/installation">
    Install from PyPI or from source for contributors.
  </Card>

  <Card title="Core concepts" icon="brain" href="/fleet-rlm/concepts/overview">
    ReAct orchestration, recursive RLM, runtime surfaces.
  </Card>

  <Card title="Recursive RLM" icon="diagram-project" href="/fleet-rlm/concepts/recursive-rlm">
    How `delegate_to_rlm` and child sandbox isolation work.
  </Card>

  <Card title="Troubleshooting" icon="circle-question" href="/fleet-rlm/guides/troubleshooting">
    Common installation and runtime issues.
  </Card>
</CardGroup>
