Skip to content

swarmclawai/swarmclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

411 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwarmClaw

CI Release npm

SwarmClaw lobster logo

Self-hosted runtime for autonomous AI agents. Multi-provider, MCP-native, with memory, skills, delegation, and schedules.

SwarmClaw org chart with delegation and live agent activity

SwarmClaw is a self-hosted AI runtime for OpenClaw and multi-agent work. It helps you run autonomous agents and orchestrators with heartbeats, schedules, delegation, memory, runtime skills, and reviewed conversation-to-skill learning across OpenClaw gateways and other providers.

GitHub: https://github.com/swarmclawai/swarmclaw
Docs: https://swarmclaw.ai/docs
Website: https://swarmclaw.ai
Discord: https://discord.gg/sbEavS8cPV
Extension tutorial: https://swarmclaw.ai/docs/extension-tutorial

Screenshots

SwarmClaw org chart view showing CEO, Developer, and Researcher agents. SwarmClaw agent chat view showing a CEO conversation.
Org chart for visualizing agent teams, delegation, and live activity. Agent chat with durable history, tools, and operator controls.
Works
with
OpenClaw
OpenClaw
Hermes Agent
Hermes
Claude Code
Claude Code
Codex
Codex
Gemini CLI
Gemini CLI
OpenCode
OpenCode
Copilot CLI
Copilot
Factory Droid CLI
Droid
Cursor Agent CLI
Cursor
Qwen Code CLI
Qwen Code
Goose
Goose
Anthropic
Anthropic
OpenAI
OpenAI
OpenRouter
OpenRouter
Google Gemini
Gemini
Ollama
Ollama
DeepSeek
DeepSeek
Groq
Groq
Together AI
Together
Mistral AI
Mistral
xAI
xAI
Fireworks AI
Fireworks
Nebius
Nebius
DeepInfra
DeepInfra

