SwarmDo/swarmdo

swarmdo — self-contained AI agent orchestration for Claude Code (swarmdo.com)

2

stars

7,042

commits

TypeScript

primary language

Aug 24, 2026

updated

swarmdo.com

README

swarmdo

npm version (swarmdo) MIT License Website Star on GitHub Buy Me a Coffee

Based on the original, hugely popular ruflo — renamed, self-contained, and MIT-licensed. Full lineage in NOTICE.

Swarmdo

An agent meta-harness for Claude Code and Codex.

Agent = Model + Harness. The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work. Swarmdo is the harness — the execution layer around Claude Code and Codex that adds 100+ specialized agents, coordinated swarms, self-learning memory, federated comms across machines, and enterprise security guardrails. So agents don't just run, they collaborate.

One npx swarmdo init gives Claude Code a nervous system: agents self-organize into swarms, learn from every task, remember across sessions, and — with federation — securely talk to agents on other machines without leaking data. You keep writing code. Swarmdo handles the coordination.

Self-Learning / Self-Optimizing Agent Architecture

User --> Swarmdo (CLI/MCP) --> Router --> Swarm --> Agents --> Memory --> LLM Providers
                          ^                           |
                          +---- Learning Loop <-------+

New to Swarmdo? You don't need to learn 314 MCP tools or 26 CLI commands. After init, just use Claude Code normally — the hooks system automatically routes tasks, learns from successful patterns, and coordinates agents in the background.

📖 Background — where the name comes from

Swarmdo is now Swarmdo — named by the upstream author, who loves Rust, flow states, and building things that feel inevitable. The "Ru" is the the upstream author. The "flo" is working until 3am. Underneath, powered by Cognitum.One agentic architecture, running a supercharged Rust-based AI engine, embeddings, memory, and plugin system.


swarmdo in action — one prompt spawns a coordinated agent swarm

Quick Start

