SNA

インストール

アプリに SNA を追加し、必要なランタイム CLI を確認します。

SNA は 3 つの公開パッケージと 1 つのテストヘルパーパッケージとして 配布されています。

パッケージ役割
@sna-sdk/coreHTTP/WS サーバ、session manager、runtime adapter、正規化履歴
@sna-sdk/clientフレームワーク非依存の TypeScript クライアント (HTTP + WS)
@sna-sdk/reactReact バインディング (フック、ドロップイン chat UI)
@sna-sdk/testingMock 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 build

pnpm -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_COMMANDSNA_CODEX_COMMANDSNA_OPENCODE_COMMANDSNA_GROK_COMMANDSNA_CURSOR_COMMAND です。 組み込みアプリでは、サーバー起動設定と同じ場所にパスを残せる runtimePaths を優先してください。

目次