perplexity-cli
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
Realtime Voice AI with 100+ Models on Arduino ESP32 with Secure Websockets and Edge Functions for AI Toys, Companions,…
English | 中文
Realtime AI Speech powered by 100+ Voice AI models on ESP32, with Secure WebSockets & Edge Functions for >20-minute uninterrupted conversations globally.
Video links: OpenAI Demo | Gemini Demo | Eleven Labs Demo | Hume AI EVI-4 Demo
Select from 100+ models from the list above and use the FastAPI server to create your own voice pipeline. Check out the FastAPI server for more details.
Control your ESP32 AI device from your phone with the ElatoAI webapp.
ElatoAI consists of three main components:
Next.js hosted on Vercel) - to create and talk to your AI agents and 'send' it to your ESP32 deviceDeno Edge or Cloudflare Workers) - to handle the websocket connections from the ESP32 device and the LLM Provider API callsPlatformIO/Arduino) - to receive the websocket connections from the Edge Server Functions and send audio to the LLM Provider via the Deno edge server or Cloudflare Durable Objects.| Component | Technology Used |
|---|---|
| Frontend | Next.js, Vercel |
| Backend | Supabase DB |
| Edge Functions | Deno Edge or Cloudflare Workers |
| IoT Client | PlatformIO, Arduino Framework, ESP32-S3 |
| Audio Codec | Opus |
| Communication | Secure WebSockets |
| Libraries | ArduinoJson, WebSockets, AsyncWebServer, ESP32_Button, Arduino Audio Tools, ArduinoLibOpus |
flowchart TD
subgraph UserLayer
UserInput[User Speech Input]
UserOutput[AI Generated Speech Output]
end
UserInput --> ESP32
ESP32[ESP32 Device] -->|WebSocket| Edge[Deno Edge / Cloudflare Workers]
Edge -->|OpenAI API| OpenAI[OpenAI Realtime API]
Edge -->|Gemini API| Gemini[Gemini Live API]
Edge -->|xAI API| xAI[xAI Grok Voice Agent API]
Edge -->|ElevenLabs API| ElevenLabs[ElevenLabs AI Agents]
Edge -->|Hume API| Hume[Hume AI EVI4]
OpenAI --> Edge
Gemini --> Edge
xAI --> Edge
ElevenLabs --> Edge
Hume --> Edge
Edge -->|WebSocket| ESP32
ESP32 --> UserOutput
Loading
graph TD repo[ElatoAI] repo --> frontend[Frontend Vercel NextJS] repo --> server[Deno Edge Function / Cloudflare Workers] repo --> esp32[ESP32 Arduino Client] server --> supabase[Supabase DB] frontend --> supabase esp32 --> websockets[Secure WebSockets] esp32 --> opus[Opus Codec] esp32 --> audio_tools[arduino-audio-tools] esp32 --> libopus[arduino-libopus] esp32 --> ESPAsyncWebServer[ESPAsyncWebServer]Loading
We value your contributions! Here are some ideas to get you started:
This project is licensed under the MIT License - see the LICENSE file for details.
Check out our hardware offerings at ElatoAI Products. If you find this project interesting or useful, support us by starring this project on GitHub. ⭐
more like this
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering educa…
search projects, people, and tags