Fleet is configured through .fleet/config.yml in your repository root. Created by fleet init.
model : claude-opus-4-5 # LLM for commander planning (BYOK)
poll_interval_minutes : 5 # How often commander checks ship progress
max_concurrent_ships : 8 # Maximum number of active ships
strategy : mapreduce # sequential | mapreduce
stall_threshold_min : 30 # Mark ship dead after this many minutes
unresponsive_threshold_min : 10 # Mark ship stale after this many minutes
shadow_dispatch : false # Mark stale missions for shadow dispatch
shadow_delay_min : 15 # Minutes before shadow dispatch triggers
interval_seconds : 60 # Ship heartbeat push interval
squash_on_complete : true # Squash heartbeat commits on mission completion
ci_required : true # Require CI pass before auto-merge
auto_rebase : true # Reserved for rebase-capable merge flows
target_branch : main # Branch to target for PRs and conflict detection
mode : static # static | llm — FLEET_CONTEXT.md generation mode
max_missions_per_ship : 1 # Max concurrent missions per ship
mission_timeout_min : 120 # Mission timeout in minutes
- url : https://hooks.slack.com/services/xxx
format : slack # json | slack
events : # Optional filter (all events if omitted)
adapter : claude-code # claude-code | codex | aider | opencode | gemini | cursor | amp | a2a
Key Type Default Description modelstring claude-opus-4-5LLM model for planning and coordination poll_interval_minutesnumber 5How often the commander checks for updates max_concurrent_shipsnumber 8Maximum number of active ships
Key Type Default Description strategystring mapreducesequential or mapreducestall_threshold_minnumber 30Minutes before a ship is marked dead unresponsive_threshold_minnumber 10Minutes before a ship is marked stale shadow_dispatchboolean falseMark stale missions for shadow dispatch; full spare-ship duplicate execution is roadmap work shadow_delay_minnumber 15Minutes before shadow dispatch activates
Key Type Default Description interval_secondsnumber 60Heartbeat push interval in seconds squash_on_completeboolean trueSquash heartbeat commits when mission completes
Key Type Default Description ci_requiredboolean trueRequire CI pass before auto-merge auto_rebaseboolean trueReserved for rebase-capable merge flows; current merge commander flags conflicts for review target_branchstring mainBranch to target for PR creation and conflict-detection diff base. Set to your integration branch (e.g. develop, release/next, or a long-lived feature branch) when your repo does not merge directly to main.
Key Type Default Description modestring staticstatic (file analysis) or llm (AI-powered summary)
Key Type Default Description max_missions_per_shipnumber 1Maximum concurrent missions per ship mission_timeout_minnumber 120Mission timeout in minutes
Key Type Description urlstring Webhook endpoint URL formatstring json (raw event) or slack (Slack message format)eventsstring[] Optional filter — only send these event types
Event Description mission-completedA ship finished its mission pr-createdCommander created a PR for a completed mission pr-mergedPR was merged into main ci-failedCI checks failed on a mission branch ship-stalledA ship stopped sending heartbeats shadow-dispatchedCommander marked a stalled mission for duplicate execution conflict-detectedFile conflicts detected between branches all-missions-completeAll missions in the fleet are done
Each entry in ships defines a machine in the fleet.
Key Type Description idstring Unique identifier for this ship adapterstring Coding agent adapter: claude-code, codex, aider, opencode, gemini, cursor, amp, or a2a