AGPL-3.0-or-later · forever.

install · v0.116.2

Un binario. Tu máquina.

Instala. Un comando. Corre.

Ya tienes Claude Code o Codex. Sin clave API, sin modelo que descargar. Nika es un solo binario Rust: sin daemon, sin cuenta. Instálalo, luego nika new hello.

macOS · Linux · air-gapped OK

  1. 01 · homebrew

    El one-liner

    macOS o Linux con Homebrew: en tu PATH de inmediato. Compruébalo con nika --version.

    lo que deberías ver
    nika --versionnika 0.116.2 (c4cdbeafb)

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

  2. 02 · script

    Sin Homebrew

    Descarga el binario de release verificado en ~/.nika/bin e imprime la única línea PATH que añadir a tu perfil de shell. Reabre la terminal y nika --version responde.

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

    ¿Ya llevas una toolchain? cargo trae el tarball de release precompilado, sin compilar (el binario llega como nika-cli hasta la publicación en crates.io: un symlink al nombre público, una vez). nix construye la source exacta de la release vía el flake del repo; el primer run compila, el store la cachea.

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

    Air-gapped, o a mano

    Descarga el tarball de tu plataforma y SHA256SUMS desde la última release, verifica, y mueve nika a tu PATH. Nada llama a casa.

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

    La extensión del editor

    supernovae.nika-lang · en el VS Code Marketplace y Open VSX (Cursor · Windsurf · VSCodium). Descarga automáticamente el binario nika de la release correspondiente en el primer uso, o reutiliza el que ya está en tu PATH. ¿Cualquier otro editor? nika lsp habla LSP sobre stdio · source + issues.

  5. 05 · agentes

    Trabaja con tus agentes

    Nika está hecho para ser escrito por agentes y revisado por ti. nika init deja el cableado del schema + AGENTS.md en tu repo para que Claude Code, Cursor, Codex y compañía escriban workflows válidos a la primera; nika wire añade cableado agent-tool (MCP) explícito donde tú quieras.

    nika init
    nika wire cursor
  6. 06 · primer run

    Cero claves, cero descarga

    Empieza con nika welcome, el espejo: lo que esta máquina ya tiene (editores · presencia de claves, nunca valores) y la línea Next. En la release actual esa línea es nika new hello. Offline, cero claves, nada escrito, en un segundo. Un ensayo, no una respuesta facturada. Para guardar un archivo: nika new snippets/hello, luego nika check y nika run. Un modelo local o una clave cloud va después, no primero. nika doctor nombra lo que ya está cableado.

    nika welcome
    nika new hello
    nika check hello.nika.yaml
    nika run hello.nika.yaml
    nika doctor
    lo que deberías ver
    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"]
    lo que deberías ver
    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 }}

si algo se atasca

command not found: nika (después del script de instalación)

El script instala en ~/.nika/bin e imprime la línea PATH exacta que añadir a tu perfil de shell (~/.zshrc, ~/.bashrc). Añádela, reabre la terminal, y nika --version responde.

export PATH="$HOME/.nika/bin:$PATH"
macOS bloquea el binario (solo tarball manual)

Un binario descargado a mano lleva el flag de quarantine; brew y el script de instalación no. Quítalo una vez, o clic derecho → Abrir.

xattr -d com.apple.quarantine ./nika
detrás de un proxy corporativo

El script de instalación es curl puro; respeta las variables proxy estándar para la descarga. El binario en sí no llama a ninguna parte.

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

Un mismatch significa una descarga corrupta o manipulada. No lo ejecutes. Vuelve a descargar el tarball y SHA256SUMS desde la página de release y verifica de nuevo.

sha256sum -c SHA256SUMS --ignore-missing

Siguiente: aprende el archivo en 5 minutos · explora workflows reales · docs completas