Secure Recursive Language Models with DSPy, Modal sandbox execution, an integrated Web UI, and an experimental Daytona workbench runtime.
fleet-rlm is built around a Web UI-first workflow for long-context code and document reasoning. The default runtime stays Modal-backed and chat-oriented. The Daytona path is experimental, but it now plugs into the same shared websocket workspace and dedicated run-workbench experience instead of living as a completely separate product surface.
Docs | Contributing | Changelog
Install the published package and launch the Web UI:
# Option 1: install the tool
uv tool install fleet-rlm
fleet webOr run it in your current environment:
# Option 2: install in the active environment
uv pip install fleet-rlm
fleet webOpen http://localhost:8000.
Published installs already include built frontend assets, so end users do not need pnpm, vp, or a separate frontend build step.
- A focused Web UI with
RLM Workspace,Volumes, andSettings - A default Modal-backed chat/runtime path over
/api/v1/ws/chat - An experimental Daytona workbench path exposed through the same workspace and websocket contract
- Runtime settings and diagnostics APIs for model, Modal, and Daytona configuration
- Optional FastMCP server support for external tool clients
- PostHog and MLflow integration for runtime telemetry, tracing, feedback, and evaluation workflows
Legacy taxonomy, skills, memory, and analytics routes are no longer first-class product surfaces; the current app redirects those URLs to supported pages.
# Primary local Web UI + API server
fleet web
# Standalone terminal chat
fleet-rlm chat --trace-mode compact
# Explicit FastAPI server
fleet-rlm serve-api --port 8000
# Optional MCP server
fleet-rlm serve-mcp --transport stdio
# Experimental Daytona setup validation
fleet-rlm daytona-smoke --repo https://github.com/qredence/fleet-rlm.git --ref main
# Experimental Daytona rollout runner
fleet-rlm daytona-rlm \
--repo https://github.com/qredence/fleet-rlm.git \
--task "Summarize the tracing architecture" \
--batch-concurrency 4
# Scaffold bundled Claude Code assets
fleet-rlm init --listModal chatis the default runtime inRLM Workspace.Daytona pilotis experimental and uses the same websocket chat surface withruntime_mode="daytona_pilot".- In Modal mode, the chat composer can send
execution_mode. - In Daytona mode, the chat flow can send optional
repo_url,repo_ref,context_paths, andbatch_concurrency. - Daytona websocket requests do not accept request-side
max_depth; the CLI still carries--max-depthas a deprecated compatibility flag forfleet-rlm daytona-rlm. - The right rail stays mode-aware: standard sessions use the message inspector, while Daytona sessions hydrate the dedicated run workbench for iterations, callbacks, prompts, evidence, and final output.
The current frontend/backend contract centers on:
/healthand/readyGET /api/v1/auth/meGET /api/v1/sessions/state/api/v1/runtime/settings/api/v1/runtime/status/api/v1/runtime/tests/modal/api/v1/runtime/tests/lm/api/v1/runtime/volume/tree/api/v1/runtime/volume/filePOST /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.
From the repo root:
uv sync --all-extras --dev
uv run fleet webFrontend contributors should use pnpm scripts from src/frontend:
cd src/frontend
pnpm install --frozen-lockfile
pnpm run dev
pnpm run build
pnpm run checkThe frontend uses Vite+ internally through the vp toolchain, but the canonical contributor workflow in this repo is pnpm run ....
Common repo-level validation commands:
make test-fast
make quality-gate
make release-checkFocused docs validation:
uv run python scripts/check_docs_quality.py
uv run python scripts/check_release_hygiene.py
uv run python scripts/check_release_metadata.pyThe Daytona runtime is analysis-first and remains opt-in. Use this order:
- Set
DAYTONA_API_KEY,DAYTONA_API_URL, and optionalDAYTONA_TARGET. - Run
fleet-rlm daytona-smoke --repo <url> [--ref <branch-or-sha>]. - Only then 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.