⚒️ 专为专业工程师打造的 开源 黑暗软件工厂。
AI coding agents are powerful but unpredictable. You either babysit every step or review a 50-file diff you don't trust. Fabro gives you a middle path: define the process as a graph, let agents execute it, and intervene only where it matters. Why Fabro?
# With Claude Code
curl -fsSL https://fabro.sh/install.md | claude
# With Codex
codex "$(curl -fsSL https://fabro.sh/install.md)"
# With Homebrew
brew install fabro-sh/tap/fabro-nightly
# With Bash
curl -fsSL https://fabro.sh/install.sh | bash
Then run fabro server start to finish setup in your browser. The server opens a web wizard, exits when the wizard completes, and starts in configured mode the next time you run it.
fabro sandbox ssh and expose ports with fabro sandbox preview for live debugging
Git checkpointing
Every stage commits code changes and execution metadata to Git branches. Resume, revert, or trace any change
Run observability
Durable events, checkpoints, conclusions, and stage outputs make every run inspectable and exportable
⚡
Comprehensive API
REST API with SSE event streaming and a React web UI. Run workflows programmatically or as a service
Single binary, no runtime
One compiled Rust executable with zero dependencies. No Python, no Node, no Docker required
⚖️
Open source (MIT)
Full source code, no vendor lock-in. Self-host, fork, or extend to fit your workflow
A plan-approve-implement workflow where a human reviews the plan before the agent writes code:
…
Agents run as multi-turn LLM sessions with tool access. Human gates (hexagon) pause for approval. The stylesheet routes planning to a cheap model and coding to a frontier model. See the Graphviz DOT language reference for the full syntax.
Fabro ships with comprehensive documentation covering every feature in depth:
# With Claude Code
curl -fsSL https://fabro.sh/install.md | claude
# With Codex
codex "$(curl -fsSL https://fabro.sh/install.md)"
# With Homebrew
brew install fabro-sh/tap/fabro-nightly
# With Bash
curl -fsSL https://fabro.sh/install.sh | bash
Release binaries and the multi-arch Docker image ship with SLSA Build Provenance attestations. See Verifying Releases to check an artifact was built by our GitHub Actions workflow.
Then finish setup in your browser and initialize Fabro in your project:
fabro server start # opens a web install wizard in your browser
# (server exits when the wizard finishes — start it again to run Fabro)
cd my-project
fabro repo init # per project
For headless or scripted environments, fabro install runs the same setup as a CLI-only wizard.
Fabro runs as a server. You choose where it runs:
fabro server start. Workflows pause when your laptop sleeps.docker compose or any cloud container service (ECS, Cloud Run, Kubernetes). See Self-host with Docker.One-click managed alternative for the same Docker image: See the deployment overview for the full picture.
Outside contributions are welcome! Whether it's a bug fix, a new feature, documentation, or a typo -- we'd love your help making Fabro better.
See CONTRIBUTING.md for build instructions and development workflow.
Fabro is licensed under the MIT License.
all_conditional_edges suggests an unconditional fallback that on_failure="exit" discards on the failure path
Command node failures are misclassified as transient_infra when the captured output contains a 50x-looking line number
Run detail graph renders the unexpanded workflow source, so an imported subgraph shows as a single placeholder node
web_fetch prompt summarization is unavailable for non-Claude-5 workflow agents
component fan-out: N-1 branches killed within ~100ms before any LLM call (local provider)
skip_git_hooks does not stop post-commit hooks: checkpoint commit lacks core.hooksPath=/dev/null
Materialize only prompt values rendered by the selected fidelity
sandbox cp --recursive drops executable bits
Support shell-free command nodes with executable and argument fields
Support node-scoped environment bindings for workflow inputs