---
title: "Livekit Server"
description: "A robust, feature-rich voice server for your 01"
---

## Overview

[Livekit](https://livekit.io/) is a powerful, open-source WebRTC server and client SDK that enables real-time audio communication. It's designed for applications that require robust, scalable real-time features.

### Key Features

- Scalable architecture
- Extensive documentation and community support
- SDKs for various languages and platforms (web, mobile, desktop)

## Getting Started

### Prerequisites

Make sure you have navigated to the `software` directory before proceeding.

### Installing Livekit

Before setting up the environment, you need to install Livekit. Follow the instructions for your operating system:

- **macOS**:

  ```bash
  brew install livekit
  ```

- **Linux**:

  ```bash
  curl -sSL https://get.livekit.io | bash
  ```

- **Windows**:
  [View the Windows install instructions here.](/server/windows-livekit)

### Environment Setup

1. Create a `.env` file in the `/software` directory with the following content:

```env
ELEVEN_API_KEY=your_eleven_labs_api_key
DEEPGRAM_API_KEY=your_deepgram_api_key
NGROK_AUTHTOKEN=your_ngrok_auth_token
ANTHROPIC_API_KEY=your_anthropic_api_key
```

Replace the placeholders with your actual API keys.

<CardGroup cols={3}>
  <Card title="Eleven Labs" icon="microphone" href="https://beta.elevenlabs.io">
    Get your Eleven Labs API key for text-to-speech
  </Card>
  <Card
    title="Deepgram"
    icon="waveform-lines"
    href="https://console.deepgram.com"
  >
    Obtain your Deepgram API key for speech recognition
  </Card>
  <Card title="Ngrok" icon="wifi" href="https://dashboard.ngrok.com">
    Sign up for Ngrok and get your auth token
  </Card>
</CardGroup>

### Starting the Server

**To use the mobile app, run the following command**

```bash
poetry run 01 --server livekit --qr --expose
```

To customize the profile, append the --profile flag with the profile name: 

```bash
poetry run 01 --server livekit --qr --expose --profile fast
```

To start the Livekit server, run the following command:

```bash
poetry run 01 --server livekit
```

To generate a QR code for scanning

```bash
poetry run 01 --server livekit --qr
```

To expose over the internet via ngrok

```bash
poetry run 01 --server livekit --expose
```

<Note>
  Livekit server now supports Local STT and TTS for fully local pipeline. 
  Setup instructions are provided in the [configuring your 01](/server/configure#local-tts-and-stt-with-livekit) section.

</Note>

## Livekit vs. Light Server

- **Livekit Server**: Designed for devices with higher processing power, such as phones, web browsers, and more capable hardware. It offers a full range of features and robust performance.

- **Light Server**: We have another lightweight server called the Light server, specifically designed for ESP32 devices. It's optimized for low-power, constrained environments.

## SDK Integration

Livekit provides SDKs for various programming languages and platforms, allowing you to easily integrate real-time communication features into your applications.

### Available SDKs

- JavaScript/TypeScript
- React
- React Native
- iOS (Swift)
- Android (Kotlin)
- Flutter
- Unity

<Card
  title="Explore Livekit SDKs"
  icon="code"
  href="https://docs.livekit.io/client-sdk-js/"
>
  Find documentation and integration guides for all Livekit SDKs.
</Card>