One command, one binary.
The official tap for Nika:
the workflow language for AI. One file, 4 verbs, one binary. Local-first,
any model, AGPL-3.0.
Status: the formula tracks the latest tagged release. The exact pin lives in
Formula/nika.rb(this README never repeats it; a repeated number is a number that rots). The language envelopenika: v1is already stable.
brew install supernovae-st/tap/nikaRight after the install, the binary greets the machine and the first proof
runs offline on the mock provider, zero keys (recorded against the released
binary · scripts/media/first-minute.tape):
Prebuilt binaries for macOS (arm64, x86_64) and Linux (arm64, x86_64),
each pinned to a per-architecture sha256 checksum in
Formula/nika.rb. The formula is bumped by CI on every
engine release; this README never repeats the version, because a repeated
number is a number that rots.
Shell completions are generated from the binary itself at install time (bash, zsh, fish).
What you install is checksummed; what you run is contract-carrying.
Every workflow the installed binary runs can declare a permits: block:
a default-deny boundary over filesystem paths, network hosts, exec
programs and tool ids, enforced by the engine at runtime, not just
parsed from YAML. Every run can leave a hash-chained trace, checked
after the fact with nika trace verify. This tap's own CI runs on
SHA-pinned actions with no user-controlled input reaching a shell.
nika welcome # the mirror: what this machine has, where to start
nika examples run 01-hello --model mock/echo # offline proof, zero keys
nika doctor # environment + editor/agent readiness, with the fixes
nika init # repo wiring: schema, AGENTS.md, editor + agent filesHomebrew never mutates your editor configs. Wiring an editor or agent to
the MCP oracle is an explicit act: nika wire cursor, nika wire all.
brew update && brew upgrade nika
brew uninstall nika && brew untap supernovae-st/tap📜 nika-spec ──── the civil code · the law tables, the corpus, the exam
│ sync-pack: byte-gated mirror │ projectors: drift-gated
▼ ▼
⚙️ nika ───────── the engine + the catalog (the yellow pages)
│ the release train 🖥️ nika.sh · 📖 nika-docs
▼ the showroom · the manual
📦 homebrew-tap · npm · Docker ── the docks ◀── you are here
🔌 nika-client · 🎨 nika-vscode · 🤖 nika-agents · ⚡ gh-nika ── the doors
🏭 nika-action · 🧪 nika-actions-starter ── the CI district
🏪 nika-registry ── the market · 🏛 nika-estate ── the land registry
This building · THE DOCKS · the brew lane of the release train.
Root · neither · this building ships the ENGINE's artifacts. Every formula pins a released build by sha256 · nothing authoritative is typed here.
Consumes · the engine's release assets (sha-pinned bottles · the heal follows the train).
Serves · brew install supernovae-st/tap/nika.
Truth lives · the formula follows releases · only the caveats are authored here.
All the buildings: nika-spec · nika · nika.sh · nika-docs · nika-client · nika-vscode · nika-agents · gh-nika · homebrew-tap · nika-action · nika-actions-starter · nika-registry · nika-estate
Every fact has one home · everything else is a gated projection. The living map: nika.sh/map.
Formula files in this repo: MIT. Nika itself: AGPL-3.0-or-later.
Docs: docs.nika.sh · Engine: nika · Issues: engine tracker · Template: nika-actions-starter

