# Fabro

> Fabro is the open source dark software factory for expert engineers. Define your process as a workflow graph, let AI agents execute it, and intervene only where it matters.

Fabro replaces the prompt-wait-review loop with version-controlled workflow graphs that orchestrate AI agents, shell commands, and human decisions into repeatable, long-horizon coding processes. Workflows are defined as Graphviz graphs where each node is a stage (agent, prompt, command, conditional, human, parallel, etc.) executed by the workflow engine.

- Open source, MIT-licensed
- Workflows defined as Graphviz graphs with CSS-like model stylesheets
- Sandboxed execution via local Docker, Daytona, SSH, or Sprites
- Checkpoint/resume for long-running workflows
- Human-in-the-loop via CLI, web UI, or Slack
- GitHub integration for PR creation and repository access
- REST API with SSE event streaming

## Getting Started

- [Introduction](https://docs.fabro.sh/getting-started/introduction): Overview of Fabro and what it does
- [Quick Start](https://docs.fabro.sh/getting-started/quick-start): Get up and running with Fabro
- [Why Fabro?](https://docs.fabro.sh/getting-started/why-fabro): The problems Fabro solves for AI-assisted software teams
- [Comparison](https://docs.fabro.sh/getting-started/comparison): How Fabro compares to AI coding agents, software factories, and orchestration platforms
- [Dark Factory](https://docs.fabro.sh/getting-started/dark-factory): How small teams incrementally adopt a dark factory approach

## Core Concepts

- [Workflows](https://docs.fabro.sh/core-concepts/workflows): Core workflow concepts
- [Agents](https://docs.fabro.sh/core-concepts/agents): Core agent concepts
- [Models](https://docs.fabro.sh/core-concepts/models): How Fabro routes tasks to LLM models and providers
- [How Fabro Works](https://docs.fabro.sh/core-concepts/how-fabro-works): Architecture and execution model

## Tutorials

- [Hello World](https://docs.fabro.sh/tutorials/hello-world): Your first workflow — prompt nodes, tool use, and sub-agents
- [Plan & Implement](https://docs.fabro.sh/tutorials/plan-implement): Human gates, revision loops, and prompt file references

## Workflows

- [Nodes & Stages](https://docs.fabro.sh/workflows/stages-and-nodes): All node types and how they become stages at runtime
- [Transitions](https://docs.fabro.sh/workflows/transitions): How Fabro decides which node to execute next
- [Model Stylesheets](https://docs.fabro.sh/workflows/stylesheets): Assign LLM models to nodes using CSS-like rules
- [Variables](https://docs.fabro.sh/workflows/variables): Using variables in workflows
- [Human-in-the-Loop](https://docs.fabro.sh/workflows/human-in-the-loop): Adding human review and intervention
- [Best Practices](https://docs.fabro.sh/workflows/best-practices): Best practices for designing workflows

## Agents

- [Tools](https://docs.fabro.sh/agents/tools): Built-in tools for file I/O, shell, search, and web access
- [Prompts](https://docs.fabro.sh/agents/prompts): How Fabro constructs and delivers prompts
- [Permissions](https://docs.fabro.sh/agents/permissions): Controlling which tools agents can use
- [Skills](https://docs.fabro.sh/agents/skills): Reusable prompt templates that extend agent capabilities
- [Hooks](https://docs.fabro.sh/agents/hooks): Run custom logic in response to workflow lifecycle events
- [Outputs & Artifacts](https://docs.fabro.sh/agents/outputs): Agent responses, file changes, and test assets
- [MCP](https://docs.fabro.sh/agents/mcp): Extend agents with Model Context Protocol servers
- [Sub-agents](https://docs.fabro.sh/agents/subagents): Delegate subtasks to child agent sessions

## Execution

- [Environments](https://docs.fabro.sh/execution/environments): Sandbox providers for workflow execution
- [Run Configuration](https://docs.fabro.sh/execution/run-configuration): Configure runs with TOML files
- [Checkpoints](https://docs.fabro.sh/execution/checkpoints): Git-based checkpoint and resume
- [Retros](https://docs.fabro.sh/execution/retros): Automatic retrospectives for every run
- [Observability](https://docs.fabro.sh/execution/observability): Monitor, inspect, and analyze runs

## Integrations

- [GitHub](https://docs.fabro.sh/integrations/github): Repository access and OAuth login
- [Slack](https://docs.fabro.sh/integrations/slack): Answer human-in-the-loop questions from Slack
- [Daytona](https://docs.fabro.sh/integrations/daytona): Sandboxed cloud environments

## Reference

- [API Overview](https://docs.fabro.sh/api-reference/overview): Introduction to the Fabro REST API
- [CLI Reference](https://docs.fabro.sh/reference/cli): Command-line interface reference
- [Architecture](https://docs.fabro.sh/reference/architecture): How CLI and API modes work under the hood
- [Graphviz DOT Language](https://docs.fabro.sh/reference/dot-language): Complete reference for Fabro's workflow language

## Optional

- [Changelog](https://docs.fabro.sh/changelog/2026-03-15): Latest changes and releases
- [GitHub Repository](https://github.com/fabro-sh/fabro): Source code
- [Discord](https://fabro.sh/discord): Community chat
