Install
openclaw skills install swarm-layerOpenClaw Swarm Layer: spec-driven workflow orchestration with ACP-first execution, supervised autopilot control plane, manual fallback, persistent sessions, review gates, automatic retry, parallel dispatch, reject-retry workflows, ACP concurrency protection, harness patterns, cross-session continuity, and operator reporting. Covers setup, operation, diagnosis, and reporting.
openclaw skills install swarm-layerTurn workflow specifications into executable task graphs. Dispatch tasks through manual fallback or ACP automation. Supervise execution through an optional autopilot control plane. Track execution via persistent sessions with reuse and thread binding. Gate completion with review approval. Auto-retry on failure. Generate reports to local disk and Obsidian.
Current release baseline: openclaw-swarm-layer@0.5.3, validated on OpenClaw 2026.5.3-1 with startup tool contracts, plugin doctor checks, and runtime health smoke.
--parallel N and --all-ready batch dispatch with concurrency-aware slot managementstatus/start/pause/resume/stop/tick flows with lease-backed decisions and degraded-mode holdsThree installation paths:
ClawHub (skill only):
openclaw skills install swarm-layer
ClawHub package (full plugin):
openclaw plugins install clawhub:openclaw-swarm-layer
npm (full plugin):
npm install openclaw-swarm-layer
openclaw plugins install -l node_modules/openclaw-swarm-layer
GitHub (source):
git clone https://github.com/xucheng/openclaw-swarm-layer.git
cd openclaw-swarm-layer && npm install && npm run build
openclaw plugins install -l /path/to/openclaw-swarm-layer
After install, verify: openclaw plugins info openclaw-swarm-layer should show Status: loaded.
# 1. Initialize
openclaw swarm init --project /tmp/my-project
# 2. Write a spec
cat > /tmp/my-project/SPEC.md << 'EOF'
# Feature Build
## Goals
- Implement and test the new feature
## Phases
### Implement
- Write the core logic
### Test
- Run unit tests
EOF
# 3. Plan
openclaw swarm plan --project /tmp/my-project --spec /tmp/my-project/SPEC.md
# → specId: feature-build, taskCount: 2
# 4. Execute first task
openclaw swarm run --project /tmp/my-project --runner acp
# → action: dispatched, runId: implement-task-1-run-...
# 5. Poll until complete
openclaw swarm session status --project /tmp/my-project --run <runId>
# → status: completed
# 6. Approve
openclaw swarm review --project /tmp/my-project --task <taskId> --approve
# → status: done
# 7. Execute next task, repeat steps 4-6
# 8. View report
openclaw swarm report --project /tmp/my-project
Determine which module to use based on what the user needs:
| User Intent | Module | Key Commands |
|---|---|---|
| Install, configure, initialize | Setup | plugins install, doctor, init |
| Plan, execute, review, session ops | Operate | plan, run, review, session * |
| Supervised automation control | Operate | autopilot status/start/pause/resume/stop/tick |
| Something broken, stuck, or failing | Diagnose | doctor, session status/cancel/cleanup |
| Check progress, read reports | Report | status, report, session list/inspect |
When unsure, start with openclaw swarm status --project . to assess the situation.
First-time install, ACP configuration, project initialization, or config troubleshooting.
node --version # >= 22
openclaw --version # >= 2026.3.22
The 0.5.3 release was smoke-tested on OpenClaw 2026.5.3-1.
openclaw plugins install clawhub:openclaw-swarm-layer # Published package
openclaw plugins install -l /path/to/openclaw-swarm-layer
openclaw plugins info openclaw-swarm-layer # Should show Status: loaded
{
"plugins": { "entries": { "openclaw-swarm-layer": { "config": {
"defaultRunner": "auto",
"acp": {
"enabled": true,
"defaultAgentId": "codex",
"allowedAgents": ["codex"],
"defaultMode": "run"
}
}}}}
}
openclaw swarm doctor --json
# severity should be "healthy" or "warning", not "blocked"
openclaw swarm init --project .
{
"obsidianRoot": "/path/to/vault/reports",
"journal": {
"enableRunLog": true,
"enableReviewLog": true,
"enableSpecArchive": true,
"enableCompletionSummary": true
}
}
openclaw plugins info openclaw-swarm-layeropenclaw swarm doctor --json, confirm public ACP export readiness and runner resolutionbridge.acpFallbackEnabled after confirming ACP public path is readyPlan and execute workflows, manage sessions, complete review cycles.
Write Spec → Plan → Status → Run → Poll Session → Review → Repeat
# My Workflow
## Goals
- What to achieve
## Phases
### Phase 1
- Task A
- Task B
openclaw swarm plan --project . --spec SPEC.md # Import and generate tasks
openclaw swarm status --project . # See what's ready
openclaw swarm run --project . --dry-run # Preview
openclaw swarm run --project . --runner acp # Execute (acp/manual)
openclaw swarm run --project . --parallel 3 # Dispatch up to 3 ready tasks
openclaw swarm run --project . --all-ready # Fill all available concurrency slots
openclaw swarm session status --project . --run <id> # Poll until complete
openclaw swarm review --project . --task <id> --approve
openclaw swarm review --project . --task <id> --reject --retry-now # Reject and force retry
openclaw swarm autopilot status --project . # Health + last decision
openclaw swarm autopilot start --project . # Start supervised loop
openclaw swarm autopilot pause --project . --reason "operator review"
openclaw swarm autopilot resume --project .
openclaw swarm autopilot tick --project . --dry-run # Inspect next actions without mutating state
openclaw swarm autopilot stop --project . --mode graceful
Use autopilot when you want the workflow to keep progressing under policy control instead of manually calling run, session status, and recovery commands one by one.
| Runner | Use When |
|---|---|
manual | Safe explicit fallback when ACP automation is unavailable or not desired |
acp | Default-capable automation path through the public ACP control-plane |
session list --project . # List all
session inspect --project . --session <id> # Details
session follow-up --project . --session <id> --task <desc> # Inject task
session steer --project . --session <id> --message <text> # Redirect
session cancel --project . --run <id> # Abort
session cleanup --project . --stale-minutes 60 # Clean orphans
| Policy | Behavior |
|---|---|
none | New session each run (default) |
create_persistent | Creates reusable persistent session |
reuse_if_available | Reuse idle persistent session if match found |
require_existing | Fail if no matching session exists |
Enable advanced harness features for long-running agent orchestration:
{
"enforceTaskImmutability": true,
"bootstrap": { "enabled": true },
"evaluator": { "enabled": true, "autoInjectAfter": ["coding"] }
}
Sprint Contracts — Add Acceptance Criteria to your spec. plan auto-generates a SprintContract with verifiable criteria attached to coding tasks.
Evaluator Injection — When evaluator.enabled, each coding task gets an auto-injected -eval task that validates the contract. Dependency chains adjust automatically:
coding-task → coding-task-eval → next-task
Quality Rubrics — Replace binary approve/reject with 4-dimension weighted scoring:
Cross-Session Progress — progress.json auto-updated after each run and review. Bootstrap sequence loads progress on startup: verify env → load progress → select task → verify baseline.
Task Immutability — When enforceTaskImmutability is enabled, agents cannot mutate task definitions (title, deps, runner, etc.). Only status, review.status, and contract.criteria[].passes are mutable.
Session Budget — Set runner.budget.maxDurationSeconds and runner.budget.maxRetries per task. Exceeded budgets annotate [BUDGET EXCEEDED] on run records.
Assumption Tracking — WorkflowState.assumptions tracks model capability, environment, tooling, and workflow structure assumptions with validation lifecycle.
| User Says | Do This |
|---|---|
| "start a new workflow" | Help write spec → plan → status |
| "run the next task" | status → dry-run → run |
| "what's happening?" | status → session status for running tasks |
| "approve everything" | List review queue → approve each |
| "enable harness mode" | Add evaluator + immutability + bootstrap config |
| "something is stuck" | → Diagnose module |
Tasks stuck, ACP readiness failures, sessions not updating, dead letters, orphans.
1. openclaw swarm doctor --json → Check ACP readiness and bridge-exit health
2. openclaw swarm status --project . → Find abnormal tasks/sessions
3. Investigate specific issue (see below)
| Severity | Meaning | Action |
|---|---|---|
healthy | All good | None |
warning | Works but risky | Address warnings when convenient |
blocked | Cannot execute | Follow remediation immediately |
Legacy bridge compatibility warning:
doctor --json → check warnings / remediationbridge.acpFallbackEnabled, or clean up old versionAllow/openclawRoot metadataStuck running task:
swarm session status --project . --run <runId> # Check if session died
swarm session cancel --project . --run <runId> # Force cancel if hung
Dead letter task (retries exhausted):
swarm status → find dead_letter tasksreadyOrphaned sessions (stale active):
swarm session cleanup --project . --stale-minutes 60
Version drift (after OpenClaw upgrade):
swarm doctor --json
# Remove stale bridge metadata if present → rerun doctor → verify runner resolution
Check progress, generate reports, understand session inventory.
openclaw swarm status --project . # Structured summary
openclaw swarm report --project . # Full Markdown report
| Section | Content |
|---|---|
| Attention | Items needing action: review / blocked / running / dead_letter |
| Tasks | All tasks with current status |
| Review Queue | Tasks awaiting approve/reject |
| Highlights | Notable terminal events (completed/failed/cancelled) |
| Recommended Actions | What to do next |
| Recent Runs | Last 5 runs |
| Sessions | Last 5 sessions with state |
| Session Reuse Candidates | Which tasks can reuse which sessions |
| File | Trigger | Mode |
|---|---|---|
swarm-report.md | Every operation | Overwrite |
run-log.md | swarm run | Append |
review-log.md | swarm review | Append |
specs/<specId>.md | swarm plan | Create once |
completion-summary.md | All tasks done | Overwrite |
Local: <project>/.openclaw/swarm/reports/ (always)
Obsidian: <obsidianRoot>/<project>/ (optional async mirror)
| User Says | Do This |
|---|---|
| "what's the status?" | status → summarize counts + attention |
| "show me the report" | report → read and present key sections |
| "what needs attention?" | status → focus on attention array |
| "how are sessions?" | status → show session counts + recent |
For AI tool calling. All tools accept --json for structured output.
| Tool | Parameters | Purpose |
|---|---|---|
swarm_status | project | Workflow status with attention items |
swarm_task_plan | project, spec | Import spec, generate task graph |
swarm_run | project, task?, dryRun?, parallel?, allReady? | Dispatch runnable tasks (single or batch) |
swarm_review_gate | project, task, approve?, reject?, note? | Approve/reject review (reject returns to ready by default) |
swarm_session_status | project, run | Poll session status |
swarm_session_cancel | project, run, reason? | Cancel session |
swarm_session_close | project, run, reason? | Close session |