# Source: https://docs.pipecat.ai/server/services/serializers/introduction.md

# Source: https://docs.pipecat.ai/server/introduction.md

# Source: https://docs.pipecat.ai/server/frameworks/rtvi/introduction.md

# Source: https://docs.pipecat.ai/getting-started/introduction.md

# Source: https://docs.pipecat.ai/deployment/pipecat-cloud/introduction.md

# Source: https://docs.pipecat.ai/client/react/introduction.md

# Source: https://docs.pipecat.ai/client/react-native/introduction.md

# Source: https://docs.pipecat.ai/client/js/introduction.md

# Source: https://docs.pipecat.ai/client/ios/introduction.md

# Source: https://docs.pipecat.ai/client/introduction.md

# Source: https://docs.pipecat.ai/client/c++/introduction.md

# Source: https://docs.pipecat.ai/client/android/introduction.md

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipecat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK Introduction

> Build Android applications with Pipecat's Kotlin client library

The Pipecat Android SDK provides a Kotlin implementation for building voice and multimodal AI applications on Android. It handles:

* Real-time audio and video streaming
* Bot communication and state management
* Media device handling
* Event handling

## Installation

Add the dependency for your chosen transport to your `build.gradle` file. For example, to use the Daily transport:

```gradle  theme={null}
implementation "ai.pipecat:daily-transport:1.0.3"
```

## Example

Here's a simple example using Daily as the transport layer.

```kotlin  theme={null}
val callbacks = object : PipecatEventCallbacks() {

    override fun onBackendError(message: String) {
        Log.e(TAG, "Error from backend: $message")
    }

    // ...
}

val options = PipecatClientOptions(callbacks = callbacks)

val client: PipecatClientDaily = PipecatClient(DailyTransport(context), options)

// Kotlin coroutines:
client.startBotAndConnect(startBotParams).await()

// Or, callbacks:
client.startBotAndConnect(startBotParams).withCallback {
    // ...
}
```

## Documentation

<CardGroup cols={2}>
  <Card title="API Reference" icon="book" href="https://docs-android.rtvi.ai/">
    Complete SDK API documentation
  </Card>

  <Card title="Daily Transport" icon="network-wired" href="./transports/daily">
    WebRTC implementation using Daily
  </Card>
</CardGroup>