AGPL-3.0-or-later · forever.

install · v0.116.2

Ein Binary. Deine Maschine.

Installieren. Ein Befehl. Es läuft.

Du hast schon Claude Code oder Codex. Kein API-Key, kein Modell zum Laden. Nika ist ein einziges Rust-Binary: kein Daemon, kein Account. Installieren, dann nika new hello.

macOS · Linux · air-gapped OK

  1. 01 · homebrew

    Der Einzeiler

    macOS oder Linux mit Homebrew: sofort auf deinem PATH. Prüf es mit nika --version.

    was du sehen solltest
    nika --versionnika 0.116.2 (c4cdbeafb)

    real output · nika 0.116.2 · nika --version · re-captured at every release

  2. 02 · script

    Ohne Homebrew

    Lädt das verifizierte Release-Binary nach ~/.nika/bin und druckt die eine PATH-Zeile für dein Shell-Profil. Terminal neu öffnen, und nika --version antwortet.

    curl -LsSf https://nika.sh/install.sh | sh

    Toolchain schon an Bord? cargo holt den vorgebauten Release-Tarball, kein Kompilieren (das Binary landet als nika-cli, bis der crates.io-Publish steht: einmal einen Symlink auf den öffentlichen Namen legen). nix baut die exakte Release-Source über das Repo-Flake; der erste Run kompiliert, der Store cacht.

    cargo binstall --git https://github.com/supernovae-st/nika nika-cli
    nix run github:supernovae-st/nika
  3. 03 · manuell

    Air-gapped, oder von Hand

    Lade den Plattform-Tarball und SHA256SUMS vom letzten Release, verifiziere, dann schieb nika auf deinen PATH. Nichts telefoniert nach Hause.

    sha256sum -c SHA256SUMS --ignore-missing
  4. 04 · editor

    Die Editor-Extension

    supernovae.nika-lang · im VS Code Marketplace und auf Open VSX (Cursor · Windsurf · VSCodium). Sie lädt beim ersten Einsatz das passende nika-Release-Binary automatisch, oder nutzt das auf deinem PATH vorhandene. Jeder andere Editor: nika lsp spricht LSP über stdio · Source + Issues.

  5. 05 · agents

    Arbeite mit deinen Agents

    Nika ist gebaut, um von Agents geschrieben und von dir reviewt zu werden. nika init legt das Schema-Wiring + AGENTS.md in dein Repo, damit Claude Code, Cursor, Codex und Co. beim ersten Versuch valide Workflows schreiben; nika wire ergänzt explizites Agent-Tool-Wiring (MCP), wo du es willst.

    nika init
    nika wire cursor
  6. 06 · erster run

    Null Keys, null Download

    Starte mit nika welcome, dem Spiegel: was diese Maschine schon hat (Editoren · Key-Präsenz, nie Werte) und die Next-Zeile. Auf der aktuellen Release ist das nika new hello. Offline, null Keys, nichts geschrieben, in einer Sekunde. Eine Probe, keine berechnete Antwort. Eine Datei behalten: nika new snippets/hello, dann nika check und nika run. Ein lokales Modell oder ein Cloud-Key kommt später, nicht zuerst. nika doctor nennt, was schon verkabelt ist.

    nika welcome
    nika new hello
    nika check hello.nika.yaml
    nika run hello.nika.yaml
    nika doctor
    was du sehen solltest
    nika new hellowrote hello.nika.yaml · nika run hello.nika.yamlnika run hello.nika.yaml  🦋 nika · hello · 1 task     permits ✓ declared boundary · default-deny    greet  infer · mock/echo  0ms  ── 1/1 done · ≥ $0.00 (1 unpriced) · elapsed 0.0s ──────────────    wrote .nika/traces    said "mock(echo) · Say hello in French, in one sh…"    see it whole: nika trace outputs    rehearsal · a mock model echoed the prompt — not a real answer    trace: .nika/traces/<this run> · 5 events · chain <hash-chained>

    real output · nika 0.116.2 · nika new hello · re-captured at every release

    hello.nika.yamlsource
    # first file after install · one exec, zero setup, zero keysnika: hellopermits:  exec: ["echo"]tasks:  greet:    exec:      command: ["echo", "hello", "from", "nika"]
    was du sehen solltest
    nika check hello.nika.yamlnika check · hello.nika.yaml  PLAN     1 wave · 1 task · max parallelism 1      wave 1 greet (exec · echo)  COST     no infer/agent tasks · $0.00 · exec + mcp spend unpriced  SECRETS  no declared secret reaches an effect · model echo untracked  TYPES    deep references fit the shapes tasks declare · builtin output has none  TOOLS    every named nika: tool is canonical · globs + mcp: not checked  ARGS     every builtin invoke arg key is declared + required args present  SCHEMA   no known-unsatisfiable form in an authored schema: · $ref opaque  GATES    no task proven dead · status literals in vocabulary  WRITES   no two unordered tasks write the same static path · computed paths at run · engine writes .nika/traces  EXEC     no literal argv the exec floor refuses at run · a templated argv is the RUN's verdict  ORDER    no exec: sits downstream of a net-effecting task · unauthored content never reaches a shell  PERMITS  literal + const: args fit the boundary · computed paths + symlinks are the RUN's verdict · exec outside the fs bounds  TRIFECTA no lethal trifecta over the declared permits: without a human gate  JOURNEY internal · 0 sources · 1 destination · 0 model endpoints · no secret reaches an external destination  audited · 1 task · 1 wave · permits exec:echo · est out ≤$0.0000 · 0 hints · risk supervisednika run hello.nika.yaml  🦋 nika · hello · 1 task     permits ✓ declared boundary · exec outside the fs bounds    greet  exec · echo  8ms  ── 1/1 done · $0.00 · elapsed 0.0s ─────────────────────────────    wrote .nika/traces    trace: .nika/traces/2026-09-01T00-31-01Z-cd68.ndjson · 8 events · chain 93c13fc0b1070dce8597db1950c93b0522336270451ef3b1bd51a5da9a4d12e0 · sealed

    real output · nika 0.116.2 · nika check hello.nika.yaml · re-captured at every release

    hello-ai.nika.yamlsource
    # first infer · mock rehearsal · zero keys · zero downloadnika: hello-aimodel: mock/echopermits: {}tasks:  greet:    infer:      prompt: "Say hello in one sentence."      max_tokens: 64outputs:  greeting: ${{ tasks.greet.output }}

