AGPL-3.0-or-later · forever.

install · v0.116.2

バイナリひとつ。きみのマシンで。

入れて。コマンドひとつ。動く。

もう Claude CodeCodex がある。API キーも、モデルの ダウンロードもいらない。Nika は Rust バイナリひとつ。daemon なし、 アカウント不要。入れてから nika new hello

macOS · Linux · air-gapped OK

  1. 01 · homebrew

    ワンライナー

    Homebrew のある macOS / Linux なら、すぐに PATH に載る。 nika --version で確認。

    表示されるはずのもの
    nika --versionnika 0.116.2 (c4cdbeafb)

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

  2. 02 · script

    Homebrew なしで

    検証済みの release バイナリ~/.nika/bin にダウンロードし、 シェルプロファイルに足す PATH の 1 行を表示する。ターミナルを 開き直せば nika --version が答える。

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

    toolchain がすでにあるなら: cargo はビルド済みの release tarball を 取ってくる。コンパイル不要(crates.io 公開までバイナリ名は nika-cli。 公開名への symlink を一度だけ張る)。nix はリポジトリの flake から release のソースをそのままビルドする。初回 run はコンパイル、store が キャッシュする。

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

    air-gapped でも、手作業でも

    最新 release からプラットフォームの tarball と SHA256SUMS を ダウンロードして検証し、nikaPATH に置く。 どこにも通信しない。

    sha256sum -c SHA256SUMS --ignore-missing
  4. 04 · エディタ

    エディタ拡張

    supernovae.nika-lang · VS Code MarketplaceOpen VSX にある (Cursor · Windsurf · VSCodium)。初回使用時に対応する nika release バイナリを自動ダウンロード、PATH 上の既存バイナリがあればそれを 使う。他のエディタなら: nika lsp が stdio で LSP を話す · source + issues

  5. 05 · エージェント

    エージェントと一緒に

    Nika はエージェントが書き、きみがレビューするために作られている。 nika init が schema の配線と AGENTS.md をリポジトリに置き、 Claude Code · Cursor · Codex たちが一発で valid な workflow を書ける ようにする。nika wire は agent-tool(MCP)の明示的な配線を、 欲しい場所にだけ足す。

    nika init
    nika wire cursor
  6. 06 · 最初の run

    キーゼロ、ダウンロードゼロ

    まず nika welcome、鏡だ: このマシンに何があるか(エディタ · キーの有無だけ、値は決して見ない)と Next の行。今の release では nika new hello。オフライン、キーなし、何も書かない、1 秒。 リハーサルであり、課金される答えではない。ファイルを残すなら nika new snippets/hello、それから nika checknika run。 ローカルモデルや cloud のキーはあと。最初ではない。 nika doctor が既に配線済みのものを名指しする。

    nika welcome
    nika new hello
    nika check hello.nika.yaml
    nika run hello.nika.yaml
    nika doctor
    表示されるはずのもの
    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"]
    表示されるはずのもの
    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 }}

引っかかったら

command not found: nika(インストールスクリプトの後)

スクリプトは ~/.nika/bin にインストールし、シェルプロファイル (~/.zshrc, ~/.bashrc)に足す正確な PATH 行を表示する。 追加してターミナルを開き直せば nika --version が答える。

export PATH="$HOME/.nika/bin:$PATH"
macOS がバイナリをブロックする(手動 tarball のみ)

手でダウンロードしたバイナリは quarantine フラグ付き。brew と インストールスクリプトは付かない。一度クリアするか、右クリック → 開く。

xattr -d com.apple.quarantine ./nika
社内 proxy の内側で

インストールスクリプトは素の curl。ダウンロードには標準の proxy 変数をそのまま使う。バイナリ自体はどこにも通信しない。

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

mismatch は破損か改ざんされたダウンロードの印。実行しないこと。 release ページから tarball と SHA256SUMS を取り直して再検証する。

sha256sum -c SHA256SUMS --ignore-missing

次へ: 5 分でファイルを学ぶ · 実物の workflow を見る · フルドキュメント