설치
앱에 SNA를 추가하고 필요한 런타임 CLI를 확인합니다.
SNA는 세 개의 공개 패키지와 하나의 테스트 헬퍼 패키지로 배포됩니다.
| 패키지 | 역할 |
|---|---|
@sna-sdk/core | HTTP/WS 서버, session manager, runtime adapter, 정규화 히스토리 |
@sna-sdk/client | 프레임워크 비종속 TypeScript 클라이언트 (HTTP + WS) |
@sna-sdk/react | React 바인딩 (훅, 드롭인 채팅 UI) |
@sna-sdk/testing | Mock Anthropic API + 격리된 Claude Code 테스트 환경 |
각 패키지의 공개 API는 SDK 레퍼런스에 정리되어 있습니다.
버전 안정성
SNA는 아직 0.x.x 버전대입니다. SDK가 안정화되는 동안 minor 버전 사이에도
공개 API나 런타임 동작이 바뀔 수 있습니다. 앱에서 사용할 때는 floating
range에 의존하지 말고 package.json에 정확한 버전을 고정하십시오.
버그를 발견했거나 요청 사항이 있으면 GitHub 이슈로 남겨주십시오.
앱에 추가하기
pnpm add @sna-sdk/core@0.17.2 @sna-sdk/client@0.17.2
# React 앱이라면
pnpm add @sna-sdk/react@0.17.2모노레포에서 작업하기
이 저장소는 pnpm 워크스페이스를 사용합니다. 저장소를 clone한 뒤 의존성을 설치하고 빌드합니다.
git clone https://github.com/neuradex/sna.git
cd sna
pnpm install
pnpm -r buildpnpm -r build는 모든 패키지를 토폴로지 순서대로 컴파일합니다. 빌드가
끝나면 pnpm --filter @sna-sdk/core test를 실행하거나 standalone 서버를
실행할 준비가 됩니다.
런타임 CLI 확인
SNA는 에이전트 바이너리가 PATH에 있다고 가정합니다. 다음 명령으로 확인합니다.
claude --version
codex --version
opencode --version비표준 위치에 있다면 SNA를 시작할 때 경로를 등록합니다.
await startSnaServer({
appId: "my-app",
dbPath: "./data/sna.db",
runtimePaths: {
claudeCode: "/opt/homebrew/bin/claude",
codex: "/opt/homebrew/bin/codex",
opencode: "/opt/homebrew/bin/opencode",
},
});하위 레벨 환경 변수는 SNA_CLAUDE_COMMAND, SNA_CODEX_COMMAND,
SNA_OPENCODE_COMMAND, SNA_GROK_COMMAND, SNA_CURSOR_COMMAND입니다.
임베디드 앱에서는 서버 시작 설정 안에 경로가 함께 남는 runtimePaths를
우선 사용하십시오.