falls etwas hakt

command not found: nika (nach dem Install-Script)

Das Script installiert nach ~/.nika/bin und druckt die exakte PATH-Zeile für dein Shell-Profil (~/.zshrc, ~/.bashrc). Zeile einfügen, Terminal neu öffnen, und nika --version antwortet.

export PATH="$HOME/.nika/bin:$PATH"
macOS blockiert das Binary (nur manueller Tarball)

Ein von Hand geladenes Binary trägt das Quarantine-Flag; brew und das Install-Script nicht. Einmal entfernen, oder Rechtsklick → Öffnen.

xattr -d com.apple.quarantine ./nika
hinter einem Firmen-Proxy

Das Install-Script ist pures curl; es respektiert die Standard-Proxy-Variablen für den Download. Das Binary selbst telefoniert nirgendwohin.

HTTPS_PROXY=http://proxy:8080 curl -LsSf https://nika.sh/install.sh | sh
checksum mismatch beim Tarball

Ein Mismatch heißt: korrupter oder manipulierter Download. Nicht ausführen. Tarball und SHA256SUMS neu von der Release-Seite laden und erneut verifizieren.

sha256sum -c SHA256SUMS --ignore-missing

Weiter: lern das File in 5 Minuten · echte Workflows ansehen · volle Docs