インストール
アプリに SNA を追加し、必要なランタイム CLI を確認します。
SNA は 3 つの公開パッケージと 1 つのテストヘルパーパッケージとして 配布されています。
| パッケージ | 役割 |
|---|---|
@sna-sdk/core | HTTP/WS サーバ、session manager、runtime adapter、正規化履歴 |
@sna-sdk/client | フレームワーク非依存の TypeScript クライアント (HTTP + WS) |
@sna-sdk/react | React バインディング (フック、ドロップイン chat UI) |
@sna-sdk/testing | Mock Anthropic API + 隔離された Claude Code テスト環境 |
各パッケージの公開 API は SDK リファレンス にまとめています。
バージョンの安定性
SNA はまだ 0.x.x 系です。SDK が安定するまでは、minor バージョン間でも
公開 API やランタイム動作が変わる可能性があります。アプリで使う場合は、
floating range に頼らず、package.json で正確なバージョンを固定してください。
バグを見つけた場合や要望がある場合は、 GitHub Issues に残してください。
アプリへ追加する
pnpm add @sna-sdk/core@0.17.2 @sna-sdk/client@0.17.2
# React アプリの場合
pnpm add @sna-sdk/react@0.17.2モノレポで作業する
このリポジトリは pnpm workspaces を使います。リポジトリを 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 を優先してください。