Skip to content

Quick Start: Incubator

Terminal window
npm install -g @honeybee-ai/waggle-cli
Terminal window
wgl serve --port=8080

The server starts on http://localhost:8080 with:

  • REST API at /api/*
  • WebSocket at /ws
  • MCP endpoint at /mcp
  • Dashboard at /dashboard
Terminal window
wgl protocol load my-spec.acp.yaml

Agents connect via WebSocket and receive push events:

const ws = new WebSocket('ws://localhost:8080/ws');
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log('Event:', msg.type, msg);
};
// Publish an event
ws.send(JSON.stringify({
type: 'publish',
event: 'task.started',
data: { task: 'auth-module' },
}));

Or use the REST API:

Terminal window
# Get state
curl http://localhost:8080/api/default/state
# Set state
curl -X POST http://localhost:8080/api/default/state \
-H 'Content-Type: application/json' \
-d '{"key": "status", "value": "running"}'
# Publish event
curl -X POST http://localhost:8080/api/default/events \
-H 'Content-Type: application/json' \
-d '{"type": "task.complete", "data": {"task": "auth"}}'
Terminal window
# Create a brood.yaml
cat > brood.yaml << 'EOF'
name: my-project
provider: cerebras/llama-3.3-70b
hives:
main:
acp: spec.acp.yaml
agents:
- role: worker
type: drone
EOF
# Start the brood
wgl up

The orchestrator reads the brood config, loads the protocol, and spawns agents when it receives a start event.

Navigate to http://localhost:8080/dashboard to see:

  • State tab: Live key-value state
  • Events tab: Event stream
  • Agents tab: Connected agents and roles
  • Claims tab: Active resource locks
  • Control tab: Halt/pause/resume
  • Config tab: Protocol and settings
  • Metrics tab: Telemetry stats