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

In order to use the mobile app over the web, use both flags

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

<Note>
  Currently, our Livekit server only works with Deepgram and Eleven Labs. We are
  working to introduce all-local functionality as soon as possible. By setting
  your profile (see [Configure Your Profile](/software/configure)), you can
  still change your LLM to be a local LLM, but the `interpreter.tts` value will
  be ignored for the Livekit server.
</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>
