--- title: "Quick Start" description: "Get up and running with Fabro" --- Fabro runs as a server. This quickstart runs everything locally on your laptop — no deployment required. To self-host the server for a team or 24/7 workflows, see [Deployment](/administration/deployment). ## Supported platforms | OS | Architecture | Supported | | --- | --- | --- | | Linux | x86_64 | Yes | | Linux | arm64 (aarch64) | Yes | | macOS | arm64 (Apple Silicon) | Yes | | macOS | x86_64 (Intel) | No | | Windows | any | No | On Intel Macs, run Fabro in a Linux x86_64 container or VM. Native Windows isn't supported; use WSL2 with a supported Linux architecture. ## Install ```bash curl -fsSL https://fabro.sh/install.md | claude ``` ```bash codex "$(curl -fsSL https://fabro.sh/install.md)" ``` ```bash brew install fabro-sh/tap/fabro-nightly ``` ```bash curl -fsSL https://fabro.sh/install.sh | bash ``` Release binaries and the multi-arch Docker image ship with [SLSA Build Provenance](/reference/verifying-releases) attestations you can verify with `gh attestation verify`. Self-hosting the server? See [Self-host with Docker](/administration/self-host-docker) and [Server Operations](/reference/server-operations) for the install wizard, auth, and CLI-pointing. ## Initialize your project ```bash cd my-repo/ fabro repo init ``` This creates `.fabro/project.toml` and a starter workflow under `.fabro/workflows/hello/`. ## Configure API keys `fabro run` uses the Fabro server even when you run it from a local terminal. If installation has not already configured a provider, store a key in that server's vault: ```bash fabro secret set ANTHROPIC_API_KEY sk-ant-... ``` You can also use `fabro provider login --provider anthropic` for guided setup. You only need one provider to get started; add more to enable multi-model workflows. Exporting a provider key in your shell does not configure server-backed workflows. For a remote server, use `fabro secret --server https://fabro.example.com set ANTHROPIC_API_KEY sk-ant-...` and `fabro run --server https://fabro.example.com hello` so both commands use the same server. Direct `fabro exec` and SDK callers have different [credential sources](/core-concepts/models#credential-sources). ## Run your first workflow ```bash fabro run hello ``` ## Next steps Understand the problems Fabro solves. Learn how to define workflow graphs in Graphviz.