AGPL-3.0-or-later · forever.

install · v0.105.0

바이너리 하나. 너의 머신.

첫 run까지 2분.

Nika는 Rust 바이너리 하나다. daemon 없음, 계정 없음, cloud 필수 아님. 아래에서 들어갈 문을 고르고 무료 로컬 모델로 첫 파일을 실행해 보자.

macOS · Linux · air-gapped OK

  1. 01 · homebrew

    원라이너

    Homebrew가 있는 macOS 또는 Linux: 바로 PATH에 올라간다. nika --version으로 확인.

    이렇게 보여야 한다
    nika --versionnika 0.105.0

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

  2. 02 · script

    Homebrew 없이

    검증된 release 바이너리~/.nika/bin에 내려받고, 셸 프로필에 추가할 PATH 한 줄을 출력한다. 터미널을 다시 열면 nika --version이 답한다.

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

    toolchain이 이미 있다면: cargo는 미리 빌드된 release tarball을 가져온다. 컴파일 없음 (crates.io publish 전까지 바이너리 이름은 nika-cli: 공개 이름으로 symlink 한 번). nix는 repo 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를 repo에 넣어 Claude Code, Cursor, Codex 들이 첫 시도에 valid한 workflow를 쓰게 하고, nika wire는 원하는 곳에만 명시적 agent-tool(MCP) 연결을 더한다.

    nika init
    nika wire cursor
  6. 06 · 첫 run

    키 제로, cloud 제로

    nika welcome부터, 거울이다: 이 머신에 이미 있는 것들 (에디터 · 로컬 모델 · 키의 존재 여부만, 값은 절대 아님) 그리고 다음에 갈 곳. 첫 workflow에는 모델도 API 키도 필요 없다. 파일을 저장하고 nika check로 감사한 뒤 (plan · 비용 · secrets, 무엇이든 돌기 전에) nika run. AI 스텝을 더한다면 무료 로컬 모델로 (ollama pull 한 번, 머신 밖으로 아무것도 안 나간다), nika doctor가 무엇이 연결됐는지 정확히 알려준다.

    nika welcome
    nika check hello.nika.yaml
    nika run hello.nika.yaml
    ollama pull llama3.2:3b
    nika examples run 01-hello --model ollama/llama3.2:3b
    nika doctor
    hello.nika.yaml
    nika: v1workflow:  id: hellotasks:  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 inference tasks · $0.00  SECRETS  no information-flow escapes  TYPES    every deep output reference fits its declared shape  TOOLS    every nika: tool names a canonical builtin  ARGS     every invoke arg key is declared + every required arg is present  SCHEMA   every authored schema: is satisfiable ○ PERMITS  no boundary declared (engine floor only) · `--infer-permits` writes one ↳ HINT     [permits] no `permits:` boundary declared — run `nika check --infer-permits` to generate the tightest one (default-deny once present)  audited · 1 task · 1 wave · permits none · est ≥$0.0000 · 1 hintnika run hello.nika.yaml  🦋 nika · hello · 1 task     permits ✓ engine floor (no boundary declared)    greet  exec · echo  4ms  ── 1/1 done · $0.00 · elapsed 0.0s ─────────────────────────────    trace: .nika/traces/2026-07-17T21-39-47Z-042f.ndjson · 5 events · chain e7a49a00ceacdc481547021c582c25066cc8f0ccdda4b54bedf71195dde8770d

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

    hello-ai.nika.yaml
    nika: v1workflow:  id: hello-aimodel: ollama/llama3.2:3b   # local · free · swap for any provider in the catalogtasks:  greet:    infer:      prompt: "Say hello in one sentence."

뭔가 걸린다면

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 둘러보기 · 전체 문서