LaufwerkLaufwerk
Learn Laufwerk

The system at a glance

What runs where, what Laufwerk records, and how a request becomes a result.

Laufwerk coordinates a process you write in TypeScript. Your code decides when to ask an agent, run a check, request a person's input or finish. The runtime records progress at durable boundaries so that later execution can reuse completed work.

Five pieces to picture

PieceIn a research-and-draft workflow
WorkflowResearch → write → review → accept or revise
RunOne execution for the request brief-42
AgentReusable researcher or writer configuration
SessionOne agent conversation and its execution environment
WorkspaceOptional managed files shared with sessions

Studio and the CLI are ways to operate these pieces. They do not define a second workflow language.

You / application
       ↓ start a workflow with input
Laufwerk runtime ↔ SQLite: recorded work and pending decisions
       ↓ runs your TypeScript
Code checks → agent sessions → human review → result

         Local or Docker execution
                    ↔ model provider

Follow one run

  1. You submit a topic with a stable request ID.
  2. The runtime finds an existing run or starts new work.
  3. The workflow asks a researcher and validates its structured answer.
  4. A writer receives the research your code passes to it.
  5. The workflow records a review question and waits for a person.
  6. The answer becomes input to the next branch: accept, revise or decline.

Human review and agents are optional. Hello World is still a workflow: it simply returns a greeting.

Where the boundaries are

Your workflow source stays in the project. SQLite stores operational records and Effect's durable execution state in separate databases. Model requests go to the configured provider. A JavaScript custom tool runs on the host unless its code explicitly delegates work elsewhere; placing the agent in Docker does not move that handler into the container.

Closing a browser does not delete recorded work. Continuing execution still needs a running worker or a later command. Durability saves results and pending work, not a suspended JavaScript stack.

Try it: run Hello World, then find the same run using both the CLI and Studio.


Learning path · Next: Projects, workflows and runs →

On this page