Skip to main content
A workflow is a directed graph that defines a repeatable process for AI agents, shell commands, and human decisions. Unlike a DAG (directed acyclic graph), a Fabro workflow can and often does include loops — for example, implement-test-fix cycles that repeat until tests pass. You write workflows in Graphviz DOT, check them into version control, and run them with fabro run.

Anatomy of a workflow

Every workflow is a digraph with a goal, a start node, an exit node, and one or more processing nodes connected by edges:
my-workflow.fabro
The goal attribute describes what the workflow accomplishes. Fabro uses it to guide agent behavior.

Key node types

Each node’s Graphviz shape determines how it executes. The three most important types are: Agents (default box shape) run an LLM with access to tools — bash, file editing, sub-agents — looping autonomously until the task is complete:
Commands (parallelogram) run shell scripts and capture output for downstream nodes:
Human gates (hexagon) pause the workflow and wait for a person to choose a path. Edge labels define the options:
Fabro supports additional node types for one-shot prompts, conditional branching, parallel fan-out/fan-in, and more. See Stages and Nodes for the full reference.

Branching and loops

Edges can have conditions that route execution based on outcomes:
Loops are natural — just point an edge back to an earlier node. Use max_visits on a node to prevent infinite loops:

Parallel execution

Fan out to run branches concurrently, then merge the results:

Goal gates

Mark critical nodes with goal_gate=true. The workflow fails if any goal gate doesn’t succeed — even if execution reaches the exit node:

Running a workflow

From the CLI:
Or from a run config TOML for repeatable, parameterized runs:
In the web UI, the Workflows page lists all available workflows. Click into a workflow to view its Graphviz definition, rendered graph diagram, and run history.

The Workflows page lists all available workflows with their trigger type and last run time.

The workflow detail view shows the Graphviz definition with syntax highlighting.

The Diagram tab renders the workflow graph visually, showing nodes, edges, and conditions.

The Runs tab shows all runs for this workflow, filterable by status.

See the Quick Start to try it out, or browse the example workflows for real-world patterns.