Skip to main content

System requirements

Python

Python 3.11 or higher is required. Check your version:

Docker

Docker Desktop (macOS/Windows) or Docker Engine (Linux) must be installed and running.Verify:

rsync (Linux only)

On Linux, rsync is used for snapshots:

API keys

At minimum, you need an Anthropic API key from console.anthropic.com.Additional keys depend on your agent choice.

Installation methods

One-time setup

After installation, run the setup wizard to configure your agent, tester model, and credentials:

Agent selection

The wizard prompts you to choose an AI coding agent:
Recommended. Uses Anthropic’s Claude models with a Code-optimized interface.
  • Requires: ANTHROPIC_API_KEY
  • Docker image: vvenne/ftl:latest
  • Best for: Most users — high-quality code generation with streaming output
Your choice is saved to ~/.ftl/config.json and used as the default for all new projects.

Tester model selection

FTL generates adversarial tests in parallel while the agent codes. Choose your test generation model:
Uses claude-haiku-4-5-20251001 via Anthropic’s API.
  • Requires: ANTHROPIC_API_KEY
  • Latency: ~1-3 seconds per test generation
  • Cost: Lowest-cost Anthropic model
Any LiteLLM-supported model works. Edit .ftlconfig to use custom models:

API key configuration

The wizard prompts for your Anthropic API key if not already set:
Your key is saved to ~/.ftl/credentials (file mode 600) and loaded automatically on every FTL invocation.

Adding more credentials

For agents requiring additional keys, use ftl auth:
All credentials are stored in ~/.ftl/credentials and available to FTL (not directly to the agent — see Shadow credentials).

Docker image verification

After ftl setup, verify the image was pulled or built:
You should see:
FTL automatically falls back to building the image locally from your cloned Dockerfile.Requirements for local build:
  1. You must have cloned the full FTL repository (not just pip installed)
  2. Docker BuildKit must be available
To manually rebuild:

Optional features

AWS integration

Enables S3 snapshots, CloudWatch tracing, Secrets Manager, and Bedrock Guardrails:
After installation, configure AWS resources:
This provisions:
  • S3 bucket ftl-<account>-<region>
  • CloudWatch log group /ftl/<project-name>
  • Bedrock Guardrail ftl-<project-name>
  • Optional Secrets Manager prefix
See AWS setup guide for details.

Credential-swap proxy

Enables live API calls with real credentials while the agent only sees shadow values:
How it works:
  1. FTL starts an HTTP/HTTPS intercepting proxy on the host
  2. Container routes all outbound traffic through the proxy
  3. Proxy replaces shadow values with real credentials before upstream requests
  4. HTTPS traffic handled via MITM with ephemeral CA
The agent never learns your real key, but API calls succeed.

Langfuse tracing

Enables LLM observability for all tester and diff-review LLM calls:
Configure credentials:
Every litellm.completion() call is traced automatically via LiteLLM’s Langfuse integration.

Project initialization

After one-time machine setup, initialize FTL in each project:
This creates .ftlconfig with defaults from ~/.ftl/config.json:
.ftlconfig
Edit .ftlconfig to override settings per-project. See Configuration reference for all available fields.

Verify installation

1

Check FTL version

2

Verify Docker access

3

Check global config

Should show:
4

Run a test task

If the test task completes and shows you a diff, your installation is working correctly.

Upgrading FTL

If you installed with pip install -e ., pull the latest code:
No reinstallation needed — editable mode automatically uses the updated code.
To update the Docker image:

Troubleshooting

FTL requires Python 3.11 or higher. Check your version:
If you have multiple Python versions installed, use:
Apple Silicon Macs may need platform specification:
Or use Rosetta 2 mode in Docker Desktop settings.
Ensure the pip install directory is in your PATH:
If missing, add to ~/.bashrc or ~/.zshrc:
Install rsync for your distribution:
The cryptography package requires system dependencies:

Next steps

Run your first task

Follow the 5-minute quickstart guide

CLI reference

Complete command-line documentation

Configuration

All .ftlconfig fields and options

AWS setup

Configure production AWS integration