Open, composable, file-backed primitives for multi-agent terminal orchestration.
swarm is a unified CLI that recreates Claude Code's agent-team mode as open primitives — decoupled from any specific AI provider or terminal multiplexer.
| Command group | What it does |
|---|---|
swarm msg |
Agent-to-agent messaging via lock-free inbox files |
swarm task |
Shared task queue with flock-safe mutations |
swarm pane |
Spawn/control/capture terminal panes across multiplexers |
swarm run |
Run a command in a managed pane, wait for exit |
swarm worktree |
git worktree lifecycle tied to agent identity |
swarm events |
Tail the shared append-only event log |
| Backend | Status |
|---|---|
| tmux | ✅ MVP |
| Zellij ≥ 0.44.0 | ✅ MVP |
| WezTerm | ✅ MVP |
| Kitty | 🚧 Post-MVP |
| Ghostty | 🔬 Aspirational |
All state lives under .swarm/ in the project root (or $SWARM_DIR).
.swarm/
├── config.toml
├── agents/registry.json
├── messages/<agent-id>/inbox/<msg-id>.json
├── tasks/tasks.json + .lock
├── runs/runs.json
├── worktrees/worktrees.json
└── events/events.jsonl
- File-backed everything — no daemons, atomic writes,
flock()for mutations - Agent-friendly —
--jsonon every command, machine-readable exit codes - Multiplexer-agnostic — 8-method Backend interface; swap backends without changing callers
- Pull complexity downward — cobra handlers are ~15 lines;
internal/does the work
docs/ARCHITECTURE.md— full module structure, interface designs, data flowsdocs/NOTES.md— decisions log and research synthesisdocs/research/— raw research outputs
npm install -g @justestif/openswarmbrew install justEstif/tap/openswarmgo install github.com/justEstif/openswarm/cmd/swarm@latestAdd to your mise.toml:
[tools]
"go:github.com/justEstif/openswarm/cmd/swarm" = "latest"Or install globally:
mise use -g "go:github.com/justEstif/openswarm/cmd/swarm@latest"Download the binary for your platform from GitHub Releases and add it to your PATH.
# Enter dev shell
nix develop
# Build
go build ./cmd/swarm
# Test
go test ./...
# Lint
golangci-lint run