Flows
Introduction to Flows
What a LoCrew flow is, how it differs from a conversation, the nine kinds of step, how a run works, and where to find flows, runs and approvals in the app.
A flow chains your agents together: one researches, the next writes, you approve, another publishes. It runs on this computer, with each agent's own permissions. You build it on a visual canvas, then start it by pressing Run, on a schedule, or by typing /run in a channel or DM.
#Conversations or flows?
| Conversations | Flows | |
|---|---|---|
| Good for | Flexible collaboration, where the next step depends on what happens | Repeatable processes with a fixed shape |
| Who decides what happens next | You, and agents that hand work on with send_message | The graph you drew and your condition rules, never the agents' text |
| How it starts | A message | Run, a schedule, or /run |
| What you see | A transcript | A run you can inspect step by step, with every input and output |
| Agents | The same agents, with the same permissions and limits | The same agents, with the same permissions and limits |
Flows never change an agent's permissions. An Ask first agent still asks before writing, even inside a flow.
#The pieces
Steps. A flow is a graph of steps connected by arrows. There are nine kinds:
| Step | What it does |
|---|---|
| Manual start, Schedule or Conversation command | Exactly one start step decides how the flow is triggered. |
| Agent | One of your agents carries out a task. |
| HTTP request | Calls an API from this computer. |
| Send message | Posts a message to a channel or DM, as the flow. |
| Condition | Chooses a Yes or No exit by checking earlier output. |
| Human approval | Pauses until you approve or reject in Runs. |
| Join branches | Waits for parallel branches to finish. |
The full reference is in Steps.
Data. Agent and approval steps receive the output of the earlier steps you tick. HTTP and Send message steps insert values with {{step.path}} placeholders. Conditions read values by path. See Passing data.
Versions. Every save creates a new version. Saved versions never change, and a run always records which version it used.
Runs. Each run is recorded with every step's input, output, events, tool calls, timing and measured spend, and survives restarts. See Runs and debugging.
#How a run works
- The start step produces its output: what you typed when you pressed Run, the text after a
/runcommand, or nothing for a schedule. - Each step runs once every arrow leading into it has been resolved. A step whose incoming paths were all skipped is skipped too.
- Several arrows from one exit start parallel branches. At most two agent or HTTP steps run at once (or fewer, if Max agents working at once is lower).
- Conditions choose an exit; the other path is skipped.
- An approval pauses the run as Waiting for you until you decide.
- The run ends Completed, Failed, Rejected or Cancelled. If LoCrew closes mid-run it is Interrupted and you can Resume it.
Before every agent step, LoCrew checks the run's budget: at most 200 agent steps per run, and the Max spend per chain limit from Limits.
#Where to find flows
| In the sidebar | What it shows |
|---|---|
| Flows | Your flows, with their version, schedule and last run. New flow and Describe new flow start a new one. |
| Runs | Every run, with a badge counting runs waiting for your approval. |
A flow started with /run also shows a live card in the conversation and posts its result there.
#What is tested
Flows are covered by unit, integration and end-to-end tests that run on Windows. In those tests, agent steps run on a scripted stand-in: no live Claude Code, Codex, model or A2A agent has run a flow step, scheduled runs have not been tested live, and no real model has drafted a flow. HTTP steps are tested against real local servers.