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,并打印出要加进 shell 配置文件的那一行PATH。重开终端,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-clinix run github:supernovae-st/nika- sha256sum -c SHA256SUMS --ignore-missing
04 · 编辑器
编辑器扩展
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 们第一次就写出合法的 workflow;nika wire在你需要的地方加上 显式的 agent-tool(MCP)接线。nika initnika wire cursor06 · 第一次 run
零密钥,零下载
从
nika welcome开始,它是一面镜子:这台机器已经有什么 (编辑器 · 密钥的存在与否,绝不读取值),以及 Next 那一行。当前 release 上那一行是nika new hello。离线,零密钥,不写文件, 一秒结束。这是彩排,不是计费回答。要留下文件: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,并打印出要加进 shell 配置文件 (~/.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 · 完整文档