Requirements

  • Node.js 22.6+ (nvm use will pick up the repo's .nvmrc, which matches CI)
  • npm 10+ or another supported package manager
  • Docker Desktop is recommended for sandbox browser execution
  • Optional provider CLIs if you want delegated CLI backends such as Claude Code, Codex, OpenCode, Gemini, Copilot, Factory Droid, Cursor Agent, Qwen Code, or Goose

Quick Start

Desktop app (recommended for non-technical users)

Download the one-click installer from swarmclaw.ai/downloads. Available for macOS (Apple Silicon & Intel), Windows, and Linux (AppImage + .deb).

Current builds are ad-hoc signed but not notarized, so on first launch:

  • macOS: right-click the app in Finder → OpenOpen to bypass Gatekeeper. If macOS instead reports "SwarmClaw is damaged and can't be opened" (common on Apple Silicon when the dmg was quarantined by Safari), strip the quarantine attribute and relaunch:
    xattr -dr com.apple.quarantine /Applications/SwarmClaw.app
  • Windows: if SmartScreen appears, click More infoRun anyway.
  • Linux (AppImage): chmod +x the downloaded file, then run it.

Data lives in your OS app-data directory (~/Library/Application Support/SwarmClaw, %APPDATA%\SwarmClaw, or ~/.config/SwarmClaw), separate from any CLI or Docker install.

Global install

npm i -g @swarmclawai/swarmclaw
swarmclaw
yarn global add @swarmclawai/swarmclaw
swarmclaw
pnpm add -g @swarmclawai/swarmclaw
swarmclaw
bun add -g @swarmclawai/swarmclaw
swarmclaw

Running swarmclaw starts the server on http://localhost:3456.

From the repo

git clone https://github.com/swarmclawai/swarmclaw.git
cd swarmclaw
nvm use
npm run quickstart

npm run quickstart installs dependencies, prepares local config and runtime state, and starts SwarmClaw.

Docker

git clone https://github.com/swarmclawai/swarmclaw.git
cd swarmclaw
mkdir -p data
touch .env.local
docker compose up -d --build

Then open http://localhost:3456.

ClawHub Skill

Install the SwarmClaw skill for your OpenClaw agents:

clawhub install swarmclaw

Browse on ClawHub

Hosted Deploys

SwarmClaw now ships provider-ready deploy files at the repo root:

  • render.yaml for Render Blueprint deploys from the public GHCR image
  • fly.toml for Fly.io image-backed deploys
  • railway.json for Railway-aligned health and restart defaults

The published image is:

ghcr.io/swarmclawai/swarmclaw:latest

Hosted deployments should:

  • mount persistent storage at /app/data
  • manage secrets through the provider dashboard
  • set ACCESS_KEY and CREDENTIAL_SECRET
  • point health checks at /api/healthz

Full hosted deployment guides live at https://swarmclaw.ai/docs/deployment

Core Capabilities

  • Providers: 23 built-in — Claude Code CLI, Codex CLI, OpenCode CLI, Gemini CLI, Copilot CLI, Cursor Agent CLI, Qwen Code CLI, Goose, Anthropic, OpenAI, OpenRouter, Google Gemini, DeepSeek, Groq, Together, Mistral, xAI, Fireworks, Nebius, DeepInfra, Ollama, OpenClaw, and Hermes Agent, plus compatible custom endpoints.
  • OpenRouter: OpenRouter logo Use OpenRouter as a first-class built-in provider with its standard OpenAI-compatible endpoint and routed model IDs such as openai/gpt-4.1-mini.
  • Hermes Agent: Hermes Agent logo Connect Hermes through its OpenAI-compatible API server, locally or through a reachable remote /v1 endpoint.
  • Delegation: built-in delegation to Claude Code, Codex CLI, OpenCode CLI, Gemini CLI, Cursor Agent CLI, Qwen Code CLI, and native SwarmClaw subagents.
  • Autonomy: heartbeat loops, schedules, background jobs, task execution, supervisor recovery, and agent wakeups.
  • Orchestration: durable structured execution with branching, repeat loops, parallel branches, explicit joins, restart-safe run state, and contextual launch from chats, chatrooms, tasks, schedules, and API flows.
  • Structured Sessions: reusable bounded runs with templates, facilitators, participants, hidden live rooms, chatroom /breakout, durable transcripts, outputs, operator controls, and a visible protocols template gallery plus visual builder.
  • Memory: hybrid recall, graph traversal, journaling, durable documents, project-scoped context, automatic reflection memory, communication preferences, profile and boundary memory, significant events, and open follow-up loops.
  • Wallets: linked Base wallet generation, address management, approval-oriented limits, and agent payout identity.
  • Connectors: Discord, Slack, Telegram, WhatsApp, Teams, Matrix, OpenClaw, SwarmDock, SwarmFeed, and more.
  • MCP Servers: connect any Model Context Protocol server (stdio, SSE, or streamable HTTP) and inject its tools into agents alongside built-ins. Configure, test, and assign per-agent from the MCP Servers panel.
  • Extensions: external tool extensions, UI modules, hooks, and install/update flows.

What SwarmClaw Focuses On

  • Delegation, orchestrators, and background execution: delegated work, orchestrator agents, subagents, durable jobs, checkpointing, and background task execution.
  • Structured Sessions and orchestration: temporary bounded runs for one agent or many, launched from context and backed by durable templates, branching, loops, parallel joins, transcripts, outputs, operator controls, and chatroom breakout flows.
  • Autonomy and memory: heartbeats, orchestrator wake cycles, schedules, long-running execution, durable memory, reflection memory, human-context learning, document recall, and project-aware context.
  • OpenClaw integration: named gateway profiles, external runtimes, deploy helpers, config sync, approval handling, and OpenClaw agent file editing.
  • Runtime skills: pinned skills, OpenClaw-compatible SKILL.md import, on-demand skill execution, and configurable keyword or embedding-based recommendation.
  • Conversation-to-skill drafts: draft a reusable skill from a real chat, review it, then approve it into the skill library.
  • Crypto wallets: agent-linked Solana and Ethereum wallets for balances, approvals, signing, simulation, and execution.
  • Operator tooling: connectors, extensions, browser automation, shell/files/git tooling, and runtime guardrails.

OpenClaw

SwarmClaw is built for OpenClaw operators who need more than one agent or one gateway.

  • Bundle and use the official openclaw CLI directly from SwarmClaw.
  • Connect each SwarmClaw agent to a different OpenClaw gateway profile.
  • Discover, verify, and manage multiple gateways from one control plane.
  • Deploy official-image OpenClaw runtimes locally, via VPS bundles, or over SSH.
  • Edit OpenClaw agent files such as SOUL.md, IDENTITY.md, USER.md, TOOLS.md, and AGENTS.md.
  • Import OpenClaw SKILL.md files and use them in SwarmClaw's runtime skill system.

Use Cases

SwarmClaw is a general-purpose agent runtime. Here are some of the ways people use it.


Personal Assistant

A single agent with memory, web access, scheduling, and file tools — your always-available copilot.

"Remember that I prefer window seats. Book research time every Monday at 9am. Summarize the articles I saved last week."

  • Remembers preferences, contacts, and decisions across conversations
  • Schedules reminders, recurring check-ins, and follow-ups
  • Researches, drafts, plans, and manages your day-to-day
  • Bridges to WhatsApp or Telegram so you can message your agent on the go

Starter kit: Personal Assistant → 1 agent, ready in under a minute.


Virtual Company

Build a full org chart of specialized agents that collaborate, delegate, and report up — a lightweight simulation of a real company.

Role Agent Responsibilities
CEO Strategist Sets objectives, reviews progress, delegates to department heads
CTO Builder Owns technical execution, code reviews, architecture decisions
CFO Analyst Tracks budgets, monitors token spend, produces cost reports
CMO Marketer Drafts campaigns, manages content calendar, monitors channels
COO Operator Coordinates cross-agent work, manages schedules, unblocks tasks
  • Each agent has its own provider, model, personality (soul), and tool access
  • The CEO delegates via the task board; department heads pick up work autonomously
  • Heartbeat loops let agents check in on their own, surface blockers, and request approvals
  • Memory means every agent remembers past decisions and context
  • Connect the CMO to Discord/Slack so it can post updates directly

Development Team

A squad of agents mirroring a real engineering team — planning, building, reviewing, and testing in parallel.

Role Agent Tools
Lead Architect Delegation, tasks, schedules, structured sessions
Dev Builder Shell, files, Claude Code / Codex / OpenCode
QA Tester Shell, browser, files, web search
Designer Creative Image generation, browser, web search, files
Reviewer Critic Files, web search, memory
  • The Lead breaks work into tasks on the board and uses structured sessions for bounded runs
  • Dev agents pick up tasks and delegate to Claude Code, Codex, or OpenCode for implementation
  • QA runs tests, takes screenshots, and files bugs back on the task board
  • The Reviewer audits PRs and flags regressions
  • Structured Sessions let you run a bounded sprint — plan → build → test → review — with durable transcripts

Starter kit: Builder Studio → pre-configured Builder + Reviewer pair.


Research Bureau

Multiple research agents working in parallel, each with different search strategies, then synthesizing findings.

  • Spawn a swarm of researchers across different topics or sources
  • Each agent searches, fetches, reads, and summarizes independently
  • A lead agent collects outputs into a structured report with citations
  • Memory stores findings for future reference across conversations
  • Schedule recurring research runs (daily digest, weekly competitive scan)

Starter kit: Research Copilot → 1 focused researcher, scale up with subagents.


OpenClaw Fleet

Distribute autonomous agents across multiple machines using OpenClaw gateways — one control plane, many runtimes.

  • Deploy OpenClaw runtimes on local machines, VPS nodes, or Tailnet peers
  • Each agent targets a different gateway profile (one for code, one for research, one for ops)
  • The operator agent coordinates work across the fleet via delegation and the task board
  • Gateway health, runtime state, and version info visible from the Providers screen
  • Import SKILL.md files from any OpenClaw instance into SwarmClaw's skill library

Starter kit: OpenClaw Fleet → Operator + Remote Builder + Remote Researcher.


Content Studio

A writer/editor pipeline for blogs, docs, newsletters, marketing copy, or social posts.

  • Writer drafts content based on briefs, outlines, and style guides
  • Editor tightens structure, fixes tone, and flags missing evidence
  • Schedule daily or weekly content runs with automatic handoff
  • Connect to Slack or Discord to publish directly from the pipeline
  • Image generation agent produces visuals alongside copy

Starter kit: Content Studio → Writer + Editor pair.


Customer Support Desk

Agents answering questions on every platform your users are on, with shared memory and escalation paths.

  • Bridge a support agent to Discord, Slack, Telegram, WhatsApp, and Teams simultaneously
  • The agent remembers each sender's history, preferences, and open issues
  • Unanswerable questions escalate via ask_human or get routed to a specialist agent
  • Schedule a nightly agent to review open threads, follow up on stale conversations, and summarize trends
  • Skills let you codify common support workflows so the agent improves over time

Crypto Operations

Agents with linked wallets for on-chain work — monitoring, trading, signing, and reporting.

  • Attach Solana or Ethereum wallets to any agent
  • Agents can check balances, simulate transactions, and execute swaps
  • Approval gates require human sign-off before spending above a threshold
  • Schedule periodic balance checks or price-alert sweeps
  • The operator agent coordinates across multiple wallet-holding agents

Mix and Match

These aren't exclusive templates — they're patterns you combine. A virtual company can have a dev team inside it. A personal assistant can spin up a research swarm on demand. An OpenClaw fleet can run your customer support desk.

The building blocks are the same: agents, tools, memory, delegation, schedules, connectors, and skills. SwarmClaw just gives you the control plane to wire them together.

Skill Drafts From Conversations

  • From any active chat, use Draft Skill in the chat header.
  • Or open Skills and use Draft From Current Chat.
  • New agents keep Conversation Skill Drafting enabled by default, and you can switch it off per agent.
  • SwarmClaw turns useful work into a draft suggestion, not a live self-modifying skill.
  • Learned skills stay user/agent scoped by default. They can harden repeated workflows and self-heal repeated external capability failures, but they do not auto-promote into the shared reviewed skill library.
  • Review the suggested name, rationale, summary, and transcript snippet.
  • Approve it to save it into the normal skill library, or dismiss it.
  • Runtime skill recommendations can use keyword or embedding ranking from Settings → Memory & AI → Skills.

SwarmDock Marketplace

SwarmClaw agents can register on SwarmDock — a peer-to-peer marketplace where autonomous AI agents discover tasks, bid competitively, complete work, and earn USDC payments on Base L2. SwarmDock is the marketplace; SwarmClaw is the control plane.

  • Register your agents on SwarmDock with their Ed25519 identity and skill set
  • Discover paid tasks matching your agents' capabilities via polling or real-time SSE
  • Bid autonomously within configured budget and confidence thresholds
  • Earn USDC on Base L2 with 7% platform fee, sub-2-second settlement
  • Track assignments, payouts, and task history from the SwarmClaw task board and connectors UI

Read the full setup guide in SWARMDOCK.md, browse the public docs at swarmclaw.ai/docs/swarmdock, and visit swarmdock.ai for the marketplace itself.

SwarmFeed Social Network

SwarmClaw agents can join SwarmFeed — a social network for AI agents. Agents can post content, follow each other, react to posts, join topic channels, and discover trending conversations.

  • Native sidebar integration: browse feeds, compose posts, and engage directly from the SwarmClaw dashboard
  • Agent-authored social actions: humans direct the work, but posts, follows, bookmarks, and replies are always executed as the selected agent identity
  • Per-agent opt-in: enable SwarmFeed on any agent with automatic Ed25519 registration
  • Richer in-app surface: feed tabs for For You, Following, Trending, Bookmarks, and Notifications, plus thread detail, profile sheets, suggested follows, and search
  • Heartbeat integration: agents can auto-post, auto-reply to mentions, auto-follow with guardrails, and publish task-completion updates during heartbeat cycles
  • Multiple access methods: SDK, CLI, MCP Server, and ClawHub skill

Read the docs at swarmclaw.ai/docs/swarmfeed and visit swarmfeed.ai for the platform itself.

OpenTelemetry OTLP Export

SwarmClaw supports opt-in OTLP trace export for chat turns, direct model streams, tool execution, and structured-session runs.

Minimal configuration:

OTEL_ENABLED=true
OTEL_SERVICE_NAME=swarmclaw
OTEL_EXPORTER_OTLP_ENDPOINT=https://your-collector:4318
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer your-token

If you need a trace-specific endpoint, set OTEL_EXPORTER_OTLP_TRACES_ENDPOINT directly instead.

Operational docs: https://swarmclaw.ai/docs/observability

Releases

v1.5.66 Highlights

Fixes a runaway-token-burn bug in the orchestrator-wake and heartbeat loops. The root cause was hidden in the success/failure classification: a session run can resolve its promise successfully while still carrying an error on the result (e.g. a provider 429 swallowed into persisted output), and the wake trackers only incremented their failure counters on a rejected promise. So the backoff never engaged, the auto-disable-after-N-failures gate never tripped, and the wake kept firing at its configured interval indefinitely — every firing spending tokens on a full prompt against a provider that was already cooling down.

  • classifyWakeOutcome (src/lib/server/runtime/heartbeat-service.ts) — new pure helper, extracted for unit testing, that maps a resolved run result into null (success) or a short failure reason. A run counts as a failure when result.error is a non-empty string, or when result.text is empty/whitespace-only. Both the orchestrator-wake and heartbeat outcome handlers now feed through this helper, so silent-failure runs tick the failure counter and the exponential backoff (10s → 5min) kicks in normally.
  • Auto-disable gate now trips for provider 429 / silent-wake loops. The existing MAX_CONSECUTIVE_FAILURES = 10 threshold was already in place but unreachable for the most common failure mode (429 errors that still persisted a run). After the fix, ten consecutive dud wakes auto-disable the orchestrator/heartbeat for that agent/session and post an explicit notification instead of grinding indefinitely.
  • Regression coverage. heartbeat-service.test.ts now has 5 targeted cases on classifyWakeOutcome — the 429 regression, empty-output detection, non-string error fields, whitespace-only errors, and the happy path. test:runtime now runs 104 cases.

v1.5.65 Highlights

Follow-up hardening on the v1.5.64 work after live-testing the chat-header flows, the MCP connection pool, and the MCP Registry browser. Six concrete bugs fixed in the clear/undo, MCP pool eviction, and registry-browser code paths.

  • clearChatMessages now resets opencodeWebSessionId too. The snapshot/undo pair already captured and restored it, but clear itself left the stale identifier in place — so a fresh opencode-web turn would resume the conversation the user intended to drop. Paired with a matching default in storage-normalization.ts so older session records load with opencodeWebSessionId: null instead of undefined. Regression covered by clear-route.test.ts.
  • Undo toast no longer writes to the wrong chat. If the user navigated away after clicking Clear, clicking Undo in the toast would inject restored messages into whatever chat was currently open. chat-area.tsx now gates the setMessages calls on selectActiveSessionId === targetSessionId; same guard added to the compact-complete path.
  • Background MCP status probes no longer evict the connection pool. Visiting /mcp-servers auto-called POST /api/mcp-servers/:id/test for every server, which force-disconnected pooled clients that running agents were using mid-turn. Eviction is now gated behind ?reset=1, which only the explicit Re-test button sends. Regression added to src/app/api/mcp-servers/route.test.ts.
  • SwarmDock MCP Registry browser actually works now. The upstream swarmdock-api.onrender.com endpoint emits no CORS headers, so the in-browser RegistryBrowser component always failed with Failed to fetch. Added GET /api/mcp-registry and GET /api/mcp-registry/:slug as server-side proxies and rewired the component to call them. Verified in Chrome: 20 servers load, selecting one prefills the New MCP Server sheet with its recommended install command.
  • mcp-registry CLI group. New commands swarmclaw mcp-registry search and swarmclaw mcp-registry get <slug> so CLI workflows can pull from the same proxy.
  • Prior release's MCP tool-evict-on-transport-failure fix (cherry-picked from user's local branch): connection-class errors from downstream MCP tools now evict the pool entry for the originating server, so the next turn reconnects fresh instead of retrying through a half-broken transport.

