본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 29. 09:53

supernovae-st/nika

요약

Nika는 AI 워크플로우를 기술하고 실행하기 위한 개방형 언어이자 표준입니다. YAML 명세와 Rust 기반 엔진을 통해 모델 불가지론적이며 로컬 우선의 실행 환경을 제공합니다.

핵심 포인트

  • YAML 기반의 휴대 가능하고 검증 가능한 AI 워크플로우 언어
  • Rust 바이너리를 통한 로컬 실행 및 모델 불가지론적 설계
  • infer, exec, invoke, agent의 4가지 핵심 동사로 구성
  • 읽기-XOR-쓰기 권한 모델을 통한 구조적 보안 제공
  • 특정 벤더에 종속되지 않는 개방형 표준 지향

코드로서의 의도 (Intent as Code). AI 워크플로우를 위한 개방형 언어 — 하나의 휴대 가능한 파일, 어떤 모델이든, 클라우드 없이.

Nika는 **AI 워크플로우를 기술하고 실행하기 위한 개방형 언어 (open language)**입니다. 이는 YAML 명세 (Apache-2.0)와 참조 엔진인 단일 Rust 바이너리 (AGPL-3.0)로 구성됩니다. SQL이 PostgreSQL과 짝을 이루고, Dockerfile이 Docker와 짝을 이루는 방식과 같습니다. 즉, 휴대 가능한 표준과 이를 실행하는 엔진의 결합입니다.

Nika 워크플로우는 단순한 파일일 뿐이며, 읽기 쉽고, 휴대 가능하며, 검증 가능합니다. 클라우드 없이 당신이 선택한 어떤 LLM(대규모 언어 모델)에서도 로컬에서 실행됩니다.

# review.nika.yaml — PR diff를 읽고, 위험도를 판단하며, 위험이 높을 때만 댓글을 답니다.
nika: v1
workflow: pr-risk-review
...

단 네 개의 동사뿐입니다. 임의의 실제 워크플로우로 조합될 수 있는 작은 핵심(core) — 이는 "작은 표면적, 거대한 조합"이라는 Unix 및 SQL의 규율을 따릅니다.

동사 (Verb)기능
inferLLM 호출 — 모든 제공자, 로컬 또는 호스팅된 모델
exec쉘 명령 실행
invoke도구 또는 MCP 서버 호출 (HTTP fetch, GitHub, 내장 기능 등...)
agent작업이 완료될 때까지 도구를 사용하여 자율 루프(autonomous loop) 실행

모든 것은 깨지지 않는 고정된 버전화된 봉투인 nika: v1 아래에 위치합니다.

모든 워크플로우에는 세 가지 속성이 유지됩니다:

제공자 불가지론적, 로컬 우선 (Provider-agnostic, local-first) — 로컬의 Ollama 또는 LM Studio, 혹은 어떤 API든 상관없습니다. 모델이 바뀌어도 워크플로우는 변하지 않습니다.
구조적으로 안전함 (Safe by construction) — 읽기-XOR-쓰기(read-XOR-write) 권한 모델을 사용합니다. 읽기 단계는 조용히 쓰기를 수행할 수 없으며, 모든 효과(effect)는 명시적이고 통제됩니다.
재현 가능함 (Reproducible) — 파일과 그 실행 트레이스(execution trace)는 감사 가능하고 재실행 가능한 기록입니다.

flowchart LR
F["workflow.nika.yaml<br/><i>휴대 가능 · 읽기 쉬움 · 검증 가능</i>"] --> E["<b>nika</b><br/>단일 Rust 바이너리"]
E -->|infer| L["LLMs<br/>Ollama · LM Studio · 모든 API"]
...

가장 유사한 사례는 제품이 아니라 **표준 (standards)**입니다. SQL, Dockerfile과 같습니다. 참조 엔진을 갖춘 휴대 가능한 명세입니다. 이 언어는 판매할 제품이 아니라 기여(contribution) 그 자체입니다.

AI 에이전트가 실제 세계에서 행동하기 시작함에 따라, 그들이 행동하는 인터페이스는 자유 텍스트(너무 모호함)나 가공되지 않은 코드(너무 위험함)여서는 안 됩니다. 그것은 반드시 **검증 가능한 액션 언어 (verifiable action language)**여야 합니다. 즉, AI가 작성하고, 인간이 검토 및 승인하며, 기계가 결정론적(deterministically)으로 실행할 수 있는 언어여야 합니다. 또한 특정 벤더의 클라우드에 종속되지 않고, 개방적이며 주권(sovereign)을 유지해야 합니다.

기존의 어떤 워크플로우 도구도 동시에 제공하지 못하는 기능들: 단일 Rust 바이너리 · 휴대 가능한 선언적 YAML (declarative YAML) · 로컬 우선 (local-first) · 읽기-XOR-쓰기(read-XOR-write) 권한 보안 · AGPL · 클라우드 불필요 · 사용자 지정 LLM (bring-your-own-LLM).

Nika는 공개적으로 구축되었습니다.