There are two different install paths with very different surface areas. Pick based on what you need (#1744):

Claude Code PluginCLI install (npx swarmdo init)
What it gives youSlash commands + skills + agent definitions per-plugin; swarmdo-core also registers the swarmdo MCP serverFull Swarmdo loop — 98 agents, 60+ commands, 30 skills, MCP server, hooks, daemon
Files in your workspaceZero.claude/, .swarmdo/, CLAUDE.md, helpers, settings
MCP server registeredYes with swarmdo-core (via the plugin's .mcp.json); other plugins are commands/skills onlyYes
Hooks installedNoYes
Best forTry Swarmdo without committing files to your workspaceProduction use — everything works as documented

Path A — Claude Code Plugins (zero files in your repo)

# Add the marketplace
/plugin marketplace add SwarmDo/swarmdo

# Install core + any plugins you need
/plugin install swarmdo-core@swarmdo
/plugin install swarmdo-swarm@swarmdo
/plugin install swarmdo-rag-memory@swarmdo
/plugin install swarmdo-neural-trader@swarmdo

swarmdo-core registers the swarmdo MCP server (300+ tools) plus base agents and setup skills; the other plugins add their slash commands and agent definitions. Hooks and the daemon still require Path B.

📦 swarmdo-core has been submitted to Anthropic's Claude Code plugin directory (community marketplace). Once approved it will also be installable via /plugin install swarmdo-core@claude-community — no marketplace-add needed.

🔌 All 35 plugins

Core & Orchestration

PluginWhat it does
swarmdo-coreFoundation — server, health checks, plugin discovery
swarmdo-swarmCoordinate multiple agents as a team
swarmdo-autopilotLet agents run autonomously in a loop
swarmdo-loop-workersSchedule background tasks on a timer
swarmdo-workflowsReusable multi-step task templates
swarmdo-federationAgents on different machines collaborate securely

Memory & Knowledge

PluginWhat it does
swarmdo-agentdbFast vector database for agent memory
swarmdo-rag-memorySmart retrieval — hybrid search, graph hops, diversity ranking
swarmdo-rvfSave and restore agent memory across sessions
swarmdo-swarmvectorswarmvector (vendored in-repo at v3/vendor/swarmvector) — GPU-accelerated search, Graph RAG, 103 tools
swarmdo-knowledge-graphBuild and traverse entity relationship maps

Intelligence & Learning

PluginWhat it does
swarmdo-intelligenceAgents learn from past successes and get smarter
swarmdo-graph-intelligenceSublinear graph reasoning — PageRank, delta updates, complexity-aware execution (ADR-123)
swarmdo-daaDynamic agent behavior and cognitive patterns
swarmdo-swarmllmRun local LLMs (Ollama, etc.) with smart routing
swarmdo-goalsBreak big goals into plans and track progress

Code Quality & Testing

PluginWhat it does
swarmdo-testgenFind missing tests and generate them automatically
swarmdo-browserAutomate browser testing with Playwright
swarmdo-jujutsuAnalyze git diffs, score risk, suggest reviewers
swarmdo-docsGenerate and maintain documentation automatically

Security & Compliance

PluginWhat it does
swarmdo-security-auditScan for vulnerabilities and CVEs
swarmdo-aidefenceBlock prompt injection, detect PII, safety scanning

Architecture & Methodology

PluginWhat it does
swarmdo-adrTrack architecture decisions with a living record
swarmdo-dddScaffold domain-driven design — contexts, aggregates, events
swarmdo-sparcGuided 5-phase development methodology with quality gates
swarmdo-metaharnessGrade your agent setup, scan tool configs for security risks, and track changes over time (guide)
swarmdo-arenaCompetitive ruliology — pit agent strategies against each other in tournaments, hill-climb and co-evolve the winners (ADR-147/148)

DevOps & Observability

PluginWhat it does
swarmdo-migrationsManage database schema changes safely
swarmdo-observabilityStructured logs, traces, and metrics in one place
swarmdo-cost-trackerTrack token usage, set budgets, get cost alerts

Extensibility

PluginWhat it does
swarmdo-agentRun agents — local WASM sandbox (rvagent) + Anthropic Claude Managed Agents (cloud)
swarmdo-plugin-creatorScaffold, validate, and publish your own plugins

Domain-Specific

PluginWhat it does
swarmdo-iot-cognitumIoT device management — trust scoring, anomaly detection, fleets
swarmdo-neural-traderneural-trader — AI trading with 4 agents, backtesting, 112+ tools
swarmdo-market-dataIngest market data, vectorize OHLCV, detect patterns

CLI Install

macOS / Linux / WSL / Git-Bash:

# One-line install (POSIX shells only — see Windows note below)
curl -fsSL https://cdn.jsdelivr.net/gh/SwarmDo/swarmdo@main/scripts/install.sh | bash

All platforms (including native Windows PowerShell / cmd):

# Interactive setup wizard — runs identically on every platform
npx swarmdo@latest init wizard

# Compress a memory file to save tokens (caveman mode — e2e-verified 33% smaller, backup kept)
npx swarmdo compress CLAUDE.md
npx swarmdo compress notes.md --check   # token-free: just report compressibility

# Quick non-interactive init
# npx swarmdo@latest init

# Or install globally
npm install -g swarmdo@latest

💡 Windows users: the curl ... | bash form needs a POSIX shell (Git-Bash, WSL, MSYS). The npx swarmdo@latest init wizard line works natively in PowerShell and cmd. If you hit an 'bash' is not recognized error, use the npx line instead — both end up running the same init flow.

MCP Server

# Add Swarmdo as an MCP server in Claude Code (canonical form, matches USERGUIDE.md)
claude mcp add swarmdo -- npx swarmdo@latest mcp start

One Namespace: /sDo

Since v1.4.0 every slash surface swarmdo installs is namespaced, so the whole toolkit groups together in Claude Code's / menu instead of scattering between built-ins — type /sDo and it all surfaces:

/sDo:swarmdo-help        /sDo:swarm:swarm-init     /sDo:sparc:architect
/sdo-caveman-compress    /sdo-ponytail             /sdo-agentdb-vector-search

Commands use the sDo: namespace (.claude/commands/sDo/…); skills use the sdo- prefix (skill names must be lowercase). Upgrades migrate automatically — swarmdo init and swarmdo efficiency on remove pre-1.4.0 unprefixed copies so no duplicate menu entries linger.


Efficiency: Caveman & Ponytail, Built In

Two of the most-loved Claude Code skills ship inside swarmdo as first-class features — vendored MIT forks with attribution in NOTICE, integrated across the CLI, the agents, and the init wizard.

🪨 Caveman compression

Memory files (CLAUDE.md, notes, todos) get re-read every session — and they're written for humans, not token budgets. Caveman rewrites them in few-token caveman-speak with substance, code, and URLs preserved and the original backed up. E2E-verified: 33% smaller with every technical fact intact.

# Inside Claude Code
/sdo-caveman-compress CLAUDE.md

# From any terminal — no Claude Code session needed
swarmdo compress CLAUDE.md
swarmdo compress notes.md --check     # token-free dry run: reports type + compressibility

💤 Ponytail mode

The laziest senior dev in the room, on demand: YAGNI, standard library before dependencies, one line before fifty, no speculative abstraction. Three intensities plus audit/review/debt lenses.

# Inside Claude Code
/sdo-ponytail            # lite | full | ultra

# For spawned agents — per call:
#   agent_run / agent_execute with ponytail: true
# or globally:
export SWARMDO_PONYTAIL=1            # explicit ponytail:false always wins

Toggling

Everything is opt-in and reversible — skills are user-invoked, so "on" means available, never automatic.

LayerToggle
This projectswarmdo efficiency on|off|status
At initwizard "Efficiency" skill group
Per agentponytail: true/false on the spawn call
GloballySWARMDO_PONYTAIL=1 env

Credits: caveman by Julius Brussee · ponytail by Dietrich Gebert (both MIT).

What You Get

CapabilityDescription
🤖 100+ AgentsSpecialized agents for coding, testing, security, docs, architecture
🧭 Coding-Agent HarnessExecuted agents ship with a built-in ground→verify-by-running→report-honestly discipline preamble (opt out: SWARMDO_HARNESS=0)
🗳️ OrchestrationDeterministic multi-agent verify + voteswarmdo orchestrate + MCP tools fan out parallel skeptics/attempts on cheap models with schema-validated output, optional memory grounding, and a SWARMDO_ULTRA default-thorough agent mode (guide)
📡 Comms LayerZero-trust federation — agents across machines/orgs discover, authenticate, and exchange work securely
🐝 Swarm CoordinationHierarchical, mesh, and adaptive topologies with consensus
🧠 Self-LearningSONA neural patterns, ReasoningBank, trajectory learning
💾 Vector MemoryHNSW-indexed AgentDB — measured ~1.9x faster at N=20k, ~3.2x–4.7x at N=5k vs brute force (recall@10 ~0.99); ANN wins above the crossover, ties/loses at small N. See audit + scripts/benchmark-intelligence.mjs
Background Workers12 auto-triggered workers (audit, optimize, testgaps, etc.)
🧩 Plugin Marketplace33 native Claude Code plugins + 21 npm plugins
🔌 Multi-ProviderClaude, GPT, Gemini, Cohere, Ollama with smart routing
🛡️ SecurityAIDefence, input validation, CVE remediation, path traversal prevention
🌐 Agent FederationCross-installation agent collaboration with zero-trust security
🔬 MetaHarnessAudit your AI agent setup before you ship. Grade readiness (1-100), scan tool configs for security issues, snapshot the whole project to catch regressions over time, and find templates that match your repo. swarmdo eject turns a swarmdo project into a standalone agent toolkit with its own name. Full guide.

🧰 The Operational Toolkit (v1.3 → v1.4)

swarmdo ships a full day-to-day operations layer around the swarm — spend, safety, releases, and memory portability:

CommandWhat it does
swarmdo usage (alias cost)Claude Code spend analytics from your local transcripts — daily, weekly, monthly (with a month-end spend projection), models, projects, sessions, live 5-hour blocks burn, errors (tool-failure analytics), friction (how often you interrupt Claude + which tool was running + dominant error categories), cache (prompt-cache efficiency + $ saved), diff (period-over-period comparison with per-model movers), reflect (a wrapped-style retrospective — busiest day, streak, top models/projects, peak hour, delegation ratio — with a shareable --html dashboard), and limits (an official-quota exhaustion forecaster over Claude Code's rate_limits); the standard views take --csv for spreadsheet export
swarmdo usage guardBudget policy — limits for the active 5h block / today / month via flags or SWARMDO_GUARD_* env → ok / warn / over; --strict exits 1, safe for CI gates and Stop hooks
swarmdo hudOne-screen ops HUD — 5h block burn, task readiness, daemon workers, memory snapshots (--watch, --json)
swarmdo repair (alias tdd-repair)Test-Driven Repair — a bounded, budget-capped headless claude loop that fixes source until a failing test passes; dry-run unless --confirm
swarmdo task … --dependenciesTask dependency DAGtask ready lists unblocked work, task graph renders the graph, the dispatcher gates on readiness; task parse-prd <spec.md> decomposes a PRD straight into the DAG; task doctor (alias health) separates a transient wait from a permanent stall — a task whose prerequisite failed/was cancelled/is missing will never run — and flags whole-graph deadlock, --ci so a dispatch loop can't spin forever (Airflow upstream_failed semantics)
swarmdo worktree (alias wt)Parallel-agent isolation on git worktrees — add / list / diff / merge / remove
swarmdo transcript (alias tx)Export any Claude Code session to clean markdown — system noise stripped, ready to share; transcript search <query> full-text-searches every session
swarmdo compactCompress noisy command output before it reaches an LLM — strip ANSI, collapse repeats, fold node_modules stack frames, window long logs. npm test 2>&1 | swarmdo compact or swarmdo compact -- npm test (exit code propagates). Deterministic, zero tokens
swarmdo codegraph (alias cg)Queryable symbol indexcodegraph index scans TS/JS for exported symbols; query <name> (with --fuzzy/--kind) and file <path> answer "where is X defined / what does this file export" from .swarm/codegraph.json instead of grep+read round-trips. codegraph importers <file> shows reverse deps ("what breaks if I change this"); codegraph imports <file> shows a file's dependencies. 1,786 symbols + import graph across 296 files in <1s. Also MCP tools (codegraph_query/file/imports/importers/index/stats) so agents query the graph in-session
swarmdo redactMask secrets before they reach an LLM/log/memory — detect API keys, tokens, and private keys (gitleaks-style rule catalog + Shannon-entropy fallback) and redact them. Stdin filter (cat deploy.log | swarmdo redact), command-wrap (swarmdo redact -- npm run deploy), or --scan to fail CI on any secret — --scan --sarif emits a SARIF 2.1.0 report so leaked secrets surface as GitHub code-scanning alerts + PR annotations. Also MCP tools (redact_text/redact_scan). Deterministic, zero tokens
swarmdo packBundle a repo into one AI-context blob — walk the tree (respects .gitignore + glob --include/--exclude, skips binaries/node_modules), emit markdown/xml/json/plain with a directory tree and per-file + total token estimates. swarmdo pack --tokens for a budget breakdown; --redact masks secrets first. Deterministic
swarmdo envCatch env-var drift before deploy — statically scan code for process.env.X / import.meta.env.X / Deno.env.get / os.getenv references and reconcile against .env and .env.example: reports missing (used but undeclared), unused, and undocumented. --ci exits 1 on missing vars. Also an MCP tool (env_check). Deterministic
swarmdo licenseAudit dependency licenses — walk node_modules, resolve each package's SPDX license, and gate on an allow/deny policy so a GPL or unknown license can't slip into a permissive tree. --allow MIT,Apache-2.0 --ci fails the build; distinct from security (CVEs). Also an MCP tool (license_check). Deterministic
swarmdo sbomSoftware Bill of Materials from the lockfile — emit a CycloneDX (default) or SPDX JSON manifest of every dependency with version, purl, license, and integrity hash, for compliance/vuln tooling. --spec spdx, -o sbom.json, --production. Completes the env/license/sbom supply-chain trio. Deterministic
swarmdo applyA forgiving git apply — apply a unified diff with fuzzy context matching, so an agent's patch lands even when line numbers have drifted or a context line is slightly off, and reports exactly which hunks couldn't. --dry-run to preview, --fuzz N to tolerate more drift. Also an MCP tool (apply_patch). Deterministic
swarmdo hotspotsChange-risk hotspots from git history — rank files by churn × recency × author-spread to surface the technical debt worth refactoring or testing, answered from data instead of a guess. --since 90d, --by risk|churn|commits|authors, --top N, --format json. Pairs with codegraph; also an MCP tool (hotspots). Deterministic
swarmdo affectedRun only the tests your change touches — from a git diff, walk codegraph's import graph to list every file (and test file) a change could break (reverse-dependency closure, nx/turbo/jest --findRelatedTests style). --base main, --tests (pipeable list), --format json. Also an MCP tool (affected). Deterministic
swarmdo cyclesFind circular import dependencies — an SCC scan over codegraph's import graph surfaces the mutually-importing file groups (and self-imports) that cause temporal-dead-zone and undefined-export bugs, madge --circular style. --ci exits 1 on any cycle to gate a build; --format json. Also an MCP tool (cycles). Deterministic
swarmdo couplingFiles that change together — the empirical complement to affected's static import graph: mine git history for file pairs that keep landing in the same commit (a schema and its type, a serializer split across modules) so you catch the co-edit you'd otherwise forget. --file <path> answers "what changes with X?", --since, --min-shared, --csv. Modeled on code-maat / CodeScene. Also an MCP tool (coupling). Deterministic
swarmdo ownershipWho owns each file, and what breaks if they leave — a per-file knowledge map + bus factor from git history: the dominant author, ownership concentration, and the fewest authors whose churn clears 50% (a lone owner is flagged ⚠ key-person), plus a repo-wide truck factor. --since, --min-churn, --top, --csv, --format json. code-maat main-dev / CodeScene "Knowledge Map"; also an MCP tool (ownership). Deterministic
swarmdo hidden-couplingCo-change with no import edge — join the two graphs swarmdo already owns (temporal coupling from git + codegraph's import graph) and emit the set difference: file pairs that keep changing together yet nothing in the code links them ("logical minus structural coupling" — a config and its consumers, a schema and its mirror type). The co-edit affected can't see. --since, --min-shared, --csv, --format json. Grounded in Gall et al. (ICSM 1998). Deterministic
swarmdo standup (alias mine)What did I do? — your commits since your last working day, grouped by day with a diffstat. Weekend-aware (git-standup parity): on Monday it reaches back to Friday, on Sunday to Friday, otherwise to yesterday — one-command recall for a standup or for re-orienting at the start of a session. Defaults to the current git user; --author <name>/--all for teammates, --days N or --since 2w to override the window, --format json. Pure engine (weekend math + per-day fold) → fixture-tested. Deterministic
swarmdo commands (alias slash)Hot/cold/orphan usage report for your authored .claude/ surface — which custom slash-commands (.claude/commands/**) and subagents (.claude/agents/**) you actually invoke (hot, with counts), which are cold (defined but never used → prune candidates), and which are orphan (invoked but undefined → a typo or a builtin). config lint says "are these valid?"; this says "are these used?" — joining the defined files against invocation counts mined from local transcripts (<command-name> markers + subagent_type fields). --unused prints just the prune list, --unused --strict is a CI gate (exit 1 if anything's dead), --all counts across every project, --json. Pure parsers + join → fixture-tested
swarmdo agent bridgeLink Claude Code agents ⇄ Swarmdo — the fix for "Swarmdo is installed but never actually used." Swarmdo can't call Claude Code's Agent tool (only the main loop can), so agent bridge register -n <name> binds a real Claude Code agent into Swarmdo's registry (swarmdo agent list stops being empty) and auto-spins-up a swarm from your config, enrolling the agent — the next bind joins the same swarm. Automatic since 1.58.18: swarmdo init wires a SubagentStart hook that registers every Claude Code subagent as it spawns, and a SubagentStop hook that marks it terminated — so the statusline's 🐝 Swarms N 🤖 Agents M tracks real agents with no manual step (#108). bridge list (bound vs native), bridge sync --live a,b (reconcile drift), bridge advise "<prompt>" (should this warrant a swarm? which roles?). Also MCP tools agent_bridge_register/agent_bridge_list. Pure engine → 16 tests
swarmdo testreportJUnit/TAP → failure digest — turn raw test-result files into the exact failing test names + file:line + assertion messages, instead of scanning hundreds of log lines. The front-half of the test→fix loop: feed the failures straight into repair. Reads a file, a directory, or stdin; --ci exits 1 on any failure, --format json. Also an MCP tool (testreport). Deterministic
swarmdo integrations (alias integrate)Use swarmdo from Codex CLI, GitHub Copilot CLI, and pi — one command wires AGENTS.md + each CLI's MCP config (idempotent, dry-run first, never touches your Claude Code setup)
OpenRouter model poolLet swarms pick from any models you configure — declare tier-mapped OpenRouter models in swarmdo.config.json; the router Thompson-samples among them per task and the execution layer dispatches the winner
route serve (run Claude Code on any model)A local Anthropic-compatible proxyswarmdo route serve + ANTHROPIC_BASE_URL=http://127.0.0.1:3456 points Claude Code itself at your OpenRouter pool: full SSE streaming, tier routing, and per-model learned priors — shared with your swarms' routing, so both learn from each other. Run Claude Code on Llama/DeepSeek/Gemini/Qwen/etc. — no vendored proxy, no extra process
Obsidian + local-LLM togglesOne command on/offswarmdo obsidian on|off|status toggles the dual-plane Obsidian memory vault (edit notes in Obsidian, sync back re-embedded), and swarmdo llm on|off|status toggles the local SwarmLLM backend (on shows a 🧬 LLM statusline icon). Also as slash commands /sDo:obsidian and /sDo:llm
Cross-encoder memory rerankSharper top-k recall, opt-inswarmdo memory search --rerank (composes with --smart) reranks the retrieved candidate pool with a cross-encoder (ADR-083, the strongest relevance signal) for the best top-k; lazy-loads a ~30MB model and falls back to pre-rerank order if it's unavailable, so it never breaks a search. Same as rerank: true on the memory_search MCP tool. Ships with an honesty fix — the post-task learning hook no longer records a blanket success (#118); it derives a real verdict from the outcome signal or abstains
swarmdo memory distillDistill a session into atomic facts — reads a Claude Code session transcript and extracts dense, self-contained facts into the distilled namespace, where they're retrievable through the normal memory search path (including --rerank). Opt-in and dry-run by default; --confirm runs one budget-capped headless claude call (--model default haiku, --max-budget-usd default 0.50). Secrets are redacted and near-duplicates skipped before storage; latest is scoped to the current project. The first tier (L1) of a Tencent-style L0→L3 memory pyramid; measure the payoff with swarmdo usage, not an inherited token-reduction claim
swarmdo changelog (alias notes)Release notes from conventional commits--out NOTES.md feeds gh release create --notes-file; --contributors appends a credited contributor roll
swarmdo mcp doctorMCP config diagnosis — missing binaries, bad URLs, malformed entries across .mcp.json + ~/.claude.json
swarmdo config lintStatic config validation — the pure shape layer for swarmdo.config.json, the .claude/settings*.json hooks block, .mcp.json, .claude/agents/*.md subagents (missing name/description, a name duplicated across files — CC silently loads only one — a bad model, malformed frontmatter), and custom slash commands + skills (malformed YAML that makes CC load empty metadata, a bad effort, an inline !`cmd` bash-injection that's inert or not covered by allowed-tools). --strict gates CI
swarmdo permissions (alias perms)Audit your Claude Code permission rules — static analysis of permissions.allow/deny/ask in .claude/settings*.json: flags allow↔deny conflicts (dead rules), over-broad Bash(*) grants, shadowed/redundant rules, duplicates, and malformed entries. --strict gates CI. Read-only; the static-safety sibling of config lint / mcp doctor
swarmdo comms (alias mailbox)Cross-session, cross-tool agent mailbox — one agent session (Claude Code, Codex, Copilot, or pi) messages another by name (send -t <session>, -t all broadcasts, inbox, read, watch); sessions on the same repo share .swarmdo/comms/. Non-Claude agents set $SWARMDO_AGENT for a stable identity. inbox --hook surfaces new mail as prompt context without polling. Also MCP tools (comms_send/comms_inbox)
swarmdo hooks memory-injectPrompt-time semantic memory injection — embeds each prompt, vector-searches your stored memories, and injects the most relevant under a token budget (recall at the moment of need); wire it with hooks recipe memory-inject
swarmdo hooks notify -dDesktop notifications — OS-native toast (macOS osascript, Linux notify-send)
swarmdo hooks recipeOne-command Claude Code hooks — install notify-done/notify-input (desktop pings), memory-inject (relevant memories each prompt), comms-inbox (new mail as context), or command-guard (a PreToolUse deny hook that blocks dangerous bash — rm -rf /, pipe-to-shell, force-push to main — the net swarmdo needs when running headless); dry-run by default, idempotent merge that never clobbers your settings
swarmdo preset + init --preset5-tier capability ladderminimalbasic★ → standardadvancedmax; one word instead of dozens of flags
swarmdo profile + /sDo:profileSession capability profiles — one word for how much swarmdo you want this session: ultra 🦾 (everything on) · smart 🧠★ (the intelligence layer, recommended) · light 🪶 (lean & cheap) · minimal 🔩 (bare — plain Claude). swarmdo profile use <name> (accepts default) writes the real session levers (SWARMDO_ULTRA/HARNESS/ROUTER_NEURAL/PONYTAIL) into .claude/settings.json, flips the local-LLM + efficiency skills, and drops a sourceable .swarmdo/profile.env for Codex/Copilot/pi. A brand-new session with none set is prompted to pick one (recommended: smart); the active profile shows in the statusline. Switch anytime — env-gated levers apply next session
swarmdo memory export/import -f obsidianObsidian vault roundtrip — DB → markdown notes (YAML frontmatter, [[wikilinks]] stay live) → edit in Obsidian → sync back, re-embedded; import --watch keeps the vault live-synced as you edit
swarmdo memory backup / revectorizeWAL-safe nightly DB snapshots · repair hash-era vectors
swarmdo usage blocks                   # 5h windows, live burn on the active one
swarmdo usage guard --block-usd 5 --daily-usd 20 --strict
swarmdo changelog --version v1.4.4 --out NOTES.md
swarmdo hooks recipe notify-done --apply
swarmdo memory export -o ./vault -f obsidian && open ./vault

Swarmdo's web UI is a multi-model AI chat with built-in Model Context Protocol (MCP) tool calling. Talk to Qwen, Claude, Gemini, or OpenAI while Swarmdo invokes the same MCP tools the CLI uses — agent orchestration, persistent memory, swarm coordination, code review, GitHub ops — directly from chat. No install, no API key needed to try it.

What it isWhy it matters
🧠Any model, local or remote6 curated frontier models out-of-the-box — Qwen 3.6 Max (default), Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 2.5 Pro, Gemini 2.5 Flash, OpenAI — via OpenRouter. Add your own: any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq, self-hosted).
🦾swarmLLM self-learning AINative support for [swarmLLM](the upstream project (see NOTICE)) (lives in upstream/SwarmVector/examples/swarmLLM) — Swarmdo's self-improving local model layer. Routes to MicroLoRA adapters, learns from your trajectories via SONA, and stays on your machine. Pair with the cloud models or run fully offline.
🛠️~210 tools, ready to call5 server groups (Core, Intelligence, Agents, Memory, DevTools) plus an 18-tool gallery that runs entirely in your browser — works offline.
🔌Bring your own MCP serversClick the MCP (n) pill in the chat input → Add Server and paste any MCP endpoint (HTTP, SSE, or stdio). Your tools join Swarmdo's native ones in the same parallel-execution flow. Run a local MCP server on localhost:3000 and it just works.
Tools run in parallelOne model response can fire 4–6+ tools at the same time. The UI shows them as cards with a Step 1 — 2 tools completed badge so you can see exactly what ran.
💾Memory that sticksSay "remember my favorite color is indigo" and ask weeks later — Swarmdo recalls it. Backed by AgentDB + HNSW vector search (measured ~1.9x–4.7x faster than brute force above the crossover, recall@10 ~0.99).
📘Built-in capabilities tourClick the question-mark icon in the sidebar — a "Swarmdo Capabilities" modal opens with the full tool list, model strengths, architecture, and keyboard shortcuts.
🚀Zero install to tryOpen the hosted URL, pick a model, type a question. That's the whole onboarding.

What it isWhy it matters
🎯Plain-English goalsType "ship the auth refactor with tests and a PR" — Swarmdo extracts the success criteria, the constraints, and the implicit preconditions. No JSON, no DSL.
🧭GOAP A* plannerClassic gaming-AI planning ported to software work: state-space search through actions with preconditions/effects to find the shortest viable path. Replans on the fly when state changes.
🌳Visual plan treeGoals render as collapsible action trees with progress, blocked branches, and rollbacks highlighted. See exactly why an agent picked a path — no opaque chain-of-thought.
♻️Adaptive replanningWhen an action fails or new info arrives, the planner re-runs A* from the current state instead of restarting. Failures become learning, not loops.
🧠Shared memory + SONAPlans, trajectories, and outcomes flow into AgentDB. Future plans retrieve past solutions via HNSW — the planner gets smarter with every run.
🔗Wired to MCP toolsEvery action node maps to a tool call (Swarmdo's ~210 MCP tools, your custom servers, or shell). The planner schedules them in parallel where the dependency graph allows.

Agent Federation — Slack for Agents

Your Agent --> [ Remove secrets ] --> [ Sign message ] --> [ Encrypted channel ]
                 Emails, SSNs,        Proves it came       No one reads it
                 keys stripped         from you              in transit
                                                                |
                                                                v
Their Agent <-- [ Block attacks ] <-- [ Check identity ] <------+
                 Stops prompt          Rejects forgeries
                 injection

                          Audit trail on both sides.
                  Trust builds over time. Bad behavior = instant downgrade.

Slack gave teams channels. Federation gives agents the same thing — shared workspaces across trust boundaries, where agents on different machines, orgs, or cloud regions can discover each other, prove who they are, and collaborate on tasks.

The difference: some channels are trusted, some aren't. [@swarmdo/plugin-agent-federation](the upstream project (see NOTICE)) handles that automatically. Your agents join a federation, get verified via mTLS + ed25519, and start exchanging work — with PII stripped before anything leaves your node and every message auditable. Untrusted agents can still participate at lower privilege: they see discovery info, not your memory. As they prove reliable, trust upgrades. If they misbehave, they get downgraded instantly — no human in the loop required.

You don't configure handshakes or manage certificates. You federation init, federation join, and your agents start talking. The protocol handles identity, the PII pipeline handles data safety, and the audit trail handles compliance.

📘 Full user guide: docs/federation/ — setup, MCP tools, trust levels, circuit breaker, and the (opt-in) WireGuard mesh layer that ties packet-layer reachability to federation trust. ADR-111 deep-dive at docs/federation/phase7-mesh-bringup.md.

Federation capabilities
CapabilityHow it works
🔒Zero-trust federationRemote agents start untrusted. Identity proven via mTLS + ed25519 challenge-response. No API keys, no shared secrets.
🛡️PII-gated data flow14-type detection pipeline scans every outbound message. Per-trust-level policies: BLOCK, REDACT, HASH, or PASS. Adaptive calibration reduces false positives.
📊Behavioral trust scoringFormula (0.4×success + 0.2×uptime + 0.2×threat + 0.2×integrity) continuously evaluates peers. Upgrades require history; downgrades are instant.
📋Compliance built-inHIPAA, SOC2, GDPR audit trails as compliance modes. Every federation event produces a structured record searchable via HNSW.
🤝9 MCP tools + 10 CLI commandsFull lifecycle: federation_init, federation_send, federation_trust, federation_audit, and more.
Example: two teams sharing fraud signals without sharing customer data
# Team A: initialize federation and generate keypair
npx swarmdo@latest federation init

# Team A: join Team B's federation endpoint
npx swarmdo@latest federation join wss://team-b.example.com:8443

# Team A: send a task — PII is stripped automatically before it leaves
npx swarmdo@latest federation send --to team-b --type task-request \
  --message "Analyze transaction patterns for account anomalies"

# Team A: check peer trust levels and session health
npx swarmdo@latest federation status

See [issue #1669](the upstream project (see NOTICE)) for the complete architecture, trust model, and implementation roadmap.

# Claude Code plugin
/plugin install swarmdo-federation@swarmdo

# Or via CLI
npx swarmdo@latest plugins install @swarmdo/plugin-agent-federation
Claude Code: With vs Without Swarmdo
CapabilityClaude Code Alone+ Swarmdo
Agent CollaborationIsolated, no shared contextSwarms with shared memory and consensus
CoordinationManual orchestrationQueen-led hierarchy (Raft, Byzantine, Gossip)
MemorySession-onlyHNSW vector memory with sub-ms retrieval
LearningStatic behaviorSONA self-learning with pattern matching
Task RoutingYou decideIntelligent routing (89% accuracy)
Background WorkersNone12 auto-triggered workers
LLM ProvidersAnthropic only5 providers with failover
SecurityStandardCVE-hardened with AIDefence
Architecture overview
User --> Claude Code / CLI
          |
          v
    Orchestration Layer
    (MCP Server, Router, 27 Hooks)
          |
          v
    Swarm Coordination
    (Queen, Topology, Consensus)
          |
          v
    100+ Specialized Agents
    (coder, tester, reviewer, architect, security...)
          |
          v
    Memory & Learning
    (AgentDB, HNSW, SONA, ReasoningBank)
          |
          v
    LLM Providers
    (Claude, GPT, Gemini, Cohere, Ollama)

Documentation

Four docs for four audiences:

DocWhen to read it
StatusSee what currently works — capability counts, test baselines, recent fixes, what's next. The is-it-ready doc.
User GuideDaily reference — every command, every config flag, every plugin. The how-do-I doc.
MetaHarness GuideHow to grade your agent setup, scan tool configs for security, detect changes between runs, and eject a project into a standalone agent toolkit. The audit-my-setup doc.
[Benchmarks](https://gist.the upstream project (see NOTICE))SOTA matrix vs LangGraph / AutoGen / CrewAI on darwin-arm64 + linux-x64. swarmdo wins cold start, single turn, RSS by 1.3×–1953×. The is-it-fast doc.
VerificationCryptographically prove your installed bytes match the signed witness — swarmdo verify. The trust-but-verify doc.
Team Gateway ChecklistBefore-merge gates, dual-mode handoff, memory namespace sharing, and witness manifest entry per merge. The safer-team-workflows doc.

Benchmark internals (for reproduction): [sota-workload-spec.md](the upstream project (see NOTICE)) · [SOTA-PROGRESS.md](the upstream project (see NOTICE)) · [raw matrix JSON: darwin](the upstream project (see NOTICE)) · [linux](the upstream project (see NOTICE))

User Guide section index:

SectionTopics
Quick StartInstallation, prerequisites, install profiles
Core FeaturesMCP tools, agents, memory, neural learning
Intelligence & LearningHooks, workers, SONA, model routing
Swarm & CoordinationTopologies, consensus, hive mind
SecurityAIDefence, CVE remediation, validation
EcosystemSwarmVector, agentic-flow, Flow Nexus
ConfigurationEnvironment variables, config schema
Slash Commands & StatuslineEvery /sDo: command + /sdo- skill, and every statusline item (live on swarmdo.com)
Plugin MarketplaceBrowse and install plugins

Support

ResourceLink
DocumentationUser Guide
Issues & Bugs[GitHub Issues](the upstream project (see NOTICE))
Enterpriseswarmdo.com
CommunityAgentics Foundation Discord
Powered byCognitum.one

License

MIT - [the upstream author](https://the upstream project (see NOTICE))

Contributors

(top 30 of 32)

ruvnet

6,485 commits

JannieP

449 commits

claude

50 commits

dependabot[bot]

11 commits

SwarmDo/swarmdo

swarmdo — self-contained AI agent orchestration for Claude Code (swarmdo.com)

2

stars

7,042

commits

TypeScript

primary language

Aug 24, 2026

updated

swarmdo.com

README

swarmdo

npm version (swarmdo) MIT License Website Star on GitHub Buy Me a Coffee

Based on the original, hugely popular ruflo — renamed, self-contained, and MIT-licensed. Full lineage in NOTICE.

Swarmdo

An agent meta-harness for Claude Code and Codex.

Agent = Model + Harness. The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work. Swarmdo is the harness — the execution layer around Claude Code and Codex that adds 100+ specialized agents, coordinated swarms, self-learning memory, federated comms across machines, and enterprise security guardrails. So agents don't just run, they collaborate.

One npx swarmdo init gives Claude Code a nervous system: agents self-organize into swarms, learn from every task, remember across sessions, and — with federation — securely talk to agents on other machines without leaking data. You keep writing code. Swarmdo handles the coordination.

Self-Learning / Self-Optimizing Agent Architecture

User --> Swarmdo (CLI/MCP) --> Router --> Swarm --> Agents --> Memory --> LLM Providers
                          ^                           |
                          +---- Learning Loop <-------+

New to Swarmdo? You don't need to learn 314 MCP tools or 26 CLI commands. After init, just use Claude Code normally — the hooks system automatically routes tasks, learns from successful patterns, and coordinates agents in the background.

📖 Background — where the name comes from

Swarmdo is now Swarmdo — named by the upstream author, who loves Rust, flow states, and building things that feel inevitable. The "Ru" is the the upstream author. The "flo" is working until 3am. Underneath, powered by Cognitum.One agentic architecture, running a supercharged Rust-based AI engine, embeddings, memory, and plugin system.


swarmdo in action — one prompt spawns a coordinated agent swarm

Quick Start

There are two different install paths with very different surface areas. Pick based on what you need (#1744):

Claude Code PluginCLI install (npx swarmdo init)
What it gives youSlash commands + skills + agent definitions per-plugin; swarmdo-core also registers the swarmdo MCP serverFull Swarmdo loop — 98 agents, 60+ commands, 30 skills, MCP server, hooks, daemon
Files in your workspaceZero.claude/, .swarmdo/, CLAUDE.md, helpers, settings
MCP server registeredYes with swarmdo-core (via the plugin's .mcp.json); other plugins are commands/skills onlyYes
Hooks installedNoYes
Best forTry Swarmdo without committing files to your workspaceProduction use — everything works as documented

Path A — Claude Code Plugins (zero files in your repo)

# Add the marketplace
/plugin marketplace add SwarmDo/swarmdo

# Install core + any plugins you need
/plugin install swarmdo-core@swarmdo
/plugin install swarmdo-swarm@swarmdo
/plugin install swarmdo-rag-memory@swarmdo
/plugin install swarmdo-neural-trader@swarmdo

swarmdo-core registers the swarmdo MCP server (300+ tools) plus base agents and setup skills; the other plugins add their slash commands and agent definitions. Hooks and the daemon still require Path B.

📦 swarmdo-core has been submitted to Anthropic's Claude Code plugin directory (community marketplace). Once approved it will also be installable via /plugin install swarmdo-core@claude-community — no marketplace-add needed.

🔌 All 35 plugins

Core & Orchestration

PluginWhat it does
swarmdo-coreFoundation — server, health checks, plugin discovery
swarmdo-swarmCoordinate multiple agents as a team
swarmdo-autopilotLet agents run autonomously in a loop
swarmdo-loop-workersSchedule background tasks on a timer
swarmdo-workflowsReusable multi-step task templates
swarmdo-federationAgents on different machines collaborate securely

Memory & Knowledge

PluginWhat it does
swarmdo-agentdbFast vector database for agent memory
swarmdo-rag-memorySmart retrieval — hybrid search, graph hops, diversity ranking
swarmdo-rvfSave and restore agent memory across sessions
swarmdo-swarmvectorswarmvector (vendored in-repo at v3/vendor/swarmvector) — GPU-accelerated search, Graph RAG, 103 tools
swarmdo-knowledge-graphBuild and traverse entity relationship maps

Intelligence & Learning

PluginWhat it does
swarmdo-intelligenceAgents learn from past successes and get smarter
swarmdo-graph-intelligenceSublinear graph reasoning — PageRank, delta updates, complexity-aware execution (ADR-123)
swarmdo-daaDynamic agent behavior and cognitive patterns
swarmdo-swarmllmRun local LLMs (Ollama, etc.) with smart routing
swarmdo-goalsBreak big goals into plans and track progress

Code Quality & Testing

PluginWhat it does
swarmdo-testgenFind missing tests and generate them automatically
swarmdo-browserAutomate browser testing with Playwright
swarmdo-jujutsuAnalyze git diffs, score risk, suggest reviewers
swarmdo-docsGenerate and maintain documentation automatically

Security & Compliance

PluginWhat it does
swarmdo-security-auditScan for vulnerabilities and CVEs
swarmdo-aidefenceBlock prompt injection, detect PII, safety scanning

Architecture & Methodology

PluginWhat it does
swarmdo-adrTrack architecture decisions with a living record
swarmdo-dddScaffold domain-driven design — contexts, aggregates, events
swarmdo-sparcGuided 5-phase development methodology with quality gates
swarmdo-metaharnessGrade your agent setup, scan tool configs for security risks, and track changes over time (guide)
swarmdo-arenaCompetitive ruliology — pit agent strategies against each other in tournaments, hill-climb and co-evolve the winners (ADR-147/148)

DevOps & Observability

PluginWhat it does
swarmdo-migrationsManage database schema changes safely
swarmdo-observabilityStructured logs, traces, and metrics in one place
swarmdo-cost-trackerTrack token usage, set budgets, get cost alerts

Extensibility

PluginWhat it does
swarmdo-agentRun agents — local WASM sandbox (rvagent) + Anthropic Claude Managed Agents (cloud)
swarmdo-plugin-creatorScaffold, validate, and publish your own plugins

Domain-Specific

PluginWhat it does
swarmdo-iot-cognitumIoT device management — trust scoring, anomaly detection, fleets
swarmdo-neural-traderneural-trader — AI trading with 4 agents, backtesting, 112+ tools
swarmdo-market-dataIngest market data, vectorize OHLCV, detect patterns

CLI Install

macOS / Linux / WSL / Git-Bash:

# One-line install (POSIX shells only — see Windows note below)
curl -fsSL https://cdn.jsdelivr.net/gh/SwarmDo/swarmdo@main/scripts/install.sh | bash

All platforms (including native Windows PowerShell / cmd):

# Interactive setup wizard — runs identically on every platform
npx swarmdo@latest init wizard

# Compress a memory file to save tokens (caveman mode — e2e-verified 33% smaller, backup kept)
npx swarmdo compress CLAUDE.md
npx swarmdo compress notes.md --check   # token-free: just report compressibility

# Quick non-interactive init
# npx swarmdo@latest init

# Or install globally
npm install -g swarmdo@latest

💡 Windows users: the curl ... | bash form needs a POSIX shell (Git-Bash, WSL, MSYS). The npx swarmdo@latest init wizard line works natively in PowerShell and cmd. If you hit an 'bash' is not recognized error, use the npx line instead — both end up running the same init flow.

MCP Server

# Add Swarmdo as an MCP server in Claude Code (canonical form, matches USERGUIDE.md)
claude mcp add swarmdo -- npx swarmdo@latest mcp start

One Namespace: /sDo

Since v1.4.0 every slash surface swarmdo installs is namespaced, so the whole toolkit groups together in Claude Code's / menu instead of scattering between built-ins — type /sDo and it all surfaces:

/sDo:swarmdo-help        /sDo:swarm:swarm-init     /sDo:sparc:architect
/sdo-caveman-compress    /sdo-ponytail             /sdo-agentdb-vector-search

Commands use the sDo: namespace (.claude/commands/sDo/…); skills use the sdo- prefix (skill names must be lowercase). Upgrades migrate automatically — swarmdo init and swarmdo efficiency on remove pre-1.4.0 unprefixed copies so no duplicate menu entries linger.


Efficiency: Caveman & Ponytail, Built In

Two of the most-loved Claude Code skills ship inside swarmdo as first-class features — vendored MIT forks with attribution in NOTICE, integrated across the CLI, the agents, and the init wizard.

🪨 Caveman compression

Memory files (CLAUDE.md, notes, todos) get re-read every session — and they're written for humans, not token budgets. Caveman rewrites them in few-token caveman-speak with substance, code, and URLs preserved and the original backed up. E2E-verified: 33% smaller with every technical fact intact.

# Inside Claude Code
/sdo-caveman-compress CLAUDE.md

# From any terminal — no Claude Code session needed
swarmdo compress CLAUDE.md
swarmdo compress notes.md --check     # token-free dry run: reports type + compressibility

💤 Ponytail mode

The laziest senior dev in the room, on demand: YAGNI, standard library before dependencies, one line before fifty, no speculative abstraction. Three intensities plus audit/review/debt lenses.

# Inside Claude Code
/sdo-ponytail            # lite | full | ultra

# For spawned agents — per call:
#   agent_run / agent_execute with ponytail: true
# or globally:
export SWARMDO_PONYTAIL=1            # explicit ponytail:false always wins

Toggling

Everything is opt-in and reversible — skills are user-invoked, so "on" means available, never automatic.

LayerToggle
This projectswarmdo efficiency on|off|status
At initwizard "Efficiency" skill group
Per agentponytail: true/false on the spawn call
GloballySWARMDO_PONYTAIL=1 env

Credits: caveman by Julius Brussee · ponytail by Dietrich Gebert (both MIT).

What You Get

CapabilityDescription
🤖 100+ AgentsSpecialized agents for coding, testing, security, docs, architecture
🧭 Coding-Agent HarnessExecuted agents ship with a built-in ground→verify-by-running→report-honestly discipline preamble (opt out: SWARMDO_HARNESS=0)
🗳️ OrchestrationDeterministic multi-agent verify + voteswarmdo orchestrate + MCP tools fan out parallel skeptics/attempts on cheap models with schema-validated output, optional memory grounding, and a SWARMDO_ULTRA default-thorough agent mode (guide)
📡 Comms LayerZero-trust federation — agents across machines/orgs discover, authenticate, and exchange work securely
🐝 Swarm CoordinationHierarchical, mesh, and adaptive topologies with consensus
🧠 Self-LearningSONA neural patterns, ReasoningBank, trajectory learning
💾 Vector MemoryHNSW-indexed AgentDB — measured ~1.9x faster at N=20k, ~3.2x–4.7x at N=5k vs brute force (recall@10 ~0.99); ANN wins above the crossover, ties/loses at small N. See audit + scripts/benchmark-intelligence.mjs
Background Workers12 auto-triggered workers (audit, optimize, testgaps, etc.)
🧩 Plugin Marketplace33 native Claude Code plugins + 21 npm plugins
🔌 Multi-ProviderClaude, GPT, Gemini, Cohere, Ollama with smart routing
🛡️ SecurityAIDefence, input validation, CVE remediation, path traversal prevention
🌐 Agent FederationCross-installation agent collaboration with zero-trust security
🔬 MetaHarnessAudit your AI agent setup before you ship. Grade readiness (1-100), scan tool configs for security issues, snapshot the whole project to catch regressions over time, and find templates that match your repo. swarmdo eject turns a swarmdo project into a standalone agent toolkit with its own name. Full guide.

🧰 The Operational Toolkit (v1.3 → v1.4)

swarmdo ships a full day-to-day operations layer around the swarm — spend, safety, releases, and memory portability:

CommandWhat it does
swarmdo usage (alias cost)Claude Code spend analytics from your local transcripts — daily, weekly, monthly (with a month-end spend projection), models, projects, sessions, live 5-hour blocks burn, errors (tool-failure analytics), friction (how often you interrupt Claude + which tool was running + dominant error categories), cache (prompt-cache efficiency + $ saved), diff (period-over-period comparison with per-model movers), reflect (a wrapped-style retrospective — busiest day, streak, top models/projects, peak hour, delegation ratio — with a shareable --html dashboard), and limits (an official-quota exhaustion forecaster over Claude Code's rate_limits); the standard views take --csv for spreadsheet export
swarmdo usage guardBudget policy — limits for the active 5h block / today / month via flags or SWARMDO_GUARD_* env → ok / warn / over; --strict exits 1, safe for CI gates and Stop hooks
swarmdo hudOne-screen ops HUD — 5h block burn, task readiness, daemon workers, memory snapshots (--watch, --json)
swarmdo repair (alias tdd-repair)Test-Driven Repair — a bounded, budget-capped headless claude loop that fixes source until a failing test passes; dry-run unless --confirm
swarmdo task … --dependenciesTask dependency DAGtask ready lists unblocked work, task graph renders the graph, the dispatcher gates on readiness; task parse-prd <spec.md> decomposes a PRD straight into the DAG; task doctor (alias health) separates a transient wait from a permanent stall — a task whose prerequisite failed/was cancelled/is missing will never run — and flags whole-graph deadlock, --ci so a dispatch loop can't spin forever (Airflow upstream_failed semantics)
swarmdo worktree (alias wt)Parallel-agent isolation on git worktrees — add / list / diff / merge / remove
swarmdo transcript (alias tx)Export any Claude Code session to clean markdown — system noise stripped, ready to share; transcript search <query> full-text-searches every session
swarmdo compactCompress noisy command output before it reaches an LLM — strip ANSI, collapse repeats, fold node_modules stack frames, window long logs. npm test 2>&1 | swarmdo compact or swarmdo compact -- npm test (exit code propagates). Deterministic, zero tokens
swarmdo codegraph (alias cg)Queryable symbol indexcodegraph index scans TS/JS for exported symbols; query <name> (with --fuzzy/--kind) and file <path> answer "where is X defined / what does this file export" from .swarm/codegraph.json instead of grep+read round-trips. codegraph importers <file> shows reverse deps ("what breaks if I change this"); codegraph imports <file> shows a file's dependencies. 1,786 symbols + import graph across 296 files in <1s. Also MCP tools (codegraph_query/file/imports/importers/index/stats) so agents query the graph in-session
swarmdo redactMask secrets before they reach an LLM/log/memory — detect API keys, tokens, and private keys (gitleaks-style rule catalog + Shannon-entropy fallback) and redact them. Stdin filter (cat deploy.log | swarmdo redact), command-wrap (swarmdo redact -- npm run deploy), or --scan to fail CI on any secret — --scan --sarif emits a SARIF 2.1.0 report so leaked secrets surface as GitHub code-scanning alerts + PR annotations. Also MCP tools (redact_text/redact_scan). Deterministic, zero tokens
swarmdo packBundle a repo into one AI-context blob — walk the tree (respects .gitignore + glob --include/--exclude, skips binaries/node_modules), emit markdown/xml/json/plain with a directory tree and per-file + total token estimates. swarmdo pack --tokens for a budget breakdown; --redact masks secrets first. Deterministic
swarmdo envCatch env-var drift before deploy — statically scan code for process.env.X / import.meta.env.X / Deno.env.get / os.getenv references and reconcile against .env and .env.example: reports missing (used but undeclared), unused, and undocumented. --ci exits 1 on missing vars. Also an MCP tool (env_check). Deterministic
swarmdo licenseAudit dependency licenses — walk node_modules, resolve each package's SPDX license, and gate on an allow/deny policy so a GPL or unknown license can't slip into a permissive tree. --allow MIT,Apache-2.0 --ci fails the build; distinct from security (CVEs). Also an MCP tool (license_check). Deterministic
swarmdo sbomSoftware Bill of Materials from the lockfile — emit a CycloneDX (default) or SPDX JSON manifest of every dependency with version, purl, license, and integrity hash, for compliance/vuln tooling. --spec spdx, -o sbom.json, --production. Completes the env/license/sbom supply-chain trio. Deterministic
swarmdo applyA forgiving git apply — apply a unified diff with fuzzy context matching, so an agent's patch lands even when line numbers have drifted or a context line is slightly off, and reports exactly which hunks couldn't. --dry-run to preview, --fuzz N to tolerate more drift. Also an MCP tool (apply_patch). Deterministic
swarmdo hotspotsChange-risk hotspots from git history — rank files by churn × recency × author-spread to surface the technical debt worth refactoring or testing, answered from data instead of a guess. --since 90d, --by risk|churn|commits|authors, --top N, --format json. Pairs with codegraph; also an MCP tool (hotspots). Deterministic
swarmdo affectedRun only the tests your change touches — from a git diff, walk codegraph's import graph to list every file (and test file) a change could break (reverse-dependency closure, nx/turbo/jest --findRelatedTests style). --base main, --tests (pipeable list), --format json. Also an MCP tool (affected). Deterministic
swarmdo cyclesFind circular import dependencies — an SCC scan over codegraph's import graph surfaces the mutually-importing file groups (and self-imports) that cause temporal-dead-zone and undefined-export bugs, madge --circular style. --ci exits 1 on any cycle to gate a build; --format json. Also an MCP tool (cycles). Deterministic
swarmdo couplingFiles that change together — the empirical complement to affected's static import graph: mine git history for file pairs that keep landing in the same commit (a schema and its type, a serializer split across modules) so you catch the co-edit you'd otherwise forget. --file <path> answers "what changes with X?", --since, --min-shared, --csv. Modeled on code-maat / CodeScene. Also an MCP tool (coupling). Deterministic
swarmdo ownershipWho owns each file, and what breaks if they leave — a per-file knowledge map + bus factor from git history: the dominant author, ownership concentration, and the fewest authors whose churn clears 50% (a lone owner is flagged ⚠ key-person), plus a repo-wide truck factor. --since, --min-churn, --top, --csv, --format json. code-maat main-dev / CodeScene "Knowledge Map"; also an MCP tool (ownership). Deterministic
swarmdo hidden-couplingCo-change with no import edge — join the two graphs swarmdo already owns (temporal coupling from git + codegraph's import graph) and emit the set difference: file pairs that keep changing together yet nothing in the code links them ("logical minus structural coupling" — a config and its consumers, a schema and its mirror type). The co-edit affected can't see. --since, --min-shared, --csv, --format json. Grounded in Gall et al. (ICSM 1998). Deterministic
swarmdo standup (alias mine)What did I do? — your commits since your last working day, grouped by day with a diffstat. Weekend-aware (git-standup parity): on Monday it reaches back to Friday, on Sunday to Friday, otherwise to yesterday — one-command recall for a standup or for re-orienting at the start of a session. Defaults to the current git user; --author <name>/--all for teammates, --days N or --since 2w to override the window, --format json. Pure engine (weekend math + per-day fold) → fixture-tested. Deterministic
swarmdo commands (alias slash)Hot/cold/orphan usage report for your authored .claude/ surface — which custom slash-commands (.claude/commands/**) and subagents (.claude/agents/**) you actually invoke (hot, with counts), which are cold (defined but never used → prune candidates), and which are orphan (invoked but undefined → a typo or a builtin). config lint says "are these valid?"; this says "are these used?" — joining the defined files against invocation counts mined from local transcripts (<command-name> markers + subagent_type fields). --unused prints just the prune list, --unused --strict is a CI gate (exit 1 if anything's dead), --all counts across every project, --json. Pure parsers + join → fixture-tested
swarmdo agent bridgeLink Claude Code agents ⇄ Swarmdo — the fix for "Swarmdo is installed but never actually used." Swarmdo can't call Claude Code's Agent tool (only the main loop can), so agent bridge register -n <name> binds a real Claude Code agent into Swarmdo's registry (swarmdo agent list stops being empty) and auto-spins-up a swarm from your config, enrolling the agent — the next bind joins the same swarm. Automatic since 1.58.18: swarmdo init wires a SubagentStart hook that registers every Claude Code subagent as it spawns, and a SubagentStop hook that marks it terminated — so the statusline's 🐝 Swarms N 🤖 Agents M tracks real agents with no manual step (#108). bridge list (bound vs native), bridge sync --live a,b (reconcile drift), bridge advise "<prompt>" (should this warrant a swarm? which roles?). Also MCP tools agent_bridge_register/agent_bridge_list. Pure engine → 16 tests
swarmdo testreportJUnit/TAP → failure digest — turn raw test-result files into the exact failing test names + file:line + assertion messages, instead of scanning hundreds of log lines. The front-half of the test→fix loop: feed the failures straight into repair. Reads a file, a directory, or stdin; --ci exits 1 on any failure, --format json. Also an MCP tool (testreport). Deterministic
swarmdo integrations (alias integrate)Use swarmdo from Codex CLI, GitHub Copilot CLI, and pi — one command wires AGENTS.md + each CLI's MCP config (idempotent, dry-run first, never touches your Claude Code setup)
OpenRouter model poolLet swarms pick from any models you configure — declare tier-mapped OpenRouter models in swarmdo.config.json; the router Thompson-samples among them per task and the execution layer dispatches the winner
route serve (run Claude Code on any model)A local Anthropic-compatible proxyswarmdo route serve + ANTHROPIC_BASE_URL=http://127.0.0.1:3456 points Claude Code itself at your OpenRouter pool: full SSE streaming, tier routing, and per-model learned priors — shared with your swarms' routing, so both learn from each other. Run Claude Code on Llama/DeepSeek/Gemini/Qwen/etc. — no vendored proxy, no extra process
Obsidian + local-LLM togglesOne command on/offswarmdo obsidian on|off|status toggles the dual-plane Obsidian memory vault (edit notes in Obsidian, sync back re-embedded), and swarmdo llm on|off|status toggles the local SwarmLLM backend (on shows a 🧬 LLM statusline icon). Also as slash commands /sDo:obsidian and /sDo:llm
Cross-encoder memory rerankSharper top-k recall, opt-inswarmdo memory search --rerank (composes with --smart) reranks the retrieved candidate pool with a cross-encoder (ADR-083, the strongest relevance signal) for the best top-k; lazy-loads a ~30MB model and falls back to pre-rerank order if it's unavailable, so it never breaks a search. Same as rerank: true on the memory_search MCP tool. Ships with an honesty fix — the post-task learning hook no longer records a blanket success (#118); it derives a real verdict from the outcome signal or abstains
swarmdo memory distillDistill a session into atomic facts — reads a Claude Code session transcript and extracts dense, self-contained facts into the distilled namespace, where they're retrievable through the normal memory search path (including --rerank). Opt-in and dry-run by default; --confirm runs one budget-capped headless claude call (--model default haiku, --max-budget-usd default 0.50). Secrets are redacted and near-duplicates skipped before storage; latest is scoped to the current project. The first tier (L1) of a Tencent-style L0→L3 memory pyramid; measure the payoff with swarmdo usage, not an inherited token-reduction claim
swarmdo changelog (alias notes)Release notes from conventional commits--out NOTES.md feeds gh release create --notes-file; --contributors appends a credited contributor roll
swarmdo mcp doctorMCP config diagnosis — missing binaries, bad URLs, malformed entries across .mcp.json + ~/.claude.json
swarmdo config lintStatic config validation — the pure shape layer for swarmdo.config.json, the .claude/settings*.json hooks block, .mcp.json, .claude/agents/*.md subagents (missing name/description, a name duplicated across files — CC silently loads only one — a bad model, malformed frontmatter), and custom slash commands + skills (malformed YAML that makes CC load empty metadata, a bad effort, an inline !`cmd` bash-injection that's inert or not covered by allowed-tools). --strict gates CI
swarmdo permissions (alias perms)Audit your Claude Code permission rules — static analysis of permissions.allow/deny/ask in .claude/settings*.json: flags allow↔deny conflicts (dead rules), over-broad Bash(*) grants, shadowed/redundant rules, duplicates, and malformed entries. --strict gates CI. Read-only; the static-safety sibling of config lint / mcp doctor
swarmdo comms (alias mailbox)Cross-session, cross-tool agent mailbox — one agent session (Claude Code, Codex, Copilot, or pi) messages another by name (send -t <session>, -t all broadcasts, inbox, read, watch); sessions on the same repo share .swarmdo/comms/. Non-Claude agents set $SWARMDO_AGENT for a stable identity. inbox --hook surfaces new mail as prompt context without polling. Also MCP tools (comms_send/comms_inbox)
swarmdo hooks memory-injectPrompt-time semantic memory injection — embeds each prompt, vector-searches your stored memories, and injects the most relevant under a token budget (recall at the moment of need); wire it with hooks recipe memory-inject
swarmdo hooks notify -dDesktop notifications — OS-native toast (macOS osascript, Linux notify-send)
swarmdo hooks recipeOne-command Claude Code hooks — install notify-done/notify-input (desktop pings), memory-inject (relevant memories each prompt), comms-inbox (new mail as context), or command-guard (a PreToolUse deny hook that blocks dangerous bash — rm -rf /, pipe-to-shell, force-push to main — the net swarmdo needs when running headless); dry-run by default, idempotent merge that never clobbers your settings
swarmdo preset + init --preset5-tier capability ladderminimalbasic★ → standardadvancedmax; one word instead of dozens of flags
swarmdo profile + /sDo:profileSession capability profiles — one word for how much swarmdo you want this session: ultra 🦾 (everything on) · smart 🧠★ (the intelligence layer, recommended) · light 🪶 (lean & cheap) · minimal 🔩 (bare — plain Claude). swarmdo profile use <name> (accepts default) writes the real session levers (SWARMDO_ULTRA/HARNESS/ROUTER_NEURAL/PONYTAIL) into .claude/settings.json, flips the local-LLM + efficiency skills, and drops a sourceable .swarmdo/profile.env for Codex/Copilot/pi. A brand-new session with none set is prompted to pick one (recommended: smart); the active profile shows in the statusline. Switch anytime — env-gated levers apply next session
swarmdo memory export/import -f obsidianObsidian vault roundtrip — DB → markdown notes (YAML frontmatter, [[wikilinks]] stay live) → edit in Obsidian → sync back, re-embedded; import --watch keeps the vault live-synced as you edit
swarmdo memory backup / revectorizeWAL-safe nightly DB snapshots · repair hash-era vectors
swarmdo usage blocks                   # 5h windows, live burn on the active one
swarmdo usage guard --block-usd 5 --daily-usd 20 --strict
swarmdo changelog --version v1.4.4 --out NOTES.md
swarmdo hooks recipe notify-done --apply
swarmdo memory export -o ./vault -f obsidian && open ./vault

Swarmdo's web UI is a multi-model AI chat with built-in Model Context Protocol (MCP) tool calling. Talk to Qwen, Claude, Gemini, or OpenAI while Swarmdo invokes the same MCP tools the CLI uses — agent orchestration, persistent memory, swarm coordination, code review, GitHub ops — directly from chat. No install, no API key needed to try it.

What it isWhy it matters
🧠Any model, local or remote6 curated frontier models out-of-the-box — Qwen 3.6 Max (default), Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 2.5 Pro, Gemini 2.5 Flash, OpenAI — via OpenRouter. Add your own: any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq, self-hosted).
🦾swarmLLM self-learning AINative support for [swarmLLM](the upstream project (see NOTICE)) (lives in upstream/SwarmVector/examples/swarmLLM) — Swarmdo's self-improving local model layer. Routes to MicroLoRA adapters, learns from your trajectories via SONA, and stays on your machine. Pair with the cloud models or run fully offline.
🛠️~210 tools, ready to call5 server groups (Core, Intelligence, Agents, Memory, DevTools) plus an 18-tool gallery that runs entirely in your browser — works offline.
🔌Bring your own MCP serversClick the MCP (n) pill in the chat input → Add Server and paste any MCP endpoint (HTTP, SSE, or stdio). Your tools join Swarmdo's native ones in the same parallel-execution flow. Run a local MCP server on localhost:3000 and it just works.
Tools run in parallelOne model response can fire 4–6+ tools at the same time. The UI shows them as cards with a Step 1 — 2 tools completed badge so you can see exactly what ran.
💾Memory that sticksSay "remember my favorite color is indigo" and ask weeks later — Swarmdo recalls it. Backed by AgentDB + HNSW vector search (measured ~1.9x–4.7x faster than brute force above the crossover, recall@10 ~0.99).
📘Built-in capabilities tourClick the question-mark icon in the sidebar — a "Swarmdo Capabilities" modal opens with the full tool list, model strengths, architecture, and keyboard shortcuts.
🚀Zero install to tryOpen the hosted URL, pick a model, type a question. That's the whole onboarding.

What it isWhy it matters
🎯Plain-English goalsType "ship the auth refactor with tests and a PR" — Swarmdo extracts the success criteria, the constraints, and the implicit preconditions. No JSON, no DSL.
🧭GOAP A* plannerClassic gaming-AI planning ported to software work: state-space search through actions with preconditions/effects to find the shortest viable path. Replans on the fly when state changes.
🌳Visual plan treeGoals render as collapsible action trees with progress, blocked branches, and rollbacks highlighted. See exactly why an agent picked a path — no opaque chain-of-thought.
♻️Adaptive replanningWhen an action fails or new info arrives, the planner re-runs A* from the current state instead of restarting. Failures become learning, not loops.
🧠Shared memory + SONAPlans, trajectories, and outcomes flow into AgentDB. Future plans retrieve past solutions via HNSW — the planner gets smarter with every run.
🔗Wired to MCP toolsEvery action node maps to a tool call (Swarmdo's ~210 MCP tools, your custom servers, or shell). The planner schedules them in parallel where the dependency graph allows.

Agent Federation — Slack for Agents

Your Agent --> [ Remove secrets ] --> [ Sign message ] --> [ Encrypted channel ]
                 Emails, SSNs,        Proves it came       No one reads it
                 keys stripped         from you              in transit
                                                                |
                                                                v
Their Agent <-- [ Block attacks ] <-- [ Check identity ] <------+
                 Stops prompt          Rejects forgeries
                 injection

                          Audit trail on both sides.
                  Trust builds over time. Bad behavior = instant downgrade.

Slack gave teams channels. Federation gives agents the same thing — shared workspaces across trust boundaries, where agents on different machines, orgs, or cloud regions can discover each other, prove who they are, and collaborate on tasks.

The difference: some channels are trusted, some aren't. [@swarmdo/plugin-agent-federation](the upstream project (see NOTICE)) handles that automatically. Your agents join a federation, get verified via mTLS + ed25519, and start exchanging work — with PII stripped before anything leaves your node and every message auditable. Untrusted agents can still participate at lower privilege: they see discovery info, not your memory. As they prove reliable, trust upgrades. If they misbehave, they get downgraded instantly — no human in the loop required.

You don't configure handshakes or manage certificates. You federation init, federation join, and your agents start talking. The protocol handles identity, the PII pipeline handles data safety, and the audit trail handles compliance.

📘 Full user guide: docs/federation/ — setup, MCP tools, trust levels, circuit breaker, and the (opt-in) WireGuard mesh layer that ties packet-layer reachability to federation trust. ADR-111 deep-dive at docs/federation/phase7-mesh-bringup.md.

Federation capabilities
CapabilityHow it works
🔒Zero-trust federationRemote agents start untrusted. Identity proven via mTLS + ed25519 challenge-response. No API keys, no shared secrets.
🛡️PII-gated data flow14-type detection pipeline scans every outbound message. Per-trust-level policies: BLOCK, REDACT, HASH, or PASS. Adaptive calibration reduces false positives.
📊Behavioral trust scoringFormula (0.4×success + 0.2×uptime + 0.2×threat + 0.2×integrity) continuously evaluates peers. Upgrades require history; downgrades are instant.
📋Compliance built-inHIPAA, SOC2, GDPR audit trails as compliance modes. Every federation event produces a structured record searchable via HNSW.
🤝9 MCP tools + 10 CLI commandsFull lifecycle: federation_init, federation_send, federation_trust, federation_audit, and more.
Example: two teams sharing fraud signals without sharing customer data
# Team A: initialize federation and generate keypair
npx swarmdo@latest federation init

# Team A: join Team B's federation endpoint
npx swarmdo@latest federation join wss://team-b.example.com:8443

# Team A: send a task — PII is stripped automatically before it leaves
npx swarmdo@latest federation send --to team-b --type task-request \
  --message "Analyze transaction patterns for account anomalies"

# Team A: check peer trust levels and session health
npx swarmdo@latest federation status

See [issue #1669](the upstream project (see NOTICE)) for the complete architecture, trust model, and implementation roadmap.

# Claude Code plugin
/plugin install swarmdo-federation@swarmdo

# Or via CLI
npx swarmdo@latest plugins install @swarmdo/plugin-agent-federation
Claude Code: With vs Without Swarmdo
CapabilityClaude Code Alone+ Swarmdo
Agent CollaborationIsolated, no shared contextSwarms with shared memory and consensus
CoordinationManual orchestrationQueen-led hierarchy (Raft, Byzantine, Gossip)
MemorySession-onlyHNSW vector memory with sub-ms retrieval
LearningStatic behaviorSONA self-learning with pattern matching
Task RoutingYou decideIntelligent routing (89% accuracy)
Background WorkersNone12 auto-triggered workers
LLM ProvidersAnthropic only5 providers with failover
SecurityStandardCVE-hardened with AIDefence
Architecture overview
User --> Claude Code / CLI
          |
          v
    Orchestration Layer
    (MCP Server, Router, 27 Hooks)
          |
          v
    Swarm Coordination
    (Queen, Topology, Consensus)
          |
          v
    100+ Specialized Agents
    (coder, tester, reviewer, architect, security...)
          |
          v
    Memory & Learning
    (AgentDB, HNSW, SONA, ReasoningBank)
          |
          v
    LLM Providers
    (Claude, GPT, Gemini, Cohere, Ollama)

Documentation

Four docs for four audiences:

DocWhen to read it
StatusSee what currently works — capability counts, test baselines, recent fixes, what's next. The is-it-ready doc.
User GuideDaily reference — every command, every config flag, every plugin. The how-do-I doc.
MetaHarness GuideHow to grade your agent setup, scan tool configs for security, detect changes between runs, and eject a project into a standalone agent toolkit. The audit-my-setup doc.
[Benchmarks](https://gist.the upstream project (see NOTICE))SOTA matrix vs LangGraph / AutoGen / CrewAI on darwin-arm64 + linux-x64. swarmdo wins cold start, single turn, RSS by 1.3×–1953×. The is-it-fast doc.
VerificationCryptographically prove your installed bytes match the signed witness — swarmdo verify. The trust-but-verify doc.
Team Gateway ChecklistBefore-merge gates, dual-mode handoff, memory namespace sharing, and witness manifest entry per merge. The safer-team-workflows doc.

Benchmark internals (for reproduction): [sota-workload-spec.md](the upstream project (see NOTICE)) · [SOTA-PROGRESS.md](the upstream project (see NOTICE)) · [raw matrix JSON: darwin](the upstream project (see NOTICE)) · [linux](the upstream project (see NOTICE))

User Guide section index:

SectionTopics
Quick StartInstallation, prerequisites, install profiles
Core FeaturesMCP tools, agents, memory, neural learning
Intelligence & LearningHooks, workers, SONA, model routing
Swarm & CoordinationTopologies, consensus, hive mind
SecurityAIDefence, CVE remediation, validation
EcosystemSwarmVector, agentic-flow, Flow Nexus
ConfigurationEnvironment variables, config schema
Slash Commands & StatuslineEvery /sDo: command + /sdo- skill, and every statusline item (live on swarmdo.com)
Plugin MarketplaceBrowse and install plugins

Support

ResourceLink
DocumentationUser Guide
Issues & Bugs[GitHub Issues](the upstream project (see NOTICE))
Enterpriseswarmdo.com
CommunityAgentics Foundation Discord
Powered byCognitum.one

License

MIT - [the upstream author](https://the upstream project (see NOTICE))

Contributors

(top 30 of 32)

ruvnet

6,485 commits

JannieP

449 commits

claude

50 commits

dependabot[bot]

11 commits

Languages

TypeScript

48.8%

Rust

39.7%

JavaScript

6.3%

Shell

2.3%