install · v0.116.2
バイナリひとつ。きみのマシンで。
入れて。コマンドひとつ。動く。
もう Claude Code か Codex がある。API キーも、モデルの ダウンロードもいらない。Nika は Rust バイナリひとつ。daemon なし、 アカウント不要。入れてから nika new hello。
macOS · Linux · air-gapped OK
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
02 · script
Homebrew なしで
検証済みの release バイナリを
~/.nika/binにダウンロードし、 シェルプロファイルに足すPATHの 1 行を表示する。ターミナルを 開き直せばnika --versionが答える。curl -LsSf https://nika.sh/install.sh | shtoolchain がすでにあるなら: cargo はビルド済みの release tarball を 取ってくる。コンパイル不要(crates.io 公開までバイナリ名は
nika-cli。 公開名への symlink を一度だけ張る)。nix はリポジトリの flake から release のソースをそのままビルドする。初回 run はコンパイル、store が キャッシュする。cargo binstall --git https://github.com/supernovae-st/nika nika-clinix run github:supernovae-st/nika03 · 手動
air-gapped でも、手作業でも
最新 release からプラットフォームの tarball と
SHA256SUMSを ダウンロードして検証し、nikaをPATHに置く。 どこにも通信しない。sha256sum -c SHA256SUMS --ignore-missing04 · エディタ
エディタ拡張
supernovae.nika-lang· VS Code Marketplace と Open VSX にある (Cursor · Windsurf · VSCodium)。初回使用時に対応するnikarelease バイナリを自動ダウンロード、PATH上の既存バイナリがあればそれを 使う。他のエディタなら:nika lspが stdio で LSP を話す · source + issues。05 · エージェント
エージェントと一緒に
Nika はエージェントが書き、きみがレビューするために作られている。
nika initが schema の配線とAGENTS.mdをリポジトリに置き、 Claude Code · Cursor · Codex たちが一発で valid な workflow を書ける ようにする。nika wireは agent-tool(MCP)の明示的な配線を、 欲しい場所にだけ足す。nika initnika wire cursor06 · 最初の run
キーゼロ、ダウンロードゼロ
まず
nika welcome、鏡だ: このマシンに何があるか(エディタ · キーの有無だけ、値は決して見ない)と Next の行。今の release ではnika new hello。オフライン、キーなし、何も書かない、1 秒。 リハーサルであり、課金される答えではない。ファイルを残すならnika new snippets/hello、それからnika checkとnika run。 ローカルモデルや cloud のキーはあと。最初ではない。nika doctorが既に配線済みのものを名指しする。nika welcomenika new hellonika check hello.nika.yamlnika run hello.nika.yamlnika 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 | shtarball の checksum mismatch
mismatch は破損か改ざんされたダウンロードの印。実行しないこと。 release ページから tarball と SHA256SUMS を取り直して再検証する。
sha256sum -c SHA256SUMS --ignore-missing次へ: 5 分でファイルを学ぶ · 実物の workflow を見る · フルドキュメント