언어 (language)nika: v1 봉투(envelope)와 그 네 가지 동사(verbs) — 는 안정적이며 깨지지 않을 것입니다. **엔진 (engine)**은 엄격하고 모듈화된 Rust 워크스페이스입니다. 가장 최근에 태그된 공개 릴리스는 v0.91.0입니다. main 브랜치는 각 릴리스 직후 즉시 다음 -dev 버전으로 이동하므로, 로컬 기여자용 바이너리가 Homebrew 자산과 혼동되지 않습니다. 1.0.0 출시 일정은 날짜가 아닌 릴리스 체크리스트에 의해 결정됩니다. 코드, 명세(spec), 그리고 예시 워크플로우는 모두 읽을 수 있으며, 개발은 main 브랜치에서 공개적으로 진행됩니다.

nika: v1 언어 봉투는 영구적으로 고정되며, 이는 엔진 버전과는 별개의 축입니다. 모든 릴리스는 선언된 범위에 대해 완전하며, 미래 버전 뒤에 미완성 기능을 배치하지 않습니다.

설치 (macOS · Linux):

# Homebrew (macOS · Linux) — 즉시 PATH에 추가됨
brew install supernovae-st/tap/nika
nika --version
...

완전 수동 / 에어갭(air-gapped) 환경인가요? 최신 릴리스에서 플랫폼 타르볼(tarball)과 SHA256SUMS를 다운로드한 후, sha256sum -c SHA256SUMS --ignore-missing으로 검증하고, nikaPATH로 이동시키세요.

첫 번째 워크플로우는 설정 없이 (zero setup) 실행됩니다 — 모델도, API 키도 필요 없습니다:

cat > hello.nika.yaml <<'YAML'
nika: v1
workflow: hello
...
YAML

AI 단계를 추가하시겠습니까? 사용 가능한 프로바이더가 없는 경우, 내장된 mock/echo 모델을 통해 오프라인에서 형태를 확인할 수 있습니다. 준비가 되면 실제 모델로 교체하세요:

model: mock/echo # → 준비되면 ollama/llama3.1, anthropic/…, openai/… 로 교체
tasks:
- id: greet
...

실제 추론 (inference)을 위해서는 로컬 모델 (Ollama / LM Studio)을 실행하거나 프로바이더 키 (provider key)를 설정한 후, 무엇이 연결되어 있는지 확인하세요:

nika doctor # 프로바이더 키 + 로컬 서버, 정확한 수정 사항 포함
nika init # 스키마 연결 (schema wiring) + AGENTS.md + 이 리포지토리를 위한 Cursor 규칙
nika wire cursor # 선택 사항 · Cursor 에이전트를 위한 명시적 MCP 연결
...

소스 코드 (contributors): git clone https://github.com/supernovae-st/nika.git && cd nika && cargo test --workspace --lib

. 최종 사용자 문서 (End-user docs): docs.nika.sh.

이 리포지토리는 엔진 (engine) 입니다 — stdio를 통해 언어 서버 (nika lsp)를 제공합니다.
VS Code / Cursor / Windsurf / VSCodium 확장 프로그램 (extension) 은 별도의 리포지토리에 존재하며 supernovae.nika-lang으로 게시됩니다 (Cursor / Windsurf / VSCodium을 위한 Open VSX에도 게시됨):

  • 에디터의 마켓플레이스에서 설치하세요 — 첫 사용 시 일치하는 nika 릴리스 바이너리를 자동으로 다운로드합니다 (또는 이미 PATH에 있는 nika를 재사용합니다).
  • 소스 + 이슈 (issues): supernovae-st/nika-vscode.
  • 기타 에디터: nika lsp는 stdio를 통해 LSP를 지원하므로, 어떤 LSP 클라이언트에도 연결할 수 있습니다.

언어 명세 (Language spec) — supernovae-st/nika-spec (Apache-2.0), 런타임에 구애받지 않는 (runtime-agnostic) Nika 언어.
최종 사용자 문서 (End-user docs) — docs.nika.sh.
웹사이트 (Website) — nika.sh.
예시 워크플로우 (Example workflow)examples/pr-risk-review.nika.yaml, 읽기 쉬운 4개 동사 기반의 로컬 우선 (local-first) 워크플로우.

Nika를 빌드하시나요? 엔진은 엄격한 워크스페이스 규율 하에 제작되었습니다 — 컨텍스트 윈도우 (context-window) 크기의 크레이트 (crates), 크레이트별 승인 체크리스트, src/ 내의 .unwrap() 사용 금지 (CI 강제), 하향식 레이어링 (downward-only layering). 설계는 docs/architecture/에, 결정 사항은 docs/adr/에 기록되어 있으며, 로드맵은 ROADMAP.md에 있습니다.

엔진 (engine) 은 AGPL-3.0-or-later ( LICENSE 참조)입니다 — 이를 수정하여 호스팅 서비스로 실행할 경우, 해당 서비스의 사용자들은 소스 코드를 받을 권리가 있습니다. 명세 (spec) 는 Apache-2.0이며, 표준으로서 최대한 허용적인 (permissive) 라이선스입니다.

AGPL의 네트워크 조항을 수용할 수 없는 조직을 위해 상업용 라이선스 (Grafana 모델)가 제공됩니다. contact@supernovae.studio로 문의하세요.

. 보안 (Security)
보고: security@supernovae.studio

.

© 2024–2026 SuperNovae Studio · 🦋 Nika, SuperNovae 깃발 위의 나비.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0