Config file
The server config file at~/.fabro/server.toml controls how fabro serve behaves — API binding, authentication, run defaults, and more. The Quick Start doesn’t require one, but production deployments should configure it explicitly.
Full reference
server.toml
CLI overrides
Severalserver.toml settings can be overridden via fabro serve flags:
| Flag | Default | Description |
|---|---|---|
--port | 3000 | Port to listen on |
--host | 127.0.0.1 | Host address to bind to |
--model | — | Override default LLM model |
--provider | — | Override default LLM provider |
--sandbox | — | Override default sandbox provider |
--max-concurrent-runs | 5 | Maximum concurrent run executions |
--config | ~/.fabro/server.toml | Path to server config file |
--dry-run | — | Execute with simulated LLM backend |
server.toml values. See Run Configuration — Precedence for the full resolution order.
Run defaults
The[llm], [setup], [sandbox], [checkpoint], and [vars] sections in server.toml act as defaults for every run. A run config TOML can override any of these. For [vars], Daytona labels, and checkpoint exclude globs, values are merged — the run config wins on key collisions. All other fields use “first non-empty wins” precedence.
[log] section
Configure the default log level without environment variables. Precedence: FABRO_LOG env var > --debug flag > [log] level > "info".
| Key | Description | Default |
|---|---|---|
level | Log level: error, warn, info, debug, trace | "info" |
[git.author] section
Customize the git author identity used for checkpoint commits. When not set, defaults to fabro / fabro@local.
| Key | Description | Default |
|---|---|---|
name | Git author name | "fabro" |
email | Git author email | "fabro@local" |
[git.author] in cli.toml to override the server default.
[git.webhooks] section
Enable automatic GitHub webhook delivery via Tailscale funnel. When configured, fabro serve binds a local HTTP listener, exposes it through tailscale funnel, and updates the GitHub App’s webhook URL on startup. Incoming webhooks are verified with HMAC-SHA256.
| Key | Description | Values |
|---|---|---|
strategy | Webhook delivery method | "tailscale_funnel" |
[git] section with app_id and client_id) and the GITHUB_APP_WEBHOOK_SECRET environment variable.
[checkpoint] section
Configure checkpoint behavior for all runs.
| Key | Description |
|---|---|
exclude_globs | Glob patterns for files to exclude from checkpoint commits (e.g. ["**/node_modules/**"]) |
server.toml and run configs are merged (union, deduplicated). See Run Configuration — Checkpoint for per-run configuration.
Environment variables
Fabro reads environment variables from a.env file in the working directory (if present) and from the shell environment. Provider API keys are required for the models you want to use; everything else is optional.
LLM provider keys
| Variable | Provider |
|---|---|
ANTHROPIC_API_KEY | Anthropic (Claude) |
OPENAI_API_KEY | OpenAI (GPT) |
GEMINI_API_KEY or GOOGLE_API_KEY | Google (Gemini) |
KIMI_API_KEY | Kimi |
ZAI_API_KEY | Zai (GLM) |
MINIMAX_API_KEY | Minimax |
INCEPTION_API_KEY | Inception (Mercury) |
Sandbox and tools
| Variable | Description |
|---|---|
DAYTONA_API_KEY | Daytona cloud sandbox API key |
BRAVE_SEARCH_API_KEY | Brave Search API key (for the web_search tool) |
Server authentication
| Variable | Description |
|---|---|
FABRO_JWT_PRIVATE_KEY | Ed25519 private key (base64-encoded PEM) for JWT signing |
FABRO_JWT_PUBLIC_KEY | Ed25519 public key (base64-encoded PEM) for JWT verification |
SESSION_SECRET | Session encryption secret (64-character hex string) |
GitHub App (optional)
| Variable | Description |
|---|---|
GITHUB_APP_CLIENT_SECRET | GitHub App client secret |
GITHUB_APP_WEBHOOK_SECRET | GitHub App webhook secret |
GITHUB_APP_PRIVATE_KEY | GitHub App private key (base64-encoded) |
Slack integration (optional)
| Variable | Description |
|---|---|
FABRO_SLACK_APP_TOKEN | Slack App-level token |
FABRO_SLACK_BOT_TOKEN | Slack Bot token |
Logging
| Variable | Default | Description |
|---|---|---|
FABRO_LOG | info | Log level: error, warn, info, debug |