Someone turned an ESP32 on a breadboard into a voice AI agent that can drive servos and flip GPIO pins.
32.6k stars, MIT licensed.
78/xiaozhi-esp32 t.co
29 views
Repo and the custom board / build guide (idf.py and build.py steps are from here):
78/xiaozhi-esp32
github.com/78/xiaozhi-esp32/blob/main/docs/custom…
12 views
XiaoZhi ESP32: An MCP-based chatbot (31k stars)
What it does
All text below is quoted directly from the project README.
>As a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabilities of large models like Qwen / DeepSeek, and achieves multi-terminal control via the MCP protocol.
Features Implemented:
- Wi-Fi, wired Ethernet, USB RNDIS, and ML307/EC801E or NT26 Cat.1 4G networking; supported boards can switch between Wi-Fi and 4G
- Offline voice wake-up with ESP-SR, including customizable wake words
- Two communication transports: WebSocket and MQTT + UDP
- Opus audio streaming with conventional streaming ASR + LLM + TTS pipelines and Realtime end-to-end voice models; AEC-capable hardware supports realtime full-duplex interaction
- Speaker recognition, identifies the current speaker 3D Speaker
- OLED / LCD displays with emoji and rich expression support, plus camera vision input on supported boards
- 39 interface languages, with localized voice prompts where available and English fallback
- Device-side MCP for device control (Speaker, LED, Servo, GPIO, etc.)
>For beginners, it is recommended to use the firmware that can be flashed without setting up a development environment.
Repository
78/xiaozhi-esp32
Repository stats
|Metric|Value|
|:-|:-|
|Stars|31,313|
|Forks|7,318|
|Last release|v2.5.2 (2026-10-11)|
|Languages|C++ 73.6%, C 14.9%, Python 10.1%|
|Contributors|173|
|AI contributor accounts (Claude / Codex / Cursor / Copilot)|cursoragent: 10, Copilot: 11, claude: 11|
|AI co-authored commits|Claude: 11, Codex: 2, Cursor: 10, Copilot: 12|
Main contributor
|Field|Value|
|:-|:-|
|Name|Xiaoxia|
|GitHub|@78|
|Commits to this repo|519 (top contributor)|
|Company / Location|Earth|
|Website|xiaoxia.org|
|Followers|2424|
|Public repos|40|
|On GitHub since|2013-05-21|
-------------------------------------------------------------------------------------------------------
Discover the best GitHub repos without the endless scrolling.
Get top repos organized by category (AI, DevOps, Databases & more), plus key takeaways from developers' most useful comments - all in one free, twice-weekly newsletter.
👉 Get the best repos & community insights - Free
2 points
wake wordを決める。声で話す。MCPでデバイスを操作する。
XiaozhiはESP32向け音声チャットボット。offline wake-upと、Speaker・LED・Servoなどを扱うdevice-side MCPを備えます。ESP-IDF 6.0.1以降が必要です。
78/xiaozhi-esp32
1 like · 40 views
xiaozhi-esp32 GitHub Overview: Local MCP Control on ESP32-S3
xiaozhi-esp32 by 78: 78/xiaozhi-esp32
This overview follows a narrated local-control scenario for xiaozhi-esp32 on an ESP32-S3: mapping a lamp GPIO, preparing ESP-IDF, redirecting the WebSocket endpoint to a synthetic local server, flashing the firmware, provisioning Wi-Fi, and using MCP with JSON-RPC to turn on an onboard LED. It also covers the v2 partition layout, PSRAM mode matching, NVS-backed WebSocket identity, and the memory tradeoffs of persistent MCP connections. The sequence is conceptual; the accompanying visuals do not provide fully legible, hands-on setup screens for every operation. Check the repository and your board documentation before changing hardware or firmware settings.
TimeStamps:
0:00 Cloud dependence and the local-control goal
0:58 Board prerequisites and GPIO mapping
1:31 ESP-IDF target selection and clean builds
2:09 WebSocket routing and PSRAM modes
3:20 Build, flash, monitor, and v2 partitions
3:49 Wi-Fi provisioning
4:22 WebSocket authentication and MCP discovery
4:51 JSON-RPC LED actuation
5:18 Verifying the local control loop
6:02 MCP memory cost and MQTT fallback
🔧 GPIO mapping, ESP-IDF target selection, and clean builds
🧠 Local WebSocket routing, PSRAM modes, and v2 assets
📡 Wi-Fi provisioning and NVS-backed authentication
💡 MCP JSON-RPC turns an ESP32-S3 LED on
Use this overview to weigh xiaozhi-esp32 for an ESP32-S3 local-control build: the key tradeoff is flexible MCP hardware actions against flash and memory pressure from persistent WebSockets and JSON-RPC. For constrained boards, the video notes MQTT as the lighter fallback. Verify the board profile, PSRAM mode, partition table, and firmware revision before deployment.
#xiaozhiESP32 #ESP32S3 #ModelContextProtocol
[de-DE] YNAS ynp_56c36f280bdbc147 Cinematic
Privater automatisierter Staging-Upload. Paketidentität: ynp_56c36f280bdbc147; Ausgabe: cinematic.
[es-US] YNAS ynp_56c36f280bdbc147 cinemático
Carga de entorno de prueba de automatización privada. Identidad del paquete: ynp_56c36f280bdbc147; salida: cinematográfica.
[fr-FR] YNAS ynp_56c36f280bdbc147 cinématique
Téléchargement de la zone de test d'automatisation privée. Identifiant du package : ynp_56c36f280bdbc147 ; sortie : cinématique.
[hi] YNAS ynp_56c36f280bdbc147 सिनेमाई
निजी स्वचालन स्टेजिंग अपलोड। पैकेज पहचान: ynp_56c36f280bdbc147; आउटपुट: सिनेमाई।
[id] YNAS ynp_56c36f280bdbc147 sinematik
Unggahan staging otomatisasi pribadi. Identitas paket: ynp_56c36f280bdbc147; output: sinematik.
[it] YNAS ynp_56c36f280bdbc147 cinematic
Caricamento di automazione privata. Identità del pacchetto: ynp_56c36f280bdbc147; output: cinematico.
[pt-BR] YNAS ynp_56c36f280bdbc147 cinematográfico
Upload de teste de automação privada. Identidade do pacote: ynp_56c36f280bdbc147; saída: cinemática.
3 likes · 774 views
All credit to the creator, 78 (Xiage), who open-sourced the whole thing. It works on 100+ boards. Go star it: 78/xiaozhi-esp32
20 views
@realchendahuang 建议每个下单的都先玩一遍小智 78/xiaozhi-esp32%EF%BC%8C30k star 的开源 AI 语音助手固件,支持一百多种开发板,仓库里有免搭开发环境的刷机指南,烧完就能跟板子对话,当第一个案例发挺合适
7 likes · 3 reposts · 1,164 views
Mentions
Someone turned an ESP32 on a breadboard into a voice AI agent that can drive servos and flip GPIO pins. 32.6k stars, MIT licensed. 78/xiaozhi-esp32 t.co
Repo and the custom board / build guide (idf.py and build.py steps are from here): 78/xiaozhi-esp32 github.com/78/xiaozhi-esp32/blob/main/docs/custom…
XiaoZhi ESP32: An MCP-based chatbot (31k stars) What it does All text below is quoted directly from the project README. >As a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabilities of large models like Qwen / DeepSeek, and achieves multi-terminal control via the MCP protocol. Features Implemented: - Wi-Fi, wired Ethernet, USB RNDIS, and ML307/EC801E or NT26 Cat.1 4G networking; supported boards can switch between Wi-Fi and 4G - Offline voice wake-up with ESP-SR, including customizable wake words - Two communication transports: WebSocket and MQTT + UDP - Opus audio streaming with conventional streaming ASR + LLM + TTS pipelines and Realtime end-to-end voice models; AEC-capable hardware supports realtime full-duplex interaction - Speaker recognition, identifies the current speaker 3D Speaker - OLED / LCD displays with emoji and rich expression support, plus camera vision input on supported boards - 39 interface languages, with localized voice prompts where available and English fallback - Device-side MCP for device control (Speaker, LED, Servo, GPIO, etc.) >For beginners, it is recommended to use the firmware that can be flashed without setting up a development environment. Repository 78/xiaozhi-esp32 Repository stats |Metric|Value| |:-|:-| |Stars|31,313| |Forks|7,318| |Last release|v2.5.2 (2026-10-11)| |Languages|C++ 73.6%, C 14.9%, Python 10.1%| |Contributors|173| |AI contributor accounts (Claude / Codex / Cursor / Copilot)|cursoragent: 10, Copilot: 11, claude: 11| |AI co-authored commits|Claude: 11, Codex: 2, Cursor: 10, Copilot: 12| Main contributor |Field|Value| |:-|:-| |Name|Xiaoxia| |GitHub|@78| |Commits to this repo|519 (top contributor)| |Company / Location|Earth| |Website|xiaoxia.org| |Followers|2424| |Public repos|40| |On GitHub since|2013-05-21| ------------------------------------------------------------------------------------------------------- Discover the best GitHub repos without the endless scrolling. Get top repos organized by category (AI, DevOps, Databases & more), plus key takeaways from developers' most useful comments - all in one free, twice-weekly newsletter. 👉 Get the best repos & community insights - Free
wake wordを決める。声で話す。MCPでデバイスを操作する。 XiaozhiはESP32向け音声チャットボット。offline wake-upと、Speaker・LED・Servoなどを扱うdevice-side MCPを備えます。ESP-IDF 6.0.1以降が必要です。 78/xiaozhi-esp32
xiaozhi-esp32 GitHub Overview: Local MCP Control on ESP32-S3 xiaozhi-esp32 by 78: 78/xiaozhi-esp32 This overview follows a narrated local-control scenario for xiaozhi-esp32 on an ESP32-S3: mapping a lamp GPIO, preparing ESP-IDF, redirecting the WebSocket endpoint to a synthetic local server, flashing the firmware, provisioning Wi-Fi, and using MCP with JSON-RPC to turn on an onboard LED. It also covers the v2 partition layout, PSRAM mode matching, NVS-backed WebSocket identity, and the memory tradeoffs of persistent MCP connections. The sequence is conceptual; the accompanying visuals do not provide fully legible, hands-on setup screens for every operation. Check the repository and your board documentation before changing hardware or firmware settings. TimeStamps: 0:00 Cloud dependence and the local-control goal 0:58 Board prerequisites and GPIO mapping 1:31 ESP-IDF target selection and clean builds 2:09 WebSocket routing and PSRAM modes 3:20 Build, flash, monitor, and v2 partitions 3:49 Wi-Fi provisioning 4:22 WebSocket authentication and MCP discovery 4:51 JSON-RPC LED actuation 5:18 Verifying the local control loop 6:02 MCP memory cost and MQTT fallback 🔧 GPIO mapping, ESP-IDF target selection, and clean builds 🧠 Local WebSocket routing, PSRAM modes, and v2 assets 📡 Wi-Fi provisioning and NVS-backed authentication 💡 MCP JSON-RPC turns an ESP32-S3 LED on Use this overview to weigh xiaozhi-esp32 for an ESP32-S3 local-control build: the key tradeoff is flexible MCP hardware actions against flash and memory pressure from persistent WebSockets and JSON-RPC. For constrained boards, the video notes MQTT as the lighter fallback. Verify the board profile, PSRAM mode, partition table, and firmware revision before deployment. #xiaozhiESP32 #ESP32S3 #ModelContextProtocol [de-DE] YNAS ynp_56c36f280bdbc147 Cinematic Privater automatisierter Staging-Upload. Paketidentität: ynp_56c36f280bdbc147; Ausgabe: cinematic. [es-US] YNAS ynp_56c36f280bdbc147 cinemático Carga de entorno de prueba de automatización privada. Identidad del paquete: ynp_56c36f280bdbc147; salida: cinematográfica. [fr-FR] YNAS ynp_56c36f280bdbc147 cinématique Téléchargement de la zone de test d'automatisation privée. Identifiant du package : ynp_56c36f280bdbc147 ; sortie : cinématique. [hi] YNAS ynp_56c36f280bdbc147 सिनेमाई निजी स्वचालन स्टेजिंग अपलोड। पैकेज पहचान: ynp_56c36f280bdbc147; आउटपुट: सिनेमाई। [id] YNAS ynp_56c36f280bdbc147 sinematik Unggahan staging otomatisasi pribadi. Identitas paket: ynp_56c36f280bdbc147; output: sinematik. [it] YNAS ynp_56c36f280bdbc147 cinematic Caricamento di automazione privata. Identità del pacchetto: ynp_56c36f280bdbc147; output: cinematico. [pt-BR] YNAS ynp_56c36f280bdbc147 cinematográfico Upload de teste de automação privada. Identidade do pacote: ynp_56c36f280bdbc147; saída: cinemática.
All credit to the creator, 78 (Xiage), who open-sourced the whole thing. It works on 100+ boards. Go star it: 78/xiaozhi-esp32
@realchendahuang 建议每个下单的都先玩一遍小智 78/xiaozhi-esp32%EF%BC%8C30k star 的开源 AI 语音助手固件,支持一百多种开发板,仓库里有免搭开发环境的刷机指南,烧完就能跟板子对话,当第一个案例发挺合适