fabro run.
Anatomy of a workflow
Every workflow is adigraph with a goal, a start node, an exit node, and one or more processing nodes connected by edges:
my-workflow.fabro
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 (defaultbox shape) run an LLM with access to tools — bash, file editing, sub-agents — looping autonomously until the task is complete:
parallelogram) run shell scripts and capture output for downstream nodes:
hexagon) pause the workflow and wait for a person to choose a path. Edge labels define the options:
Branching and loops
max_visits on a node to prevent infinite loops:
Parallel execution
Goal gates
Mark critical nodes withgoal_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:
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.