Skip to main content

Recursive Language Models with DSPy + Modal and an integrated Web UI for secure long-context code execution

Project description

fleet-rlm

PyPI version Python versions License: MIT CI PyPI Downloads

Secure, cloud-sandboxed Recursive Language Models (RLM) with DSPy and Modal.

fleet-rlm gives AI agents a secure cloud sandbox for long-context code and document work, with a Web UI-first experience, recursive delegation, and DSPy-aligned tooling.

Paper | Docs | Contributing


Quick Start (Web UI First)

Fastest path: install and launch the built-in Web UI.

# Install as a runnable CLI tool
uv tool install fleet-rlm

# Launch the Web UI server
fleet web

Open http://localhost:8000 in your browser.

  • Prefer a regular environment install instead of uv tool?
uv pip install fleet-rlm
fleet web
  • fleet web is the primary interactive interface.
  • Product chat transport is WS-first (/api/v1/ws/chat); POST /api/v1/chat is compatibility-only and deprecated (removal target v0.4.93).
  • Plain fleet-rlm installs are intended to support fleet web.
  • Runtime settings (LM / Modal) can be configured from the Web UI Settings surface in local development.
  • Runtime model updates from Settings are hot-applied in-process (/api/v1/runtime/settings) and verified via active model fields on /api/v1/runtime/status.
  • Secret settings inputs in the web Runtime UI are write-only; enter a new value to rotate, or use explicit clear-on-save.
  • Full setup for Modal secrets, Neon DB, auth modes, and deployment is linked below.

Why fleet-rlm

  • Chat with an RLM-powered agent in the browser (fleet web)
  • Run recursive long-context tasks with a secure Modal sandbox
  • Analyze documents (including PDF ingestion with MarkItDown/pypdf fallback)
  • Stream execution events and trajectories for observability/debugging
  • Expose capabilities as an MCP server (fleet-rlm serve-mcp)

Other Ways to Run It

Common commands:

# Standalone terminal chat
fleet-rlm chat --trace-mode compact

# Explicit API server
fleet-rlm serve-api --port 8000

# FastAPI CLI (uses [tool.fastapi] entrypoint)
fastapi dev
fastapi run

# MCP server
fleet-rlm serve-mcp --transport stdio

# Scaffold assets for Claude Code
fleet-rlm init --list

Terminal chat surfaces

  • fleet starts the standalone interactive chat launcher (Ink runtime path).
  • fleet-rlm chat starts the in-process terminal chat.
  • OpenTUI workflows and setup are documented in the guides (see links below) because they require additional local tooling.

Running From Source (Contributors)

# from repo root
uv sync --extra dev --extra server
uv run fleet web
uv run fastapi dev

Frontend build workflow (when validating packaged Web UI assets):

# from repo root
cd src/frontend
bun install --frozen-lockfile
bun run build
cd ../..

Use the full contributor setup (frontend builds, env/bootstrap, quality gates) in AGENTS.md and docs/contributing.md.

Architecture Overview

Read this after the quick start if you want the full system picture (entry points, ReAct orchestration, tools, Modal execution, persistent storage).

graph TB
    subgraph entry ["🚪 Entry Points"]
        CLI["CLI (Typer)"]
        WebUI["Web UI<br/>(React SPA)"]
        API["FastAPI<br/>(WS/REST)"]
        TUI["Ink TUI<br/>(standalone runtime)"]
        MCP["MCP Server"]
    end

    subgraph orchestration ["🧠 Orchestration Layer"]
        Agent["RLMReActChatAgent<br/>(dspy.Module)"]
        History["Chat History"]
        Memory["Core Memory<br/>(Persona/Human/Scratchpad)"]
        DocCache["Document Cache"]
    end

    subgraph tools ["🔧 ReAct Tools"]
        DocTools["📄 load_document<br/>read_file_slice<br/>chunk_by_*"]
        RecursiveTools["🔄 rlm_query<br/>llm_query<br/>(recursive delegation)"]
        ExecTools["⚡ execute_code<br/>edit_file<br/>search_code"]
    end

    subgraph execution ["⚙️ Execution Layer"]
        Interpreter["ModalInterpreter<br/>(JSON protocol)"]
        Profiles["Execution Profiles:<br/>ROOT | DELEGATE | MAINTENANCE"]
    end

    subgraph cloud ["☁️ Modal Cloud"]
        Sandbox["Sandbox Driver<br/>(Python REPL)"]
        Volume[("💾 Persistent Volume<br/>/data/<br/>• workspaces<br/>• artifacts<br/>• memory<br/>• session state")]
    end

    WebUI -->|"WS-first (REST compat)"| API
    CLI --> Agent
    API --> Agent
    TUI --> Agent
    MCP --> Agent

    Agent --> History
    Agent --> Memory
    Agent --> DocCache

    Agent --> DocTools
    Agent --> RecursiveTools
    Agent --> ExecTools

    DocTools --> Interpreter
    RecursiveTools --> Interpreter
    ExecTools --> Interpreter

    Interpreter --> Profiles
    Interpreter -->|"stdin/stdout<br/>JSON commands"| Sandbox
    Sandbox -->|"read/write"| Volume

    style entry fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style orchestration fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style tools fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style execution fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
    style cloud fill:#fce4ec,stroke:#c2185b,stroke-width:2px

Docs and Guides

Advanced Features (Docs-First)

fleet-rlm also supports runtime diagnostics endpoints, WebSocket execution streams (/api/v1/ws/execution), multi-tenant Neon-backed persistence, and opt-in PostHog LLM analytics. Those workflows are documented in the guides/reference docs rather than front-loaded here.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md, then use AGENTS.md for repo-specific commands and quality gates.

License

MIT License — see LICENSE.

Based on Recursive Language Modeling research by Alex L. Zhang (MIT CSAIL), Omar Khattab (Stanford), and Tim Kraska (MIT).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fleet_rlm-0.4.92.tar.gz (227.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fleet_rlm-0.4.92-py3-none-any.whl (294.2 kB view details)

Uploaded Python 3

File details

Details for the file fleet_rlm-0.4.92.tar.gz.

File metadata

  • Download URL: fleet_rlm-0.4.92.tar.gz
  • Upload date:
  • Size: 227.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fleet_rlm-0.4.92.tar.gz
Algorithm Hash digest
SHA256 11b2a72fd0e0e96b19720919b825a34b65ebb90f39eb0d0857dac7ffe0c1c078
MD5 070566e917e3d2534ace155799639405
BLAKE2b-256 719b458ac48703331ba5447864aac5782c3c80910b3d0fa7b271a5f8c6e1dfb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fleet_rlm-0.4.92.tar.gz:

Publisher: release.yml on Qredence/fleet-rlm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fleet_rlm-0.4.92-py3-none-any.whl.

File metadata

  • Download URL: fleet_rlm-0.4.92-py3-none-any.whl
  • Upload date:
  • Size: 294.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fleet_rlm-0.4.92-py3-none-any.whl
Algorithm Hash digest
SHA256 3a86226e7330619b5a781b8ea6f5bcdfa34775afa57cbf8cb1ee545bcd8ad4cd
MD5 54e94c625b27807466a7e7e1c9e01d8a
BLAKE2b-256 26d7e447db13ccb542b720c6cbed82696e8357cc9ff6b6fd167acc2415b8c754

See more details on using hashes here.

Provenance

The following attestation bundles were made for fleet_rlm-0.4.92-py3-none-any.whl:

Publisher: release.yml on Qredence/fleet-rlm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page