If you follow the Home Assistant community, you've seen it: people are building genuinely good, fully local voice assistants. No Alexa, no Google, no always-on mic streaming to a data center. It works, it's private, and it's impressive. It's also—and I say this with enormous respect for the people doing it—a lot of work.
We've spent the last several months living in this ecosystem while building Dashie Voice, and I want to give an honest account of where local voice AI in Home Assistant actually stands: what it can do, what it takes to get there, and the specific problems we set out to solve. If you're an enthusiast who has already done this, a lot of it will be familiar—and I hope the framing is still useful. If you're someone who has looked at it and bounced off, this is for you.
The promise is real
The reason people go to the trouble is simple and good:
- Privacy. Your home's data—who's home, what's on, what you ask—never leaves your network.
- No Big Tech dependency. No vendor account, no cloud mic, no terms-of-service roulette.
- Resilience. When the cloud has a bad day, your lights still turn on. (More than one person started down this road after a major outage left them unable to control their own house.)
And the tooling has caught up enough to make it possible. Home Assistant's Assist pipeline, the Wyoming protocol, local speech engines, and the ability to wire an LLM in as a conversation agent mean that—on the right hardware—you can absolutely have a capable, private voice assistant that controls your home and answers questions.
The reality is months of tuning
The best account of what it actually takes is NickM-27's "My journey to a reliable and enjoyable locally hosted voice assistant" —a detailed, hard-won writeup (with a public config repo) that's become a reference point for the community. It's excellent. It's also, by the author's own admission, not something the average user can just follow to a finish line. The 2026 roundups of local voice setups say the same thing in different words.
When you read these guides closely, a consistent list of things-you-must-get-right emerges:
- Curated entity exposure — deciding exactly which devices the model can see.
- A make-or-break prompt — handling ambiguity, refusing to editorialize, never emitting emoji (text-to-speech reads them aloud), staying in a strict response format.
- Model and quantization selection — not just "which model" but which quant, because the wrong one quietly breaks tool-calling.
- Local-first routing — answering simple commands without invoking the LLM at all.
- Premium speech — because the free local options have real gaps.
- A custom wake word — trained, tuned, and running on-device.
Each of these is a rabbit hole. Together, they're the months. None of it is the "fun part" of a smart home—it's infrastructure.
Two lessons that surprised us
Two findings came up again and again—in the community guides and in our own testing against real hardware—and they ended up shaping how we built Dashie Voice.
1. Context curation is the whole game
The instinct is to expose your entire house to the AI so it can do anything. That's exactly backwards. The more entities you hand the model, the slower and dumber it gets—more tokens to chew through, more chances to pick the wrong device or hallucinate one. The community's rule of thumb lands around a few dozen entities for a reason.
On weak hardware this isn't a tweak—it's the difference between working and not. In our own benchmarking, the same warm model on a Raspberry Pi answered a simple question in about 7 seconds with no entity context, and took well over two minutes once the full exposed-entity list was in the prompt. Same model, same machine. The context is what killed it.
Here's the catch that makes this hard in stock Home Assistant: it has a single "expose to Assist" list. Every agent sees the same set. You can't easily let the fast intent matcher see everything while the LLM sees a tight, relevant subset. That's the exact lever you want—and it's the one you can't pull.
2. The best command is the one that never reaches the AI
"Turn off the kitchen lights" does not need a large language model. Routing deterministic commands to Home Assistant's fast, local intent engine—and only sending genuinely open-ended questions to the LLM—is described in more than one guide as the single most important setting people skip. It's faster, it's free, it works offline, and it can't hallucinate a device. The LLM should be the last, most-capable stop, not the default.
The hardware truth nobody wants to hear
We benchmarked this directly. A capable, always-on machine (think an Apple-silicon Mac or a GPU box) running a modern ~20-billion-parameter model is a genuinely good local voice experience: a couple of seconds, correct tool calls, sensible room disambiguation. A Raspberry Pi—even running HA itself—is not. It fails on both latency and correctness, and the bigger the model you throw at it, the worse it gets.
The community's model-selection work points the same direction: roughly a 20B-class mixture-of-experts model is the floor for "reliable," with smaller 7–8B models acceptable as a functional fallback, and quantization mattering as much as size. There's also a subtle trap—a model that's been evicted from memory cold-loads on the first request of the day and blows past the voice timeout. "Capable" has to also mean "always on and kept warm."
The honest summary: local voice AI is excellent when you have the right hardware and the patience to tune it. Both of those are real costs, and most people have neither to spare.
What Dashie Voice sets out to do
Our thesis is straightforward: you shouldn't have to become an expert to get the expert result. Everything above—the curation, the prompt, the model and quant choices, the routing, the wake word, the premium speech—is work we can do once and ship to everyone. Concretely, that means:
- Adaptive context. Dashie sends the model only what a given question needs—the relevant entities and data, not your whole house. Because Dashie brings its own agent, it isn't bound by Home Assistant's single exposure list, so it can give the LLM a curated, accurate subset. That's faster, cheaper, and more accurate.
- Local-first routing, built in. Device and music commands answer locally and instantly; only open-ended questions touch the AI. Your home keeps working when the cloud doesn't.
- Your model or ours. Use Dashie's cloud models, or point it at your own local LLM. We curate a list of models that actually behave, so you're not guessing about quants. Either way you get Dashie's tuning, tools, and voices.
- Speech that's genuinely better. Premium recognition biased to your household's names and teams, and character voices well above the local text-to-speech ceiling—with a free local option when you want it.
- Privacy you can see. Every part of the pipeline is labeled local or cloud, so "local model" never quietly pairs with cloud speech. Go fully local and nothing but optional web lookups leaves your network.
An honest note on what's shipping
Dashie Voice is in limited beta. Some of the above is live today and some is rolling out—we'll keep being specific about which is which, here on the blog and in the product. We'd rather under-promise.
Credit where it's due
None of this would be possible without the community that proved local voice AI could be great—the people who documented their journeys, published their configs, and figured out the hard parts in public. Dashie's job isn't to replace that work; it's to package it, so the experience those folks spent months reaching is something a family can have on day one. If you're the type who loves the tuning, keep tuning—and bring your own model to Dashie. If you're not, that's exactly who we're building for.
Want to try it?
Dashie Voice is in limited beta, with complimentary starter credits for participants.
Request beta access →