Current workspace architecture

lash/system

lash is a Rust workspace for coding agents. The core is a layered agent runtime — a sans-IO turn machine wrapped by lash-core, with mode plugins, provider adapters, dynamic tools, durable session graph storage, benchmark runners, a CLI/TUI host, and an app-facing lash facade on top.

Workspace
48 Cargo membersRuntime core and facade, CLI/TUI, providers, mode and tool plugins (including MCP), export and trace utilities, lashlang, examples, and benchmark runners.
Primary language
Rust, ~191k LOCMeasured by line count over *.rs, excluding target and .git.
Architecture root
docs/architecture/Chaptered documentation matching the current runtime, projection seams, and handoff continuations.

Reading Paths

Three curated entry routes. The full chapter index lives in the sidebar; these are the orderings worth following depending on why you're here.

  1. For newcomers

    Understand the architecture top-down

    Boundaries first, then the crate map, then how a turn moves through the system.

    1. Overview
    2. Modules
    3. Data Flow
  2. Modifying RLM mode

    From the executor down to the language

    How RLM drives turns, the Lashlang surface the model writes against, and the runtime contracts both rely on.

    1. Execution
    2. Lashlang
    3. Runtime
  3. Using lash from apps

    Wire it into another host

    System shape, the app-facing lash path, then the named contracts you'll reach for to compose providers, modes, and plugins.

    1. Overview
    2. Execution
    3. Abstractions