---
title: SDK
description: TypeScript と Python の SDK。
---

このドキュメントに出てくる `curl` の呼び出しは、どれも自分で送れる普通の HTTP リクエストです。SDK は同じ Core API を、手間のかかる部分を実装済みの形で提供します。最後に受け取ったシーケンス番号から再開するストリーム、Agent が皆さんのコードに回した Tool の呼び出しに応答するクライアント、すべての Event の型がそろっています。

<Panel title="Function SDK とは別物です">
  ここで紹介する SDK は、プロダクトから Subako を呼び出すためのものです。Subako の中で動く Tool を書く場合は、[Subako Functions](/ja/functions) と、その Rust・Go・TypeScript 向け SDK を参照してください。
</Panel>

**[TypeScript](https://typescript-sdk-docs.subako.ai/)**

`@subako-ai/sdk` のほか、React バインディングや、Agent が操作するページ向けの既製の Tool があります。

**[Python](https://pypi.org/project/subako/)**

`subako`: バックエンド、ジョブ、ワーカー向けの非同期クライアントです。

## TypeScript

```bash
npm install @subako-ai/sdk
```

サーバーでは Node 22 以降が必要です。同じパッケージがブラウザーでも動作します。ESM 専用で、ランタイムの依存関係はありません。Subako のコンソールもこの SDK で作られています。

クライアントは、使う Credential によって 2 つに分かれています。API key を持って Session を作成するバックエンド用のクライアントと、[Session token](/ja/build/sessions-api#session-token) を持って Session 内の操作をすべて行うブラウザー用のクライアントです。それぞれが呼び出せるルートは型で決まっているため、API key がうっかりページのコードに入り込むことはありません。

Session の接続は、ログを読み込んでストリームを開き、その両方を最新に保ちます。接続が切れても自動で再接続し、中断したところから再開します。レンダラーには 1 つのイミュータブルなスナップショットが渡され、そこに Event、トランスクリプト、対応を待っている承認やフォームがまとまっています。

| パッケージ | 内容 |
| --- | --- |
| `@subako-ai/sdk` | クライアント本体。Session、ストリーミング、Tool、エラー、ページネーション。 |
| `@subako-ai/react` | Session の接続を扱う Provider と hook。 |
| `@subako-ai/tools` | ページを操作する既製の Tool。フォームの入力と送信、ページ遷移。 |
| `@subako-ai/assistant-ui` | Session の上でそのまま動くチャット、または独自のスレッドに組み込むためのランタイム。 |
| `@subako-ai/react-hook-form` | react-hook-form をフォーム Tool の仕様として使います。 |
| `@subako-ai/react-router` | React Router をナビゲーション Tool の仕様として使います。 |
| `@subako-ai/tanstack-router` | TanStack Router をナビゲーション Tool の仕様として使います。 |

すべてのパッケージは Apache-2.0 ライセンスで、バージョンはそろえて管理されています。[TypeScript SDK のドキュメント](https://typescript-sdk-docs.subako.ai/) には、クイックスタート、リファレンス、バックエンドがブラウザー向けにトークンを発行する実例があります。

## Python

**uv**

```bash
uv add subako
```

**pip**

```bash
pip install subako
```

Python 3.12 以降が必要です。クライアントは非同期専用で、バックエンド、ジョブ、ワーカーでの利用を想定しています。

機能の範囲は TypeScript SDK と同じです。リソースごとの名前空間、型付きのエラー、カーソルによるページネーション、自動で再接続する Session の接続、プロセス内の関数を Tool として Session に提供する Tool クライアントがあります。二重に実行したくない呼び出しは冪等性キーで保護されます。[PyPI の `subako`](https://pypi.org/project/subako/) に、インストール方法と、バックエンドとフロントエンドを組み合わせた例があります。
