Swarm setup¶
1. Create the swarm¶
On the coordinator, use the hostname or IP workers will reach:
--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¶
| 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¶
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¶
Continue with Running work.