AGPL-3.0-or-later · forever.

install · v0.111.0

Un binaire. Ta machine.

Deux minutes jusqu'à ton premier run.

Nika, c'est un seul binaire Rust : pas de daemon, pas de compte, pas de cloud obligatoire. Choisis une porte d'entrée ci-dessous et lance ton premier fichier avec un modèle local gratuit.

macOS · Linux · air-gapped OK

  1. 01 · homebrew

    La one-liner

    macOS ou Linux avec Homebrew : sur ton PATH immédiatement. Vérifie avec nika --version.

    ce que tu devrais voir
    nika --versionnika 0.111.0 (25f502adb)

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

  2. 02 · script

    Sans Homebrew

    Télécharge le binaire de release vérifié dans ~/.nika/bin et imprime l'unique ligne PATH à ajouter à ton profil shell. Rouvre le terminal et nika --version répond.

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

    Une toolchain déjà en place ? cargo récupère le tarball de release précompilé, zéro compilation (le binaire arrive sous le nom nika-cli jusqu'à la publication crates.io : un symlink vers le nom public, une fois). nix construit la source exacte de la release via le flake du repo ; le premier run compile, le store met en cache.

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

    Air-gapped, ou à la main

    Télécharge le tarball de ta plateforme et SHA256SUMS depuis la dernière release, vérifie, puis place nika sur ton PATH. Rien ne téléphone à la maison.

    sha256sum -c SHA256SUMS --ignore-missing
  4. 04 · éditeur

    L'extension éditeur

    supernovae.nika-lang · sur le VS Code Marketplace et Open VSX (Cursor · Windsurf · VSCodium). Elle télécharge le binaire nika de la release correspondante au premier usage, ou réutilise celui déjà sur ton PATH. Tout autre éditeur : nika lsp parle LSP sur stdio · source + issues.

  5. 05 · agents

    Travaille avec tes agents

    Nika est conçu pour être écrit par des agents et relu par toi. nika init dépose le câblage du schema + AGENTS.md dans ton repo pour que Claude Code, Cursor, Codex et les autres écrivent des workflows valides du premier coup ; nika wire ajoute le câblage agent-tool (MCP) explicite là où tu le veux.

    nika init
    nika wire cursor
  6. 06 · premier run

    Zéro clé, zéro cloud

    Commence par nika welcome, le miroir : ce que cette machine a déjà (éditeurs · modèles locaux · présence des clés, jamais leurs valeurs) et où aller ensuite. Ton premier workflow n'a besoin ni de modèle ni de clé API. Sauve le fichier, audite-le avec nika check (plan · coût · secrets, avant que rien ne tourne), puis nika run. Tu ajoutes une étape IA ? Pointe-la sur un modèle local gratuit (un ollama pull, rien ne quitte ta machine), et nika doctor te dit exactement ce qui est câblé.

    nika welcome
    nika check hello.nika.yaml
    nika run hello.nika.yaml
    ollama pull llama3.2:3b
    nika try 01-hello --model ollama/llama3.2:3b
    nika doctor
    hello.nika.yamlsource
    # first file after install · one exec, zero setup, zero keysnika: hellopermits:  exec: ["echo"]tasks:  greet:    exec:      command: ["echo", "hello", "from", "nika"]
    ce que tu devrais voir
    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  EXEC     no literal argv the exec floor refuses at run · a templated argv is the RUN's verdict  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 a cloud destination  audited · 1 task · 1 wave · permits declared · 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  9ms  ── 1/1 done · $0.00 · elapsed 0.0s ─────────────────────────────    trace: .nika/traces/2026-08-18T23-26-42Z-0a8e.ndjson · 7 events · chain a145a48cf0d995069384cbd8332a067c01d7490f78190897cd6bdf46f40b90b6

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

    hello-ai.nika.yamlsource
    # first model call · one local seat, one bounded sentencenika: hello-aimodel: ollama/llama3.2:3b   # local · zero key · swap for any provider in the catalogpermits: {}tasks:  greet:    infer:      prompt: "Say hello in one sentence."      max_tokens: 64outputs:  greeting: ${{ tasks.greet.output }}

si quelque chose accroche

command not found: nika (après le script d'install)

Le script installe dans ~/.nika/bin et imprime la ligne PATH exacte à ajouter à ton profil shell (~/.zshrc, ~/.bashrc). Ajoute-la, rouvre le terminal, et nika --version répond.

export PATH="$HOME/.nika/bin:$PATH"
macOS bloque le binaire (tarball manuel uniquement)

Un binaire téléchargé à la main porte le flag quarantine ; brew et le script d'install non. Retire-le une fois, ou clic droit → Ouvrir.

xattr -d com.apple.quarantine ./nika
derrière un proxy d'entreprise

Le script d'install est du curl pur ; il honore les variables proxy standard pour le téléchargement. Le binaire lui-même ne téléphone nulle part.

HTTPS_PROXY=http://proxy:8080 curl -LsSf https://nika.sh/install.sh | sh
checksum mismatch sur le tarball

Un mismatch signifie un téléchargement corrompu ou trafiqué. Ne le lance pas. Retélécharge le tarball et SHA256SUMS depuis la page de release et vérifie à nouveau.

sha256sum -c SHA256SUMS --ignore-missing

Ensuite : apprends le fichier en 5 minutes · parcours des workflows réels · docs complètes