Recursive Language Models with DSPy + Modal and an integrated Web UI for secure long-context code execution
Project description
fleet-rlm
fleet-rlm is a Web UI-first recursive language model runtime for long-context code and document work. It ships a Modal-backed default runtime, an integrated FastAPI + WebSocket surface, packaged frontend assets, and an experimental Daytona workbench path that plugs into the same workspace instead of living as a separate product.
Docs | Contributing | Changelog
Why This Repo Exists
- Use a single workspace for long-context reasoning, chat turns, run inspection, and runtime diagnostics.
- Keep the default product path Modal-backed and chat-oriented.
- Expose an experimental Daytona pilot without forking the frontend or transport contract.
- Ship both a user-facing Web UI and integration surfaces for CLI, HTTP, WebSocket, and MCP workflows.
The supported app surfaces are RLM Workspace, Volumes, and Settings. Legacy taxonomy, skills, memory, and analytics routes now redirect to supported pages instead of remaining first-class product surfaces.
Quick Start
Add fleet-rlm to a uv-managed project and launch the Web UI:
# Create a project if you do not already have one
uv init
# Add fleet-rlm to the environment
uv add fleet-rlm
# Start the Web UI + API server
uv run fleet web
Open http://127.0.0.1:8000.
If you already have a uv project, skip uv init and just run uv add fleet-rlm.
Published installs already include built frontend assets, so end users do not need pnpm, vp, or a separate frontend build step.
Primary Workflows
Use the Web UI
uv run fleet web
This starts the main product surface with:
RLM Workspacefor chat and runtime executionVolumesfor runtime-backed file browsingSettingsfor runtime configuration and diagnostics
Use terminal chat
uv run fleet-rlm chat --trace-mode compact
Run the API directly
uv run fleet-rlm serve-api --host 127.0.0.1 --port 8000
Enable MCP support
If you want the optional MCP server surface, install the extra first:
uv add "fleet-rlm[mcp]"
uv run fleet-rlm serve-mcp --transport stdio
Runtime Modes
fleet-rlm currently has two top-level runtime modes:
modal_chat: the default product pathdaytona_pilot: the experimental workbench path
In the shared runtime contract:
- Modal requests can include
execution_mode. - Daytona requests can include
repo_url,repo_ref,context_paths, andbatch_concurrency. - Daytona still uses the same websocket workspace and run-workbench flow, but it intentionally remains experimental.
fleet-rlm daytona-rlm --max-depthremains available only as a deprecated compatibility flag for the CLI pilot path.
CLI Surfaces
This package exposes two command entrypoints:
fleet: lightweight launcher for terminal chat andfleet webfleet-rlm: fuller Typer CLI for API, MCP, scaffold, and Daytona flows
Common commands:
# Web UI
uv run fleet web
# Terminal chat
uv run fleet
uv run fleet-rlm chat --trace-mode verbose
# FastAPI server
uv run fleet-rlm serve-api --port 8000
# Optional MCP server
uv run fleet-rlm serve-mcp --transport stdio
# Scaffold bundled Claude Code assets
uv run fleet-rlm init --list
# Experimental Daytona validation
uv run fleet-rlm daytona-smoke --repo https://github.com/qredence/fleet-rlm.git --ref main
# Experimental Daytona pilot
uv run fleet-rlm daytona-rlm \
--repo https://github.com/qredence/fleet-rlm.git \
--task "Summarize the tracing architecture" \
--batch-concurrency 4
HTTP and WebSocket Contract
The current frontend/backend contract centers on:
/health/readyGET /api/v1/auth/meGET /api/v1/sessions/state/api/v1/runtime/*POST /api/v1/traces/feedback/api/v1/ws/chat/api/v1/ws/execution
When AUTH_MODE=entra, HTTP and WebSocket access use real Entra bearer-token validation plus Neon-backed tenant admission. Runtime settings writes are intentionally limited to APP_ENV=local.
The canonical schema lives in openapi.yaml.
Source Development
From the repo root:
uv sync --all-extras --dev
uv run fleet web
Frontend contributors should use pnpm inside src/frontend:
cd src/frontend
pnpm install --frozen-lockfile
pnpm run dev
pnpm run check
This repo explicitly uses pnpm for frontend work even though the packaged frontend is built with Vite+ under the hood.
Validation
Repo-level validation:
make test-fast
make quality-gate
make release-check
Focused docs validation:
uv run python scripts/check_docs_quality.py
uv run python scripts/validate_release.py hygiene
uv run python scripts/validate_release.py metadata
Experimental Daytona Notes
Use this order for Daytona work:
- Set
DAYTONA_API_KEY,DAYTONA_API_URL, and optionalDAYTONA_TARGET. - Run
uv run fleet-rlm daytona-smoke --repo <url> [--ref <branch-or-sha>]. - Only then run
uv run fleet-rlm daytona-rlm [--repo <url>] [--context-path <path> ...] --task <text> ....
This repo treats DAYTONA_API_BASE_URL as a misconfiguration. Use DAYTONA_API_URL instead.
Documentation Map
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fleet_rlm-0.4.98.tar.gz.
File metadata
- Download URL: fleet_rlm-0.4.98.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4538e90841a19103d10a16dd0bad140eaae80cfb200a5d34c63ded6cc0a327f6
|
|
| MD5 |
bb62b4056c5d804fd6c4c9eb5b4e2ca4
|
|
| BLAKE2b-256 |
b21248cbe158ca53895903ec32f3db749d7181339e1a3844ee1c3c5f70589156
|
Provenance
The following attestation bundles were made for fleet_rlm-0.4.98.tar.gz:
Publisher:
release.yml on Qredence/fleet-rlm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fleet_rlm-0.4.98.tar.gz -
Subject digest:
4538e90841a19103d10a16dd0bad140eaae80cfb200a5d34c63ded6cc0a327f6 - Sigstore transparency entry: 1118478154
- Sigstore integration time:
-
Permalink:
Qredence/fleet-rlm@e73578d3c22e3b939d43bc23faaffad0bf4d97c5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Qredence
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e73578d3c22e3b939d43bc23faaffad0bf4d97c5 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file fleet_rlm-0.4.98-py3-none-any.whl.
File metadata
- Download URL: fleet_rlm-0.4.98-py3-none-any.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11b63e22e4abd8182fbcab65fb51e97e1725739073339c5bc0a872c01a22a080
|
|
| MD5 |
2186113e3134502363ac3fc4d3c40aba
|
|
| BLAKE2b-256 |
e60599b168a2b2f91e772ff1b882066a94ea87e4fdd19c994ccb719ce1cd3d94
|
Provenance
The following attestation bundles were made for fleet_rlm-0.4.98-py3-none-any.whl:
Publisher:
release.yml on Qredence/fleet-rlm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fleet_rlm-0.4.98-py3-none-any.whl -
Subject digest:
11b63e22e4abd8182fbcab65fb51e97e1725739073339c5bc0a872c01a22a080 - Sigstore transparency entry: 1118478179
- Sigstore integration time:
-
Permalink:
Qredence/fleet-rlm@e73578d3c22e3b939d43bc23faaffad0bf4d97c5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Qredence
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e73578d3c22e3b939d43bc23faaffad0bf4d97c5 -
Trigger Event:
workflow_dispatch
-
Statement type: