# SDKs

> Pick the right package for your stack, from a typed REST client to a full voice agent.

Source: https://docs.vlayers.ai/developers/sdks

Kind: Reference

VoiceLayer ships SDKs for TypeScript and Python, and every call works with plain curl too. Each SDK is generated from the same OpenAPI document as the [API reference](https://docs.vlayers.ai/reference), so it covers every operation with typed requests, responses and errors.

## Client libraries

Use a client library when your own code sends and receives messages.

| | TypeScript | Python |
|---|---|---|
| Package | `@voicelayer/api` | `voicelayer` |
| Runtime | Node.js 18 or later | Python 3.9 or later |
| Webhook check | `verifyWebhook` | `verify_webhook` |
| Event stream | `streamEvents` | `stream_events` |
| Guide | [TypeScript SDK](https://docs.vlayers.ai/developers/sdks/typescript) | [Python SDK](https://docs.vlayers.ai/developers/sdks/python) |

TypeScript:

```bash
npm install @voicelayer/api
```

Python:

```bash
pip install voicelayer
```

> Publishing soon: voicelayer is not on PyPI yet. Until it is, install it from a checkout of the VoiceLayer repository (`sdks/python/voicelayer`), as shown.

```bash
pip install ./voicelayer/sdks/python/voicelayer
```

Both clients ignore fields and enum values they do not know yet, so a new event type or error code never breaks an older client.

## Framework packages

Use a framework package when an AI agent framework should talk on your channels. Each one gives the framework the VoiceLayer channel tools over [MCP](https://docs.vlayers.ai/developers/mcp), and can also answer incoming messages with your agent.

- [Claude Agent SDK](https://docs.vlayers.ai/developers/frameworks/claude): @voicelayer/agents/claude
- [OpenAI Agents SDK](https://docs.vlayers.ai/developers/frameworks/openai): @voicelayer/agents/openai
- [Vercel AI SDK](https://docs.vlayers.ai/developers/frameworks/ai-sdk): @voicelayer/agents/ai-sdk
- [LangChain and LangGraph](https://docs.vlayers.ai/developers/frameworks/langchain): @voicelayer/agents/langchain
- [Python frameworks](https://docs.vlayers.ai/developers/frameworks/python): voicelayer-agents for Claude, OpenAI Agents and LangGraph

## Answer messages from your code

`@voicelayer/sdk/direct` runs a handler for every message in the conversations your code controls. You write `onMessage`; the runner reads the event stream, resumes after restarts, and sends your replies safely. See [Direct mode](https://docs.vlayers.ai/developers/sdks/direct).

## Voice agents

`@voicelayer/sdk` defines a voice agent in one TypeScript file: its prompt, models, tools and hooks. VoiceLayer runs the call; your worker runs your code. See [Voice agents in code](https://docs.vlayers.ai/developers/sdks/voice-agents).

```bash
npm install @voicelayer/sdk
```

## Next steps

- [Send your first message](https://docs.vlayers.ai/get-started/quickstart) in five minutes.
- [Authentication and API keys](https://docs.vlayers.ai/get-started/authentication): which key each package needs.
