Use the Monitor tool to stream swarm events in real time instead of polling:
Run via Monitor: npx @claude-flow/cli@latest swarm watch --stream
This streams NDJSON events for agent spawns, task completions, memory writes, and health checks. Each stdout line triggers a notification.
For one-shot status, use MCP: mcp__claude-flow__swarm_status or mcp__claude-flow__swarm_health.
Prefer Monitor over polling swarm status in a loop. See ADR-091 for rationale.