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:agent field in .ftlconfig:
.ftlconfig
Agent Requirements
Agent-Specific Setup
- Claude Code
- Codex
- Aider
- Kiro
Claude Code is the recommended agent with full stream-JSON output support.Docker Image:
1
Get API Key
Obtain your Anthropic API key from console.anthropic.com
2
Save Credentials
3
Configure Project
.ftlconfig
vvenne/ftl:latestDocker 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:Codex Build Snippet
Codex Build Snippet
Aider Build Snippet
Aider Build Snippet
Kiro Build Snippet (Architecture-Aware)
Kiro Build Snippet (Architecture-Aware)
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
- TypeScript, ts-node, Jest
- Claude Code runtime (for all agents)
Warm Start Optimization
FTL runsclaude --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.