>- own git worktree, working a markdown plan and merging back deterministically. Use when the user wants several agents on one codebase at once, says "swarm this", or asks about a running swarm, worktrees, or merge status.
npx skills add https://github.com/guaardvark/guaardvark --skill swarm
Read setup first; needs the swarm plugin (POST /api/plugins/swarm/start).
B=${GUAARDVARK_URL:-http://localhost:5000}. Status is also the MCP tool swarm_status.
A markdown file in the target repo. Each ## heading is one task. Structured fields are optional;
the parser infers file scope from paths in the prose when they are absent:
# Plan: split the settings page
## Extract the GPU panel
- files: frontend/src/pages/SettingsPage.jsx, frontend/src/components/settings/GpuPanel.jsx
- backend: claude
Move the GPU section into its own component with the same props.
## Add a test for the panel
- files: frontend/src/__tests__/GpuPanel.test.jsx
- depends_on: Extract the GPU panel
backend / assign to picks the agent backend (Claude Code, or a local Cline/OpenClaw agent on
Ollama in Flight Mode). Tasks that touch the same files should depend on each other; the parser
warns about conflicts.
curl -s -X POST $B/api/swarm/launch -H 'Content-Type: application/json' -d '{
"plan_path": "/abs/path/repo/docs/plan.md", "repo_path": "/abs/path/repo",
"max_agents": 4, "auto_merge": false, "flight_mode": false, "dry_run": false,
"acknowledge_dirty_tree": false
}'
acknowledge_dirty_tree: true; tell the user what isuncommitted first.
self_code: true targets Guaardvark's own checkout and is only allowed on the configured root.dry_run: true parses the plan and reports tasks and conflicts without starting agents.| call | |
|---|---|
| GET $B/api/swarm/status and GET $B/api/swarm/status/<swarm_id> | tasks, states, worktrees |
| GET $B/api/swarm/<swarm_id>/logs/<task_id>?lines=100 | one agent's log |
| GET $B/api/swarm/<swarm_id>/diff/<task_id> | its diff before merge |
| POST $B/api/swarm/<swarm_id>/bus/broadcast | message every agent |
| POST $B/api/swarm/merge {"swarm_id": "...", "repo_path": "..."} | merge finished branches in dependency order |
| POST $B/api/swarm/cancel | stop |
| POST $B/api/swarm/cleanup {"swarm_id": "...", "delete_branches": false} | remove worktrees |
| GET $B/api/swarm/templates | saved plan templates |
merge unless the user asked for auto_merge.max_agents at or below the machine's capacity; each Claude agent is a separate session andeach local agent competes for the GPU with generation jobs.
has running or failed tasks.
Take guaardvark/swarm from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.