install · v0.105.0
One binary. Your machine.
Two minutes to your first run.
Nika is one Rust binary: no daemon, no account, no cloud required. Pick a way in below and run your first file with a free local model.
macOS · Linux · air-gapped OK
01 · homebrew
The one-liner
macOS or Linux with Homebrew: on your
PATHimmediately. Check it withnika --version.what you should seenika --versionnika 0.105.0
real output · nika 0.105.0 · nika --version · re-captured at every release
02 · script
Without Homebrew
Downloads the verified release binary into
~/.nika/binand prints the singlePATHline to add to your shell profile. Reopen the terminal andnika --versionworks.curl -LsSf https://nika.sh/install.sh | shAlready carrying a toolchain? cargo fetches the prebuilt release tarball, no compile (the binary lands as
nika-cliuntil the crates.io publish: symlink the public name once). nix builds the exact release source via the repo flake; the first run compiles, the store caches it.cargo binstall --git https://github.com/supernovae-st/nika nika-clinix run github:supernovae-st/nika03 · manual
Air-gapped, or by hand
Download the platform tarball and
SHA256SUMSfrom the latest release, verify, then movenikaonto yourPATH. Nothing phones home.sha256sum -c SHA256SUMS --ignore-missing04 · editor
The editor extension
supernovae.nika-lang· on the VS Code Marketplace and Open VSX (Cursor · Windsurf · VSCodium). It auto-downloads the matchingnikarelease binary on first use, or reuses the one already on yourPATH. Any other editor:nika lspspeaks LSP over stdio · source + issues.05 · agents
Work with your agents
Nika is built to be written by agents and reviewed by you.
nika initdrops the schema wiring +AGENTS.mdinto your repo so Claude Code, Cursor, Codex and friends author valid workflows on the first try;nika wireadds explicit agent-tool (MCP) wiring where you want it.nika initnika wire cursor06 · first run
Zero keys, zero cloud
Start with
nika welcome, the mirror: what this machine already has (editors · local models · key presence, never values) and where to go next. Your first workflow needs no model and no API key. Save the file, audit it withnika check(plan · cost · secrets, before anything runs), thennika run. Adding an AI step? Point it at a free local model (oneollama pull, nothing leaves your machine), andnika doctortells you exactly what's wired.nika welcomenika check hello.nika.yamlnika run hello.nika.yamlollama pull llama3.2:3bnika examples run 01-hello --model ollama/llama3.2:3bnika doctorhello.nika.yamlnika: v1workflow: id: hellotasks: greet: exec: command: ["echo", "hello", "from", "nika"]what you should seenika check hello.nika.yamlnika check · hello.nika.yaml ✔ PLAN 1 wave · 1 task · max parallelism 1 wave 1 greet (exec · echo) ✔ COST no inference tasks · $0.00 ✔ SECRETS no information-flow escapes ✔ TYPES every deep output reference fits its declared shape ✔ TOOLS every nika: tool names a canonical builtin ✔ ARGS every invoke arg key is declared + every required arg is present ✔ SCHEMA every authored schema: is satisfiable ○ PERMITS no boundary declared (engine floor only) · `--infer-permits` writes one ↳ HINT [permits] no `permits:` boundary declared — run `nika check --infer-permits` to generate the tightest one (default-deny once present) ✔ audited · 1 task · 1 wave · permits none · est ≥$0.0000 · 1 hintnika run hello.nika.yaml 🦋 nika · hello · 1 task permits ✓ engine floor (no boundary declared) ✔ greet exec · echo 4ms ── 1/1 done · $0.00 · elapsed 0.0s ───────────────────────────── trace: .nika/traces/2026-07-17T21-39-47Z-042f.ndjson · 5 events · chain e7a49a00ceacdc481547021c582c25066cc8f0ccdda4b54bedf71195dde8770d
real output · nika 0.105.0 · nika check hello.nika.yaml · re-captured at every release
hello-ai.nika.yamlnika: v1workflow: id: hello-aimodel: ollama/llama3.2:3b # local · free · swap for any provider in the catalogtasks: greet: infer: prompt: "Say hello in one sentence."
if something catches
command not found: nika (after the install script)
The script installs to ~/.nika/bin and prints the exact PATH line to add to your shell profile (~/.zshrc, ~/.bashrc). Add it, reopen the terminal, and nika --version answers.
export PATH="$HOME/.nika/bin:$PATH"macOS blocks the binary (manual tarball only)
A hand-downloaded binary carries the quarantine flag; brew and the install script don't. Clear it once, or right-click → Open.
xattr -d com.apple.quarantine ./nikabehind a corporate proxy
The install script is plain curl; it honors the standard proxy variables for the download. The binary itself phones nothing home.
HTTPS_PROXY=http://proxy:8080 curl -LsSf https://nika.sh/install.sh | shchecksum mismatch on the tarball
A mismatch means a corrupted or tampered download. Don't run it. Re-download both the tarball and SHA256SUMS from the release page and verify again.
sha256sum -c SHA256SUMS --ignore-missingNext: learn the file in 5 minutes · browse real workflows · full docs