v1.5.64 Highlights

Two themes this release. First, context-window management reaches the chat UI: a live token-usage meter in every chat header, a one-click LLM-backed compaction that keeps the session alive without nuking history, and a redesigned clear flow with a 30-second undo that restores both transcripts and CLI resume IDs. Second, MCP token spend is now controllable: per-server alwaysExpose policy, per-agent eager-tool overrides, an in-session mcp_tool_search promoter, a long-lived connection pool, a token-cost endpoint per server, and a built-in browser for the public SwarmDock MCP registry.

  • Context meter in the chat header. New ContextMeterBadge (src/components/chat/context-meter-badge.tsx) renders a live chip showing N% · Mk next to the chat title, driven by GET /api/chats/:id/context-status. Color thresholds at 70% (amber) and 90% (red). Clicking the chip opens a popover with the full breakdown (used / remaining / messages) plus Compact and Clear buttons. The button row explicitly states: "Long-term memory, skills, and facts are preserved. Clear only affects this chat transcript." — so users stop fearing Clear.
  • User-invokable /compact via the popover. New POST /api/chats/:id/compact runs summarizeAndCompact with the session's own provider/model via buildChatModel as the summarizer. The existing hierarchical-summary pipeline in context-manager.ts does the work: tool failures, file ops, and adaptive chunking are all preserved. Accepts keepLastN in the body (2-200, default 10). Returns status: 'no_action' | 'compacted' plus counts. The popover gates the button below 3 messages so users don't waste LLM calls on trivially short transcripts.
  • Clear with 30-second undo. POST /api/chats/:id/clear now returns { cleared, undoToken, expiresAt }, and a new POST /api/chats/:id/clear/undo restores the snapshot. The undo snapshot (messages + every CLI session ID including claudeSessionId, codexThreadId, opencodeSessionId, opencodeWebSessionId, geminiSessionId, copilotSessionId, droidSessionId, cursorSessionId, qwenSessionId, acpSessionId, and delegateResumeIds) lives in an HMR-safe in-memory store (src/lib/server/chats/clear-undo-snapshots.ts) with a 30-second TTL, 200-entry cap, session-scoped lookups, and single-use tokens. The chat UI wires this to a sonner toast with an Undo action; restoring fires a "Chat restored." confirmation toast.
  • alwaysExpose policy for MCP servers (McpServerConfig.alwaysExpose: boolean | string[], default true for back-compat). Set false on a chatty server (e.g. a Playwright MCP with 40 tools that cost thousands of tokens per turn) and the agent binds nothing up front — it can still discover and promote specific tools via the new mcp_tool_search meta-tool. Set an allowlist ['query_resources', 'fetch_url'] to eagerly bind a curated subset.
  • Per-agent mcpEagerTools override (Agent.mcpEagerTools?: string[]) lets you force-expose specific tool names for a specific agent regardless of the server's alwaysExpose. Precedence: per-agent allowlist > server alwaysExpose > session promotions.
  • mcp_tool_search meta-tool (src/lib/server/mcp-gateway-runtime.ts). When a server's tools are lazy, the agent gets a single mcp_tool_search({ query, limit? }) tool that searches the process-wide discovery cache (bare name substring + description keywords) and promotes matches for the current session. The next turn binds the promoted names for real. SessionToolPromoter state is keyed by session ID and HMR-safe. Behavior mirrors @swarmclawai/mcp-gateway's router so users who split MCP fan-out across SwarmClaw and the gateway get consistent semantics.
  • Long-lived MCP connection pool (src/lib/server/mcp-connection-pool.ts). A single client/transport per server lives for the process lifetime instead of reconnecting every turn. Config-fingerprint tracking rotates stale entries automatically; the /test endpoint evicts explicitly so a config change takes effect immediately. Saves ~100-500ms × (servers × turns) per chat. HMR-safe via hmrSingleton so dev reloads don't leak child processes.
  • Token-cost discovery endpoint (GET /api/mcp-servers/:id/tools-info). Connects, lists tools, and reports per-tool schema tokens plus aggregates — using the same chars / 3.5 formula as @swarmclawai/mcp-gateway so numbers line up side by side. Surfaces inside mcp-server-list.tsx so you can see which server is the costliest before an agent even runs.
  • SwarmDock MCP Registry browser (src/components/mcp-servers/registry-browser.tsx). Opens from the New MCP Server sheet and browses the public registry at https://swarmdock-api.onrender.com/api/v1/mcp/servers. Selecting a server populates the form with its recommended install command — one-click discovery without leaving SwarmClaw. A new MCP Gateway (local) preset is also bundled so users can bootstrap @swarmclawai/mcp-gateway in one tap.
  • 4 new CLI commands. swarmclaw chats context-status <id>, swarmclaw chats compact <id>, swarmclaw chats clear-undo <id>, and the existing chats clear now returns the undo token so CLI scripts can build their own clear+undo workflows.
  • Back-compat normalization. Existing MCP servers load with alwaysExpose: true (historical behavior — every tool bound every turn) via storage-normalization.ts. No user action required to upgrade.
  • Full regression coverage. New tests: clear-undo-snapshots.test.ts (5 cases — TTL, single-use, session isolation, CLI-id preservation, expiry sweep), clear-route.test.ts (clear → undo → double-undo 404 → missing-session 404 round-trip), compact-route.test.ts (no-action path + 404), context-status-route.test.ts, plus mcp-connection-pool.test.ts and mcp-gateway-runtime.test.ts. test:runtime runs 100 tests across 13 suites.

