Skip to main content

Step 1: Clone the repository

git clone git@github.com:akdeb/ElatoAI.git
cd ElatoAI
If you’re on Windows, we recommend using WSL2.
  1. Install WSL2 and Ubuntu.
  2. Open Ubuntu (WSL).
git clone git@github.com:akdeb/ElatoAI.git
cd ElatoAI

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.
brew install supabase/tap/supabase
supabase start
Install the Supabase CLI:
curl -fsSL https://supabase.com/install.sh | sh
Then start Supabase from the repo root:
supabase start
Run everything inside WSL2, with Docker Desktop installed on Windows.
curl -fsSL https://supabase.com/install.sh | sh
supabase start

Step 3: Set up your NextJS frontend

From the frontend-nextjs directory:
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:
npm run dev
To Login, use these credentials for local development:
  • Email: admin@elatoai.com
  • Password: admin

Choose Edge Server option

  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
    • Register your device with your ESP32-S3’s MAC Address in the Settings page
  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.

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:
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:
deno run -A --env-file=.env main.ts

Step 5: Set up your firmware dev environment

https://mintcdn.com/elatoai/dDwN45O4jgmpjU7h/images/pio.png?fit=max&auto=format&n=dDwN45O4jgmpjU7h&q=85&s=039c773d76c9dac93c2ce18fe6701335

PlatformIO (recommended)

https://mintcdn.com/elatoai/dDwN45O4jgmpjU7h/images/arduino.png?fit=max&auto=format&n=dDwN45O4jgmpjU7h&q=85&s=776b7f173401ecd3749d730e08fd921a

Arduino IDE

Step 6: Setup complete!

  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.

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.

Local AI

Fully Local Home Toys are coming soon! 😊
https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/openai.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=eade10db1fcf27c21b8d06b651b65d63

OpenAI

Try out gpt-realtime multimodal models
https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/gemini.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=6971806c155ff340e218f58f299898c9

Gemini

Try Gemini Live API models
https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/grok.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=49f2d12613f54d3479adbbc5f0a0e430

Grok

You can try Grok Voice Agents on your hardware
https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/eleven-labs.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=d8f13084fd7d764b0c5d61e6512b5628

Eleven Labs

Bring your Eleven Labs Voice clones to your hardware
https://mintcdn.com/elatoai/P49a7aJjLWVn7vZF/images/hume.svg?fit=max&auto=format&n=P49a7aJjLWVn7vZF&q=85&s=801ddb527e0c4eb719529a63df05fa1c

Hume AI

Try Hume AI’s expressive EVI-4 on your hardware
Need help? Join our Discord community and to any questions and share ideas.