reference
fleet.yaml
The declarative source of truth for your agents. dclaw up reads this file and reconciles. Validated on load — the daemon refuses to start with an invalid fleet.
Default location: ~/.config/dclaw/fleet.yaml (XDG-aware).
Example
# fleet.yaml — declarative agent fleet
version: 1
defaults:
image: dclaw-agent:v0.1
model: anthropic/claude-3-5-sonnet
max_cost_usd: 10
agents:
- name: code-reviewer
workspace: ~/repos/main-app
model: anthropic/claude-3-5-sonnet
channels: [slack:#code-reviews]
max_cost_usd: 25
- name: oncall-triage
workspace: ~/dclaw/oncall
model: openai/gpt-4o
channels: [discord:#alerts, slack:#ops]
network_allowlist:
- api.pagerduty.com
- api.linear.app
- name: scratch
workspace: ~/dclaw/scratch
# inherits image, model, max_cost from defaults
yaml Top-level keys
version
Schema version. Currently 1. Required.
defaults
Inherited by every agent unless overridden. Optional.
agents
List of agent specs. At least one required.
Agent spec
name
Unique identifier. [a-z0-9-]+, max 32 chars. Required.
image
OCI image. Defaults to dclaw-agent:v0.1.
workspace
Host path. Validated against denylist + symlink-resolved. Required.
workspace_trust
Bool. Bypass denylist. Logged. Default false.
model
Provider/model string. Routed via pi-mono. anthropic/* · openai/* · google/* · openrouter/*.
channels
List of channel:target. e.g. slack:#ops, discord:#alerts. Plugin must be installed.
network_allowlist
FQDNs the agent can reach. Empty = LLM provider only. CIDRs not yet supported.
max_cost_usd
Hard spend cap. Daemon enforces; container is killed when hit.
env
Map of name → value. Passed at container start. Never written to disk.
Validation is strict
Unknown keys are an error, not a warning. This is intentional — silently ignoring typos is how you end up with a workspace pointing somewhere you didn't expect.
Reconciliation
When you run dclaw up:
- Missing agents (in fleet, not running) → created.
- Drifted agents (running, but spec changed) → recreated. Workspace preserved.
- Matching agents (running, spec matches) → left alone.
- Orphaned agents (running, not in fleet) → flagged in dclaw status but not removed. Use dclaw agent destroy explicitly.