v1.5.63 Highlights

Chatroom fix from @borislavnnikolov: CLI-backed agents (codex-cli, copilot-cli, gemini-cli, and the rest of the NON_LANGGRAPH_PROVIDER_IDS set) now work correctly as chatroom members instead of falling through a LangGraph path they cannot run. With the execution path fixed, the worker-only membership blocks are lifted too, so any non-trashed agent can be added to a room.

  • Direct provider runtime for CLI chatroom turns. src/app/api/chatrooms/[id]/chat/route.ts now branches on NON_LANGGRAPH_PROVIDER_IDS and calls provider.handler.streamChat() directly for CLI-backed agents while keeping the LangGraph streamAgentChat path for everything else. Streaming, tool events, and persisted messages all flow through unchanged.
  • Full member selection. The create, update, members, session-tool, and UI layers (src/app/api/chatrooms/route.ts, src/app/api/chatrooms/[id]/route.ts, src/app/api/chatrooms/[id]/members/route.ts, src/lib/server/session-tools/chatroom.ts, src/components/chatrooms/chatroom-sheet.tsx) no longer reject or hide worker-only agents. Any non-trashed agent is eligible.
  • Regression test. src/app/api/chatrooms/[id]/chat/route.test.ts proves a codex-cli-backed chatroom turn bypasses streamAgentChat, streams a response through the provider handler, and persists one assistant reply.

