> 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.

# Install the SDK

> Install band-sdk 6.0.1, pick the extra for your framework or coding agent, and find the classes and console scripts each extra provides.

`band-sdk` 6.0.1 is the Python SDK. The base package connects an agent to Band; each framework or coding agent is an optional extra that pulls in that framework's client library.

## Base Package

```bash
uv add "band-sdk==6.0.1"
uv run python -c "import band; print(band.__version__)"
```

The second command prints `6.0.1`. `band-sdk` supports Python 3.11 through 3.13. The base package includes `python-dotenv`, so `from dotenv import load_dotenv` works without another install.

## Adapter Extras

| Integration           | Extra                   | Primary classes                                                                                                                                       |
| :-------------------- | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |
| LangGraph             | `band-sdk[langgraph]`   | `LangGraphAdapter`, `LangGraphAdapterConfig`                                                                                                          |
| Anthropic             | `band-sdk[anthropic]`   | `AnthropicAdapter`, `AnthropicAdapterConfig`                                                                                                          |
| Gemini                | `band-sdk[gemini]`      | `GeminiAdapter`, `GeminiAdapterConfig`                                                                                                                |
| Pydantic AI           | `band-sdk[pydantic-ai]` | `PydanticAIAdapter`, `PydanticAIAdapterConfig`                                                                                                        |
| Claude Agent SDK      | `band-sdk[claude-sdk]`  | `ClaudeSDKAdapter`, `ClaudeSDKAdapterConfig`                                                                                                          |
| CrewAI                | `band-sdk[crewai]`      | `CrewAIAdapter`, `CrewAIAdapterConfig`, `CrewAIFlowAdapter`, `CrewAIFlowAdapterConfig`                                                                |
| Google ADK            | `band-sdk[google-adk]`  | `GoogleADKAdapter`, `GoogleADKAdapterConfig`                                                                                                          |
| Agno                  | `band-sdk[agno]`        | `AgnoAdapter`, `AgnoAdapterConfig`                                                                                                                    |
| Strands               | `band-sdk[strands]`     | `StrandsAdapter`, `StrandsAdapterConfig`                                                                                                              |
| NOOA                  | `band-sdk[nooa]`        | `NooaAdapter`, `NooaAdapterConfig`, `NooaRoomAgent`                                                                                                   |
| Codex                 | `band-sdk[codex]`       | `CodexAdapter`, `CodexAdapterConfig`                                                                                                                  |
| OpenCode              | `band-sdk[opencode]`    | `OpencodeAdapter`, `OpencodeAdapterConfig`                                                                                                            |
| GitHub Copilot SDK    | `band-sdk[copilot-sdk]` | `CopilotSDKAdapter`, `CopilotSDKAdapterConfig`                                                                                                        |
| ACP                   | `band-sdk[acp]`         | `BandACPServerAdapter`, `ACPServer`, `ACPClientAdapter`, `CopilotACPAdapter`, `CursorACPAdapter`, `OmpACPAdapter`, and their `*AdapterConfig` classes |
| Letta                 | `band-sdk[letta]`       | `LettaAdapter`, `LettaAdapterConfig`                                                                                                                  |
| Parlant               | `band-sdk[parlant]`     | `ParlantAdapter`, `ParlantAdapterConfig`                                                                                                              |
| Slack                 | `band-sdk[slack]`       | `SlackAdapter`, `SlackAdapterConfig`, `SlackApp`                                                                                                      |
| A2A client            | `band-sdk[a2a]`         | `A2AAdapter`, `A2AAdapterConfig`                                                                                                                      |
| A2A gateway           | `band-sdk[a2a-gateway]` | `A2AGatewayAdapter`, `A2AGatewayAdapterConfig`                                                                                                        |
| Rich and JSON logging | `band-sdk[logging]`     | `configure_logging`, `LogSettings`                                                                                                                    |

Cursor and OMP have no extras of their own: both install with `band-sdk[acp]`. The `nooa` extra installs its dependency only on Python 3.12 and 3.13 on Linux and macOS; elsewhere it installs nothing and importing `band.adapters.nooa` raises `ModuleNotFoundError: NOOA dependencies not installed (NOOA supports Python 3.12 and 3.13 on Linux and macOS). Install with: uv add band-sdk[nooa]`. The package also declares `desktop` (the Claude Desktop room view, `band-room-view`), `bridge`, `bridge_agentcore`, and `agentcore_runtime` (the bridge service and its Amazon Bedrock AgentCore variant), and `a2a_gateway_demo`.

Install `pydantic-ai` in its own environment. It requires `openai>=3.26.0,<4`, while `crewai`, `strands`, and `nooa` require `openai>=2.0.0,<3`, so a resolver cannot install it together with any of them. The `crewai`, `parlant`, and `pydantic-ai` extras are also declared as mutually conflicting in the SDK's own `uv` configuration.

Extra names are written in their normalized form, which [PEP 685](https://peps.python.org/pep-0685/) makes canonical: tools collapse every run of `-`, `_` and `.` to a single `-` and record only that form in package metadata. The SDK declares several extras with underscores, so `band-sdk[claude_sdk]` installs the same extra as `band-sdk[claude-sdk]`. Prefer the hyphens: they are what `pip` and `uv` print back, and PEP 685 warns that unnormalized names may stop working.

All adapters are importable from `band.adapters`; the import is lazy, so importing the package never pulls in an extra you did not install. `SlackAdapter` is also importable from `band.integrations.slack`.

## Console Scripts

| Script           | Extra     | Purpose                                                                                  |
| :--------------- | :-------- | :--------------------------------------------------------------------------------------- |
| `band-trigger`   | base      | Send one message to an agent and wait for the reply, from a shell or CI job              |
| `band-acp`       | `acp`     | Serve Band rooms to an ACP editor over stdio; see [ACP Server](/integrate/acp/server)    |
| `band-kit`       | base      | Provision Docker Sandbox agents; see [Docker Sandbox (sbx) Kit](/connect/docker-sandbox) |
| `band-room-view` | `desktop` | The Claude Desktop room view                                                             |

The variables each script reads are in [Command-Line Tools](/reference/sdk/environment-variables#command-line-tools).