All articles
Product

Fleet: run fifty agents like you run one

Batch spin-up from one command, a live fleet console, and one-file propagation to every agent. Running many agents is now a first-class workflow.

Maritime Team·July 3, 20265 min read

One agent is a demo. The interesting deployments are fleets: an agent per customer, per repo, per region, per experiment. Maritime now treats that as the primary workflow instead of a loop you write yourself.

Spin up N agents in one call

maritime create takes --count:

maritime create swarm --template openclaw --count 5 --idle 3600 --json

That provisions swarm-1 through swarm-5, each a fully isolated agent with its own container or microVM, its own volume, its own network, and its own credentials. Names continue past what already exists, so running it again gets you swarm-6 onward instead of a conflict. The call is wallet-gated up front (you cannot spin up agents the balance cannot cover) and capped at 50 per call.

The important part is what batch creation does not share. Five agents from one command have exactly the same blast-radius isolation as five agents created by hand. Fleet is a provisioning convenience, not a shared runtime.

One command becomes a fleet, then a fan-out chat across it

A console built for many

The Agents console in the dashboard is the fleet view: every agent live, with search, sort, status, and inline lifecycle controls (start, sleep, stop, restart) without leaving the list. Agents created from the CLI appear as they deploy.

The fleet view: every agent, its status, and its controls in one place
The fleet view: every agent, its status, and its controls in one place

Sleeping members of a fleet cost approximately nothing in CPU and RAM; they are snapshots on disk. Which is why a 50-agent fleet on the Smart tier is $50 a month, not a Kubernetes cluster and a platform team.

Change all of them at once

Fleets drift. The fix for drift is propagation: push one file (a prompt, a config, a skill definition) to every agent in the fleet in one operation, with restarts handled in the background. One source of truth, distributed to N isolated copies.

We deliberately chose file propagation over a shared mounted volume. Sharing a volume across agents would couple their failure domains and break the one-agent-one-boundary security model. Copies are cheap. Coupling is not.

Scripting the fleet

Everything composes through the JSON contract, so fleet operations are shell one-liners:

# Fan a prompt across the fleet:
maritime create swarm --template openclaw --count 5 --json \
  | jq -r '.created[].name' \

# Tail one member: maritime logs swarm-3 -f

# Tear it all down: for i in $(seq 1 5); do maritime delete swarm-$i -y --json; done ```

An agent per customer used to be an architecture decision. Now it is a flag.