πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

raullenchai / esp32-thinks

git clone https://github.com/raullenchai/esp32-thinks.git v0.2.12 Β· 1d ago

A multi-model Muse: personal AI voice assistant on ESP32 - wake word or knob, any OpenAI-compatible brain (STT/chat/TTS mix-and-match), streaming replies, out of the box. Built on muse-gadget-sdk.

β€”
stars, 24h
β€”
stars, 7 days
+236
stars, 30 days Β· #1,113
236
β˜… total
7
forks Β· 3 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageShell
LicenseMIT
Created2026-10-12 (8d ago)
Last push1d ago
Watchers5
OwnerUser

GitHub topics

Links

README excerpt
# esp32-thinks
**A multi-model Muse β€” a personal AI assistant on ESP32, talking out of the box.**
Think of it as a Muse that thinks with **your** models: say **"Hi, ESP"** (or press the knob), ask anything, and it answers **out loud** β€” streaming sentence-by-sentence while the model is still writing, in English, Chinese or Korean, on a small gadget with a mic, a speaker and a round display.
No vendor lock on the brain: **speech, transcription and chat are three independent endpoints**, each pointed at any OpenAI-compatible server β€” one provider for all three, or a different one per task. Run it bare against QuickSilver, or put the in-repo **openmuse** agent in front to give it location, weather, time and memory.
- ESP32-S3 Β· built on Meta's open-source muse-gadget-sdk Β· license notices
- Models: **OpenAI**, **QuickSilver**, a local agent, or any mix β€” presets for the common ones, fully custom for the rest
## Why
Cloud assistants rent you a brain: one vendor's models, one vendor's pricing, one vendor's uptime, and your voice on their servers. The gadget hardware is fine β€” the lock is in the firmware.
esp32-thinks flips that. The device runs **your** stack: pick the cheapest transcription, the smartest chat model, the voice you like β€” per task, changeable in one config line and a rebuild. The implementation is a reviewable patch against a pinned open-source SDK, so you can read it, change it, or point it at a local server. The optional openmuse agent keeps the extra context (location, memory, tools) on **your** machine too.
## What you get
- **Wake word + button** β€” say "Hi, ESP" (esp-sr WakeNet10, runs on-chip) or hold the knob; both start a turn. Wake turns end on a voice-activity timer; the button works exactly like before.
- **Bring your own brain** β€” three independent OpenAI-compatible endpoints (STT / chat / TTS) in one config file. Mix providers freely; presets: `openai`, `quicksilver`, `openmuse`, `custom`.
- **Optional agent layer** β€” the in-repo `openmuse/` adds location, clock, weather, persistent memory and optional web search, owns the system prompt, and proxies STT so STT + chat share one TLS session. TTS still goes straight to your provider.
- **Streaming voice replies** β€” the chat stream is parsed at sentence boundaries (ASCII + CJK); each sentence is synthesized the moment it lands and appended to the audio already playing. First word arrives while the model is still generating.
- **Long-lived brain connection** β€” TLS is prepared before you ask, probed every 180 s while idle, and resumed with session tickets after an idle close. A failed probe triggers background preparation; a disconnect between probes may still need turn-time reconnection.
- **Barge-in** β€” press the knob while Muse is speaking: the reply stops mid-sentence, in-flight requests are cancelled, and your next words start a fresh turn immediately.
- **Silence guard** β€” a quiet recording (interrupted turn, pocket press) is discarded instead of becoming a hallucinated an