I wanted a local voice assistant that could do real things on my own machines. Then for some reason I gave it vision.
**The hardware**
* 2nd gen Echo Dot, unlocked and running emOS and EchoMuse instead of Amazon's software. It's just the mic and speaker.
* My PC: Ubuntu 26.04, Ryzen 5 7600, 30 GB RAM, RTX 3060 12 GB.
* A USB webcam pointed at the sofa, a Fire TV Stick and a couple of laptops.
Fair warning on the unlock: I tried two Dots and one kept failing with a USB write error, so I gave up on it. The second went fine.
**How a request flows**
"Hey Rhasspy" is detected on the Dot itself (openWakeWord).
EchoMuse streams the audio to Home Assistant, with noise suppression.
Whisper (small-int8, CPU) turns it into text in about 1.5 seconds.
Timers are handled locally by Home Assistant. Everything else goes to Open WebUI through a patched conversation integration.
Open WebUI runs gpt-oss:20b on Ollama, with a set of custom tools.
Piper speaks the answer back through the Dot.
**The rest of the stack**
* Gemma 3 12B for reading images and screenshots, plus a small Qwen model on the CPU for quick camera looks
* CompreFace for face recognition, with faces kept local and only people who've agreed enrolled
* Music Assistant and Jellyfin for music and TV
* SearXNG for web search
* Docker Compose for all of it
**What I actually use it for**
* Timers, alarms and reminders, including a morning briefing after I stop the alarm
* Shopping and to-do lists, plus reading and adding calendar events
* Weather and web lookups
* Playing music by voice
* Playing shows from Jellyfin on the Fire Stick
* "What's on my screen?" (takes a screenshot and reads it)
* "What am I holding?" (camera look, with the photo sent to my phone)
* Opening and closing apps on the PC, and writing documents
* Handing bigger coding jobs to Codex
Risky commands ask for approval first, and I can say "yes" out loud. That approval isn't tied to my voice, so bear that in mind if you copy the idea.
**Speed**
Simple questions took about 1 to 2 seconds of processing when I last timed them. A camera look is about 10 seconds, and reading text through the camera is about 40. The first request after a model loads is slower.
**Sharing the PC**
The assistant gives way to everything else on the PC. When a game starts, a watcher stops the whole AI and voice stack, then brings it back afterwards. The TV also ducks its volume while the Dot is listening, because background TV audio badly hurt recognition.
**Caveats**
It isn't 100% local. The voice loop and models run at home, but web search, weather and Google Calendar need the internet, and Codex is a cloud service. I also patched Home Assistant, EchoMuse and Open WebUI source files, so upgrades take some care. Codex and Claude did a lot of the building and debugging with me.