Skip to main content
FTL supports four coding agents, each running inside an isolated Docker sandbox with shadow credentials and zero-trust controls.

Available Agents

Claude Code

Anthropic’s recommended agent with stream-JSON output

Codex

OpenAI’s coding agent

Aider

Open-source AI pair programming tool

Kiro

AWS-powered coding agent with browser-based login

Agent Configuration

Selecting an Agent

Choose your agent during initial setup:
Or set the agent field in .ftlconfig:
.ftlconfig

Agent Requirements

Agent-Specific Setup

Claude Code is the recommended agent with full stream-JSON output support.
1

Get API Key

Obtain your Anthropic API key from console.anthropic.com
2

Save Credentials

3

Configure Project

.ftlconfig
Docker Image: vvenne/ftl:latest

Docker Images

FTL pulls the appropriate Docker image automatically based on your agent selection:

Local Fallback Builds

If Docker Hub is unavailable, FTL builds the image locally using the base Dockerfile plus agent-specific layers:

Switching Agents

To switch agents on an existing project:
1

Update Configuration

Edit .ftlconfig to change the agent:
.ftlconfig
2

Pull New Image

Run setup to pull the new agent’s Docker image:
Select the new agent when prompted.
3

Configure Credentials

Ensure the required API keys for the new agent are configured:
Persistent containers are keyed by project path, so switching agents will create a new container with the appropriate image.

Agent Behavior

Conversation History

Agent conversation history persists across tasks in /home/ftl/.claude/ inside the container. Follow-up instructions in the interactive shell continue the same conversation.

Pre-installed Dependencies

All agents have access to common Python and Node.js packages: Python:
  • stripe, requests, httpx, boto3
  • openai, anthropic, pydantic
  • python-dotenv, pytest
Node.js:
  • TypeScript, ts-node, Jest
  • Claude Code runtime (for all agents)

Warm Start Optimization

FTL runs claude --version in the background during boot to load Node.js modules into the Linux page cache, eliminating the 5-8s cold-start penalty on first task.