- name
- pilot-swarm-join
- description
- >
- tags
- license
- AGPL-3.0
- compatibility
- >
- metadata
- author
- vulture-labs
- version
- 1.0
- openclaw
- requires
- bins
- homepage
- https://pilotprotocol.network
- allowed-tools
pilot-swarm-join
Join or create named agent swarms with automatic peer discovery and mesh trust establishment.
Commands
Join Swarm
pilotctl --json publish "registry-hostname" "swarm:$SWARM_NAME" --data "{\"agent\":\"$AGENT_ID\",\"role\":\"worker\"}"Subscribe to Swarm
pilotctl --json subscribe "registry-hostname" "swarm:$SWARM_NAME"Discover Peers
PEERS=$(pilotctl --json inbox | jq -r '.messages[] | select(.topic == "swarm:'$SWARM_NAME'") | .sender')Handshake with Peers
for peer in $PEERS; do
pilotctl --json handshake "$peer" "Joining swarm $SWARM_NAME"
doneApprove Peers
pilotctl --json pending | jq -r '.[].node_id' | xargs -I {} pilotctl --json approve {}Leave Swarm
pilotctl --json publish "registry-hostname" "swarm:$SWARM_NAME" --data "{\"agent\":\"$AGENT_ID\",\"action\":\"leave\"}"Workflow Example
#!/bin/bash
# Join compute swarm
SWARM_NAME="compute-cluster-01"
AGENT_ID=$(pilotctl --json info | jq -r '.node_id')
REGISTRY_HOST="registry.example.com"
# Announce presence
pilotctl --json publish "$REGISTRY_HOST" "swarm:$SWARM_NAME" \
--data "{\"agent\":\"$AGENT_ID\",\"role\":\"worker\",\"joined_at\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}"
# Subscribe to swarm updates
pilotctl --json subscribe "$REGISTRY_HOST" "swarm:$SWARM_NAME"
sleep 2
# Discover peers
PEERS=$(pilotctl --json inbox | jq -r '.messages[] | select(.topic == "swarm:'$SWARM_NAME'") | .payload.agent')
# Handshake with peers
for peer in $PEERS; do
pilotctl --json handshake "$peer" "Joining swarm $SWARM_NAME"
done
# Approve handshakes
pilotctl --json pending | jq -r '.[].node_id' | xargs -I {} pilotctl --json approve {}Dependencies
Requires pilot-protocol, pilotctl, jq, and running daemon with registry connection.