swarmery GitHub

local-first · claude code · source-available

Run your Claude Code agents like a fleet.

A local-first control plane for Claude Code sessions: see every session, approve permission prompts from one queue, delegate tasks to headless agents in git worktrees. One Go binary, no cloud, no account — plus a versioned plugin marketplace so your agents live in one place.

12
plugin packs
26
agents
67
skills
:7777
local control plane

quick start

Three commands to a running swarm.

Nothing to sign up for and nothing to host. The marketplace installs into Claude Code, the bootstrap script writes a project overlay, and the control plane runs on your own machine.

/plugin marketplace add atretyak1985/swarmery
/plugin install core@swarmery

Install the marketplace in Claude Code, then the vendor-neutral core. Domain packs are opt-in on top.

bash scripts/init.sh

Bootstrap a consumer project: settings.json, a project.json skeleton and its private workspace namespace.

cd tools/swarmery && make build && ./swarmery

Build and run the control plane. One binary, one SQLite file, listening on :7777.

why swarmery

Six decisions that hold the whole thing together.

Every one of them is enforced by something you can run: a scan, a gate, a worktree, a verdict. None of them is a convention you have to remember.

neutrality

A core that names no one

Brand tokens are forbidden anywhere under plugins/, and a CI ratchet keeps the count at zero. Each project's flavor — its repos, stacks and naming — arrives at runtime from its own project.json.

graduation

Flow goes up only

A component is born project-local, is promoted to a domain pack when a second project needs it, and reaches the core only when every project does. Framework files are never copied downward into a project.

isolation

One worktree per task

Every dispatched task runs on its own swarm/<T-id> branch inside an isolated git worktree, cut from the tip of the default branch. Your working tree is never the agent's workspace.

verification

Verdicts that can say no

A read-only verifier diffs the work against the persisted start_point — not the branch against itself — and returns PASS, FAIL or INCONCLUSIVE. A FAIL births a fix card with a bounded retry budget instead of a quiet green tick.

plans

A phase DAG, not a wish list

An idea becomes a phased plan in which every phase carries measurable acceptance criteria and a completion report. Runs execute that graph in dependency order, with a review between phases.

observability

Everything on the record

The control plane indexes every session transcript into local SQLite: tokens, cost, approvals, accounts and retro insights. Nothing has to leave the machine for any of it to work.

how it works

A funnel, not a parallel kanban.

Work enters as a proposal, gets dispatched into an isolated worktree, and leaves through a review with exactly three honest exits. Cards are moved by actions, never by dragging.

Historydone and archived cards live in the drawer

The life of a card

  1. captured
  2. queued
  3. running
  4. review
  5. landed

A captured card is a proposal, not a commitment: it has a lifetime and an expiry. Once dispatched it gets an isolated worktree whose starting commit is persisted, so the verifier and the review diff both measure against the same honest baseline. Landing pushes the branch and opens the pull request; discarding removes the worktree and deletes the branch it names.

control plane

One binary that watches the whole swarm.

A single Go daemon with an embedded React dashboard. It reads the session transcripts Claude Code already writes, indexes them into local SQLite, and serves everything on one port that never leaves the loopback interface.

  • SessionsEvery transcript indexed as it is written, with the tool calls, files and errors of each run.
  • Cost & usageTokens and spend per session, project and account, against the live quota window.
  • ApprovalsPermission prompts reach your phone, so a waiting run is unblocked without going back to the desk.
  • PlansPhase documents stay the source of truth; ticked criteria and completion reports render straight from the markdown.
  • BoardThe three-lane funnel above, driven by actions with a dispatcher underneath it.
  • Retro loopFinished runs are scored and mined for the improvements that go into the next ones.
72
Go packages
184
REST routes
:7777
dashboard port
127.0.0.1
the only interface it binds

plugins

One core, eleven opt-in packs.

The core carries everything that is true for every project. Domain packs add the vocabulary and tooling of one kind of work, and a project enables only the ones it actually uses.

core

Vendor-neutral agent-development core: generic agents, skills, commands, hooks, and the project-aware agent-work CLI.

uav-pack

UAV/drone domain pack: MAVLink-style telemetry, mission planning, embedded/edge runtime.

iot-pack

IoT domain pack: BLE communication, device telemetry, health-metrics processing.

web-pack

Web/marketing domain pack: SEO, i18n, landing-page CRO, Figma-to-code styling.

infra-pack

Infrastructure & delivery domain pack: Kubernetes/Helm, GitOps promotion, IaC, GitLab CI, GCP CI auth, Keycloak.

lsp-pack

Semantic code-navigation pack: Serena LSP MCP server.

claude-eng-pack

Claude-engineering pack: skills for building and auditing Claude agent systems — agent architecture, tool and MCP design, prompt engineering, Claude Code config, context reliability.

graphify-pack

Knowledge-graph pack: the graphify skill turns a repo or folder into a persistent knowledge graph with query, path and affected tools plus HTML, JSON and Neo4j exports.

architecture-pack

Repo-wide architecture map: a machine-readable JSON contract of layers, modules and file-anchored flows plus a self-contained HTML viewer, freshness-stamped per commit.

jira-pack

Issue-tracker pack: drives any Jira ticket end-to-end — access preflight, defect-or-change triage, reproduction or test-first evidence, delegated fix, evidence comment, QA transition.

accounts-pack

Multi-account pack: bind a project to one of several Claude Code accounts and run every session under it, with a shell wrapper and a wrong-account warning.

design-pack

Design-handoff pack: takes an exported design and re-expresses it in the project's stack pixel-accurately — token inventory, reuse-versus-create recon, an approval gate, and a measured pixel diff as the completion criterion.

license

Two licenses, and honest about both.

The plugin framework — every agent pack, skill, script and overlay — is Apache-2.0. Readable, forkable and yours to build on anywhere, including inside a company's paid workflow, at no cost.

The control plane, the Go binary under tools/swarmery/, stays PolyForm Noncommercial 1.0.0: free for personal projects, learning, research and other open-source work. Commercial use is the one thing that half does not grant — read the terms and get in touch.