> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.band.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.band.ai/_mcp/server.

# TypeScript Installation

Reference for `@band-ai/sdk` 1.0.0.

## Installation

**`npm`**

```bash title="npm" for="npm"
npm install @band-ai/sdk@1.0.0
```

**`pnpm`**

```bash title="pnpm" for="pnpm"
pnpm add @band-ai/sdk@1.0.0
```

**`yarn`**

```bash title="yarn" for="yarn"
yarn add @band-ai/sdk@1.0.0
```

| Requirement        | Value                                                                                                                                                          |
| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Node.js            | 22.12 or later (`engines.node` is `>=22.12`)                                                                                                                   |
| Module formats     | ESM (`import`) and CommonJS (`require`), with type declarations for both                                                                                       |
| Framework packages | Optional peer dependencies, installed by you. See [Adapter Reference](/sdks/typescript/adapters/overview#adapter-reference) for the package each adapter needs |

An adapter whose peer package is missing fails when it first loads the package. Most adapters throw `UnsupportedFeatureError` naming the package and the install command, for example `ClaudeSDKAdapter requires optional dependency "@anthropic-ai/claude-agent-sdk". Install it with "pnpm add @anthropic-ai/claude-agent-sdk". (...)`, where `(...)` is Node's original error. `GoogleADKAdapter`, `OpencodeAdapter` and `A2AGatewayAdapter` throw a plain `Error` naming the package instead. Importing `@band-ai/sdk/mcp/claude` or `@band-ai/sdk/linear` without its peer fails at import time with Node's `ERR_MODULE_NOT_FOUND`.

### Entry points

| Import                    | Contents                                                                                                                                                   |
| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@band-ai/sdk`            | `Agent`, the adapters, the config loaders, `SimpleAdapter`, `TOOL_MODELS`, and core types                                                                  |
| `@band-ai/sdk/adapters`   | Every adapter class, plus `ToolCallingAdapter`, the per-provider tool-calling models, `ACPServer`, `BandACPServerAdapter`, and `CodexAppServerStdioClient` |
| `@band-ai/sdk/config`     | `loadAgentConfig`, `loadAgentConfigs`, `loadAgentConfigFromEnv`                                                                                            |
| `@band-ai/sdk/core`       | `SimpleAdapter`, the `Logger` implementations, and the error classes                                                                                       |
| `@band-ai/sdk/mcp`        | Band tools as an MCP server over stdio, SSE or HTTP, without the Claude Agent SDK. Needs `@modelcontextprotocol/sdk`, plus `express` for SSE and HTTP      |
| `@band-ai/sdk/mcp/claude` | `createBandSdkMcpServer`, an in-process MCP server for `@anthropic-ai/claude-agent-sdk`, which it needs installed                                          |
| `@band-ai/sdk/linear`     | The Linear integration: tools, webhook handler, bridge runtime, session store                                                                              |
| `@band-ai/sdk/testing`    | `FakeAgentTools` and `StubRestApi` for unit tests                                                                                                          |

`@band-ai/sdk/rest`, `@band-ai/sdk/runtime` and `@band-ai/sdk/converters` also ship. They expose the REST facade, runtime internals and per-framework history converters that the adapters use; treat them as advanced, since they change more often than the entry points above.