Prerequisites
- fracta CLI installed and on PATH (
fracta --helpworks). See installation. - Docker with Compose V2 —
docker compose version. - A git repository to scaffold into.
fracta initruns in your own project root.
1. Initialize fracta in your project
From the root of any git repository:fracta.yaml and everything under deployment/ are yours to edit.
2. Set up auth helpers
The scaffoldeddeployment/auth-helpers/fetch-token-example is a deliberately non-functional template that fails loudly until you edit it. Open the file — its header comments include reference snippets for AWS Bedrock STS, Vertex AI via gcloud, mounted Anthropic API keys, and custom HTTP token proxies. Pick the one matching your provider.
For example, for AWS Bedrock STS:
deployment/configs/controlplane.yaml to reference your helper. The default scaffold ships an example profile pointing at fetch-token-example; replace it with a bedrock profile (or whatever name fits) pointing at your script. See the credential pipeline guide for the full profile schema.
The compose file bind-mounts ./deployment/auth-helpers/ into every fracta service container at /opt/fracta/auth-helpers/, so resolver command: references find your helpers on PATH inside the container.
3. Start the stack
Secret injection
Compose interpolates${VAR} from your environment, so any secret manager that sets env vars works. For 1Password:
4. Wire fracta into your AI CLI
The scaffoldedfracta.yaml points at http://localhost:19090 — the host-mapped port for the compose controlplane container. Your AI CLI runs fracta serve from your project root, which reads ./fracta.yaml.
Claude Code (.mcp.json at the project root):
.codex/config.toml):
fracta serve, wrap it the same way you wrap docker compose up.
5. Connect and verify
Restart Claude Code or run/mcp to reconnect MCP servers. The thin client connects to localhost:19090.
You should see fracta tools: fracta_spawn, fracta_list, graph_query, etc. If you’ve added MCP backend services to deployment/docker-compose.yml, you’ll also see their tools.
6. Spawn your first agent
From the CLI:fracta_list() and fracta_peek(name="hello-compose").
Note: Docker Compose uses DirectoryWorkspace, not git worktrees. Agents work in directories under /workspace/agents/<task>. Git merge semantics are not available — for git-based workflows, use local process mode.
7. View logs
8. Stop and clean up
Adding MCP backend services
The scaffoldeddeployment/docker-compose.yml ships only the fracta core. Add MCP backend services by editing the compose file. For example, to add Elasticsearch MCP:
deployment/configs/gateway.yaml:
What differs from local process
| Local Process | Docker Compose | |
|---|---|---|
| Control plane | Host daemon (:9090) | Container (:19090 on host) |
| Gateway | Daemon subprocess (:8080) | Container (:8080) |
| State | SQLite | Postgres |
| Queue | In-memory | Postgres |
| Agents | Host subprocesses | Container subprocesses |
| Workspace | Git worktrees | Directories (no git merge) |
| MCP backends | Host subprocesses | Container HTTP |
| LLM auth | Host command (resolved on host PATH) | Container command (resolved at /opt/fracta/auth-helpers/) |
| Secret injection | Wraps fracta serve | Wraps docker compose up |
RemoteControlPlaneClient over HTTP.
Strategy runner gateway plumbing
Strategies that call MCP tools inline (ctx.mcp.call_tool(...)) require gateway access from the runner. Since v0.5.2 the Compose scaffold ships this wired by default:
deployment/configs/gateway.yamldeclaresstrategy.gateway_access: true— sostrategy_runinvocations include the gateway URL and the calling agent’s task in the per-request payload.- The
strategy-runnerservice indeployment/docker-compose.ymlboots with--gateway-url http://gateway:8080 --agent-task default, providing a fallback gateway connection for strategies that need one before any per-request URL arrives.
ctx.mcp.call_tool(), declare it in contract.yaml:
Next steps
- Full architecture reference: deployment overview (Section 2)
- Multi-runtime setup: runtime configuration
- Auth pipeline deep dive: credential pipeline
- Ready for Kubernetes? Try Kubernetes Quickstart