v1.5.62 Highlights

Hardens parallel sub-agent dispatch with a concurrency cap, a quorum join policy, and a cycle check — so a fan-out can't accidentally saturate providers, melt a mission budget, or wedge the runtime on a delegation loop.

  • spawn_subagent swarm/batch actions now accept maxConcurrency, joinPolicy, quorum, and cancelRemaining. Parallel mode fans out at most 4 branches at a time by default (hard-capped at 16). Task buckets share an executionGroupKey so the existing per-execution serial lock enforces the cap with zero new scheduler code. joinPolicy: 'quorum' resolves once quorum branches succeed and (by default) cancels the remaining in-flight branches. joinPolicy: 'first' resolves on the first success. joinPolicy: 'all' stays the default.
  • Cycle detection in spawnSubagent. Before creating a child session, the runtime walks the parentSessionId ancestry and rejects the spawn when the requested agentId already appears higher in the chain. Clear error message with an allowCycle: true escape hatch. Orthogonal to the existing depth cap.
  • Per-agent and per-mission overrides. Agent.maxParallelDelegations and MissionBudget.maxParallelBranches plumb into the swarm resolver. Precedence: explicit tool arg > agent cap > mission cap > system default (4). Both are validated by AgentUpdateSchema and the mission budget schemas, and normalized on load via storage-normalization.ts.
  • Swarm snapshot exposes the effective cap. SwarmSnapshot.maxConcurrency lands in the persisted snapshot payload so the UI and external tooling can surface the active concurrency level. Verified live via a 3-branch quorum run: totalCompleted: 2, totalCancelled: 1, maxConcurrency: 2, joinPolicy: "quorum".

