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.
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.
The life of a card
- captured
- queued
- running
- review
- 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.
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.
Vendor-neutral agent-development core: generic agents, skills, commands, hooks, and the project-aware agent-work CLI.
UAV/drone domain pack: MAVLink-style telemetry, mission planning, embedded/edge runtime.
IoT domain pack: BLE communication, device telemetry, health-metrics processing.
Web/marketing domain pack: SEO, i18n, landing-page CRO, Figma-to-code styling.
Infrastructure & delivery domain pack: Kubernetes/Helm, GitOps promotion, IaC, GitLab CI, GCP CI auth, Keycloak.
Semantic code-navigation pack: Serena LSP MCP server.
Claude-engineering pack: skills for building and auditing Claude agent systems — agent architecture, tool and MCP design, prompt engineering, Claude Code config, context reliability.
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.
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.
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.
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-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.