Vornik is an asynchronous, local-first orchestration daemon for teams of AI agents. You define projects — each backed by a swarm of agents and one or more workflows — submit tasks, and Vornik queues them, runs each agent in its own isolated container, and persists every result. It runs on your own infrastructure; agents run with no direct network egress by default, so Vornik suits data-sensitive and air-gapped environments with self-hosted, open-weight models.
Editions. This repository is Vornik Community Edition (AGPL-3.0) — the complete orchestration core, fully usable on its own for personal and small-team work. A proprietary Enterprise Edition adds advanced capabilities on the same core. See Editions for the feature matrix.
One command brings up the full stack — PostgreSQL + pgvector and the Vornik daemon, in containers via Podman Compose. It installs Podman Compose if needed, configures the host so the daemon can spawn agent containers, starts everything, and prints the URL to open when it's ready:
curl -fsSL https://raw.githubusercontent.com/grinco/vornik/main/deployments/podman/quickstart.sh | bashThe daemon creates and migrates its own schema on first boot, so all you supply
is an empty database — which the script provisions for you. When it finishes,
open http://localhost:8080/ui; add an LLM key to deployments/podman/.env and
re-run podman compose up -d vornik to start running tasks. Details and tunables:
deployments/podman/README.md.
PostgreSQL + pgvector is the recommended backend — the memory/RAG vector search needs it. For a quick dependency-free look at the core, the daemon also runs on SQLite; see Getting started.
git clone https://github.com/grinco/vornik
cd vornik
go build -o bin/vornik ./cmd/vornik # the Community daemonCreate a config.yaml (see Configuration — keep
secrets in environment variables), then start the daemon and submit a task with
the control CLI (vornikctl):
./bin/vornik # reads ./config.yaml
vornikctl init project my-project --swarm basic-swarm
vornikctl task submit -p my-project --brief "Summarise README.md"
vornikctl task tail -p my-project <taskId>Full walkthrough: Getting started.
| Guide | What it covers |
|---|---|
| Getting started | Install, first run, your first task |
| Architecture | Daemon, tasks, leases, executor, workflows, MCP |
| Configuration | Where config lives + the key reference |
| CLI reference | vornik (daemon) and vornikctl (control) |
| Editions | Community vs Enterprise feature matrix |
| Contributing | Dev setup, the CLA, the PR bar |
| Security | Supported versions + reporting a vulnerability |
| Support | Community help and commercial support |
The full documentation site is published at https://docs.vornik.io.
- Go — see
go.modfor the minimum version - Podman — agents run in isolated containers
- PostgreSQL with pgvector — durable
task and project state; pgvector backs the memory/RAG vector search (the
pgvector/pgvectorimage ships it). SQLite runs the core but cannot do vector search. - An LLM provider — a self-hosted open-weight endpoint, or a cloud API
make build # go build ./...
make test # go test ./... (integration tests need PostgreSQL)
make lint # gofmt + go vetAGPL-3.0 — © Vadim Grinco. Contributions are accepted under a CLA (see Contributing).