Skip to content

Swarm setup

1. Create the swarm

On the coordinator, use the hostname or IP workers will reach:

gdc swarm init --swarm-id team --bind coordinator.example.com:7777

--bind records the advertised endpoint; it does not start a listener. A wildcard such as 0.0.0.0 is a listener address, not a worker destination. State defaults to ~/.gdc/swarms/<id>/.

2. Start the coordinator

gdc serve --swarm-id team --role orchestrator --bind 0.0.0.0:7777 \
  --self-signed-tls --self-signed-san coordinator.example.com

Configure the coordinator's provider for goal planning. Distribute ~/.gdc/swarms/team/tls/cert.pem to workers through a trusted channel. Use an explicit certificate/key pair or ACME instead when appropriate. See TLS.

3. Invite a machine

gdc swarm invite --swarm-id team --expires 24h --max-uses 1 --role worker
Flag Default Effect
--expires 24h Invite lifetime
--max-uses 1 Authorized joins
--role worker Repeatable allowed role

Transfer the printed invite URL privately. It authorizes joining until its expiry or use limit.

4. Join each worker

gdc swarm join "swarm://..." --role worker --tls-ca /path/to/cert.pem

Use the URL emitted by invite. Joining creates and persists the worker identity and membership. Publicly trusted deployments can omit the pin.

5. Start workers

gdc serve --swarm-id team --role worker \
  --swarm-tls-ca /path/to/cert.pem \
  --base-url http://localhost:11434/v1 --model qwen3.5:latest \
  --worker-max-concurrent 4

Workers use the stored coordinator endpoint unless --orchestrator-endpoint wss://coordinator.example.com:7777/swarm/ws overrides it. --review-capable and repeatable --reviewer-skill advertise review capability.

Verify

gdc swarm status --swarm-id team
gdc swarm members --swarm-id team

Continue with Running work.