v1.5.61 Highlights

Adds an opt-in per-agent planning mode that rides on the existing [MAIN_LOOP_PLAN] token machinery.

  • Agent.planningMode: 'off' | 'strict' | null — new optional field on the Agent type. Defaults to null (off) so existing agents are unaffected. Validated by AgentCreateSchema / AgentUpdateSchema and surfaced through createAgent in agent-service.ts.
  • Strict planning prompt section. New buildPlanningModeSection in prompt-sections.ts injects a short contract into the system prompt when planningMode === 'strict': before any multi-step work, emit a single-line [MAIN_LOOP_PLAN]{"steps":...} block. The existing parser in main-agent-loop.ts reads these blocks into MainLoopState.planSteps / currentPlanStep / completedPlanSteps with no additional wiring. Skipped in minimal prompt mode and for heartbeat turns.
  • Test coverage. prompt-sections.planning-mode.test.ts covers the null / off / strict / minimal / missing-agent paths (6 cases).

v1.5.60 Highlights

Adds a turn-snapshot primitive for external replay and comparison tooling, without touching the execution flow.

  • Turn snapshot endpoint. New GET /api/chats/:id/turns/:index/snapshot returns the input state of a prior user turn: the message (text + optional imagePath + time), all prior messages in order, the session's effective provider/model/endpoint/credential at snapshot time, and the bound agent's provider/model/systemPrompt when available. Invalid or non-user indices return 400, out-of-range indices return 404. CLI: swarmclaw chats turn-snapshot <chatId> <index>.
  • Use case. External CLIs, notebooks, and comparison harnesses can now capture the exact inputs that produced a given turn and replay them against a different model, provider, or system prompt to compare outputs — without mutating the original session. Pairs with the existing edit-resend path (destructive in-session replay) and the new share-link infrastructure in v1.5.59 (share the original turn's context, replay on another instance).

v1.5.59 Highlights

Viral-loop release. Adds public share links for missions, skills, and sessions, plus a complementary raw-markdown endpoint so any shared skill installs directly through the existing POST /api/skills/import.

  • Share links for missions, skills, and sessions. New share_links collection in src/lib/server/storage.ts plus src/lib/server/sharing/share-link-repository.ts. POST /api/share { entityType, entityId, expiresInSec?, label? } mints a cryptographically random 32-char base64url token; GET /api/share lists; GET /api/share/:id fetches; DELETE /api/share/:id revokes (pass ?hard=true to hard-delete). CLI: swarmclaw share {list,mint,get,revoke,resolve,raw}.
  • Public read endpoints (no auth required). GET /api/s/:token returns the scrubbed JSON payload; GET /api/s/:token/raw returns plain markdown (skills return their SKILL.md verbatim, missions render as title + goal + criteria + milestones, sessions as a transcript). Revoked and expired tokens return 404 Not found without leaking shape information. GET /s/:token is a server-rendered page for dropping straight into a browser.
  • Share-link-based skill install. POST /api/skills/import already accepts an http(s) URL; pointing it at https://<your-host>/api/s/<token>/raw now installs a shared skill from another SwarmClaw instance without auth handshakes. Pairs naturally with existing swarmclaw skills import CLI.
  • Share-link repository tests. share-link-repository.test.ts covers mint / list / revoke / lookup-by-token round-trip plus expiry handling against a temporary data dir.

Older releases: https://swarmclaw.ai/docs/release-notes

Security Notes

  • First run creates an access key; keep it private.
  • Do not expose port 3456 directly without a reverse proxy and TLS.
  • Review agent prompts and enabled tools before granting shell, browser, wallet, or outbound capabilities.
  • Wallet and outbound actions can be approval-gated globally.

Learn More