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

# Quickstart

> Start building awesome voice AI experiences in minutes 🚀

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/bXrNRpGOJWw" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

### Step 1: Clone the repository

<AccordionGroup>
  <Accordion title="macOS / Linux">
    ```bash theme={null}
    git clone git@github.com:akdeb/ElatoAI.git
    cd ElatoAI
    ```
  </Accordion>

  <Accordion title="Windows">
    If you're on Windows, we recommend using **WSL2**.

    1. Install WSL2 and Ubuntu.
    2. Open **Ubuntu** (WSL).

    ```bash theme={null}
    git clone git@github.com:akdeb/ElatoAI.git
    cd ElatoAI
    ```
  </Accordion>
</AccordionGroup>

### Step 2: Start Supabase (Local Backend)

We use Supabase (Postgres + Auth + Storage) to store users, devices, voices, personalities, and conversations.

Before you start:

* **Docker Desktop** must be installed and running.

<AccordionGroup>
  <Accordion title="macOS">
    ```bash theme={null}
    brew install supabase/tap/supabase
    supabase start
    ```
  </Accordion>

  <Accordion title="Linux">
    Install the Supabase CLI:

    ```bash theme={null}
    curl -fsSL https://supabase.com/install.sh | sh
    ```

    Then start Supabase from the repo root:

    ```bash theme={null}
    supabase start
    ```
  </Accordion>

  <Accordion title="Windows">
    Run everything inside **WSL2**, with Docker Desktop installed on Windows.

    ```bash theme={null}
    curl -fsSL https://supabase.com/install.sh | sh
    supabase start
    ```
  </Accordion>
</AccordionGroup>

### Step 3: Set up your NextJS frontend

From the `frontend-nextjs` directory:

```bash theme={null}
cd frontend-nextjs
npm install
cp .env.example .env.local
```

Then set the following in `.env.local`:

* `NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key>`
* `OPENAI_API_KEY=<your-openai-api-key>`

Run the local NextJS setup:

```bash theme={null}
npm run dev
```

<Callout icon="info" color="#FFC107">
  To Login, use these credentials for local development:

  * **Email**: `admin@elatoai.com`
  * **Password**: `admin`
</Callout>

### Choose Edge Server option

<Tip>
  1. **ELATO MODE (Free usage):** Got your own ESP32 DIY hardware device?
     We offer a fully hosted server for free for up to 30 minutes per month. Register your device on the settings page and it will automatically connect to our edge server.
     * Sign up on [Elato](https://elatoai.com)
     * Register your device with your ESP32-S3's MAC Address in the [Settings page](https://elatoai.com/home/settings)
  2. **DEV MODE (Local on your computer):** Alternatively, you can run your own edge server locally by following the instructions below and in the Deno server README.

  **Pro Tip:** You can adjust your mode in `firmware-arduino/Config.h`.
</Tip>

### Step 4: If you run your own Deno edge server locally

The commands below are the same on macOS, Linux, and Windows (via WSL2). From the repo root:

```bash theme={null}
cd server-deno
cp .env.example .env
```

Set your keys in `.env`:

* `SUPABASE_KEY=<your-supabase-anon-key>`
* `OPENAI_API_KEY=<your-openai-api-key>`
* `GEMINI_API_KEY=<your-gemini-api-key>`
* `XAI_API_KEY=<your-xai-api-key>`
* `ELEVENLABS_API_KEY=<your-elevenlabs-api-key>`
* `HUME_API_KEY=<your-hume-api-key>`

Run the server at port `8000`:

```bash theme={null}
deno run -A --env-file=.env main.ts
```

### Step 5: Set up your firmware dev environment

<CardGroup>
  <Card title="PlatformIO (recommended)" icon="https://mintcdn.com/elatoai/dDwN45O4jgmpjU7h/images/pio.png?fit=max&auto=format&n=dDwN45O4jgmpjU7h&q=85&s=039c773d76c9dac93c2ce18fe6701335" href="/docs/platformio" horizontal width="250" height="250" data-path="images/pio.png" />

  <Card title="Arduino IDE" icon="https://mintcdn.com/elatoai/dDwN45O4jgmpjU7h/images/arduino.png?fit=max&auto=format&n=dDwN45O4jgmpjU7h&q=85&s=776b7f173401ecd3749d730e08fd921a" href="/docs/arduino" horizontal width="1279" height="1280" data-path="images/arduino.png" />
</CardGroup>

### Step 6: Setup complete!

<Accordion icon="rocket" title="Talk to your AI">
  1. Yay! You've now setup your NextJS frontend, Deno server and firmware succesfully.
  2. If your API Keys are set and have sufficient credits, you should now be able to talk to your voice AI characters.
</Accordion>

## Try these AI models

Elato now supports 5 major model providers. Now that you're fully set up, you can plug & play these within seconds.

<CardGroup cols={3}>
  <Card title="Local AI" icon="laptop" disabled href="/docs/local">
    Fully Local Home Toys are coming soon! 😊
  </Card>

  <Card title="OpenAI" icon="https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/openai.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=eade10db1fcf27c21b8d06b651b65d63" href="/docs/models/openai" width="800" height="800" data-path="images/openai.svg">
    Try out `gpt-realtime` multimodal models
  </Card>

  <Card title="Gemini" icon="https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/gemini.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=6971806c155ff340e218f58f299898c9" href="/docs/models/gemini" width="16" height="16" data-path="images/gemini.svg">
    Try `Gemini Live API` models
  </Card>

  <Card title="Grok" icon="https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/grok.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=49f2d12613f54d3479adbbc5f0a0e430" href="/docs/models/grok" width="683" height="656" data-path="images/grok.svg">
    You can try `Grok Voice Agents` on your hardware
  </Card>

  <Card title="Eleven Labs" icon="https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/eleven-labs.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=d8f13084fd7d764b0c5d61e6512b5628" href="/docs/models/eleven-labs" width="876" height="876" data-path="images/eleven-labs.svg">
    Bring your Eleven Labs Voice clones to your hardware
  </Card>

  <Card title="Hume AI" icon="https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/hume.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=801ddb527e0c4eb719529a63df05fa1c" href="/docs/models/hume" width="1200" height="1200" data-path="images/hume.svg">
    Try Hume AI's expressive EVI-4 on your hardware
  </Card>
</CardGroup>

<Note>
  **Need help?** Join our [Discord](https://discord.gg/KJWxDPBRUj) community and to any questions and share ideas.
</Note>
