Skip to content

Installation

# Recommended: the CLI and HTTP server, with the web portal it hosts
uv tool install "swarmkit-runtime[ui]"

# CLI only — `swarmkit run`, `trace`, `author`, … and a headless `swarmkit serve` (API, no portal)
uv tool install swarmkit-runtime

# Postgres instead of SQLite for the stores (design/details/storage-service.md)
uv tool install "swarmkit-runtime[ui,postgres]"

# The fleet control plane — a separate package, its own CLI (Level 22)
uv tool install swarmkit-control-plane

This installs swarmkit as a globally available CLI tool in an isolated environment — no virtual env needed, no system Python pollution. uv is the recommended way to install and maintain SwarmKit. The HTTP server, JWT auth and cron triggers are part of the runtime — no extra. [ui] adds the web portal swarmkit serve hosts at / — without it serve runs headless, API only, and says so at startup; [postgres] adds the Postgres checkpoint backend. ([serve] still installs, and installs nothing: it is a deprecated alias from when the server's dependencies were optional.) To add an extra to an existing install, re-run the command — uv tool install upgrades in place.

From source

git clone https://github.com/delivstat/swarmkit.git && cd swarmkit
uv sync --all-packages    # Python deps
pnpm install              # TypeScript deps (optional, for UI + schema validation)

Docker

docker run -v ./workspace:/workspace \
  -e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
  -p 8000:8000 \
  ghcr.io/delivstat/swarmkit:latest

Verify

swarmkit --help
swarmkit validate examples/hello-swarm/workspace --tree

Model providers

Providers are declared as YAML (kind: ModelProvider) and register when they are ready — their key is in the environment, or they need no key:

Provider Env var
Anthropic ANTHROPIC_API_KEY
Google GOOGLE_API_KEY
OpenAI OPENAI_API_KEY
OpenRouter OPENROUTER_API_KEY
Groq GROQ_API_KEY
Together TOGETHER_API_KEY
Ollama none — OLLAMA_BASE_URL to point elsewhere (default http://localhost:11434)
rkllama, llama-server, openvino-model-server, mlx-lm, lemonade none — local runtimes, each with a *_URL/*_HOST env var

swarmkit providers list shows every provider and what it is waiting for. Any OpenAI- or Ollama-compatible endpoint is a YAML file in <workspace>/providers/ — see the model provider reference.

Override per-run: SWARMKIT_PROVIDER=openrouter SWARMKIT_MODEL=meta-llama/llama-3.3-70b-instruct swarmkit run ...