Dash Is a Build-Your-Own Nest Hub on Gemini Live. Here's the Cost and Where Your Audio Goes
Dash is an open-source kitchen display for any tablet, with a 'Hey Dash' voice assistant on Google's Gemini Live API and HTTP endpoints Home Assistant can call. It's well designed, cheap to run, and very much not local. Here's how it works and where it fits next to a local Assist setup.

Dash Is a Build-Your-Own Nest Hub on Gemini Live. Here's the Cost and Where Your Audio Goes
"I wanted a Nest Hub that I could actually program." That's how Xavier Portilla Edo opens his write-up of Dash, and it's a sentence a lot of smart home people have said out loud.
Dash is an open-source wall display for any tablet or screen in kiosk mode, with a "Hey Dash" voice assistant built on Google's Gemini Live API. It's a small project, MIT-licensed, on GitHub. What makes it worth a look is how clearly the post explains the design choices, including the ones that cost privacy.
What it is
Most of Dash needs no account at all. It's a Node server plus a TypeScript front end, configured with one config.json, in six languages. Panels rotate through weather, an iCal agenda, news, markets, Spotify with lyrics, live sports, and a kitchen mode that walks you through recipes step by step.
The Home Assistant hook is simple. "Everything on screen also has an HTTP endpoint, so an iOS Shortcut or Home Assistant can add to the shopping list or start a timer." It isn't an add-on or an integration. It's a display Home Assistant can poke.
How the voice part works
This is the interesting part. Instead of chaining speech-to-text, a language model and text-to-speech, Dash uses Gemini Live, which streams audio in and spoken audio back over one connection. The author's design rules:
The API key never leaves the server. For each conversation, the Dash server mints "a single-use ephemeral token with the entire session setup locked in (model, voice, system instructions, tools)." The tablet only ever sees that token. By default, only the display itself (localhost) can ask for one, so other devices on your Wi-Fi can't spend your quota.
Audio never touches the Dash server. The browser talks to Gemini directly: 16 kHz audio up, 24 kHz down. The server's job during a conversation is running the tools Gemini asks for.
The wake word runs in the browser. Dash uses the browser's built-in speech recognition to listen for "Dash," and only opens a Gemini session when it hears it. It keeps a 2.5-second audio buffer so "Hey Dash, what's the weather?" in one breath still reaches Gemini intact.
Tools are where it gets useful: eighteen functions, plus three Spotify ones when Spotify is connected. Shopping list, timers, recipes, a remember tool for household facts, and an end_conversation tool so the model can hang up when you say thanks.
Sessions close after 8 seconds of silence by default, when you say thanks, at a five-minute hard cap, or when Google signals it's dropping the connection. Since Live is billed by the minute, that discipline matters.
One practical workaround I appreciated: Dash drops microphone audio while it's speaking. A wall tablet plays through its speakers, and without good echo cancellation the model would hear itself. You can still tap the screen to interrupt.
What it costs
The author's numbers: gemini-3.8-live audio costs $0.005 per minute in and $0.018 per minute out on the paid tier. Those match Google's Gemini API pricing page when I checked. His estimate is about half a cent per question, and "twenty questions a day comes to roughly $3 a month."
There's a free tier with rate limits. The author's warning is the right one: "Google may use free-tier data to improve its products, which is the main reason to pay." Google's pricing page lists the free tier as used to improve its products, and the paid tier as not.
Where your audio goes
Credit to the author for being direct about this. There are two cloud parties, not one.
- During a conversation, your audio goes from the browser to Google's Gemini service.
- While waiting for the wake word, it's the browser's speech recognition doing the listening. In the author's words, "in Edge and Chrome, recognition runs on the browser vendor's online service, not on Gemini." Firefox has no speech recognition, so there you tap a microphone button instead.
So the "free" wake word is free in dollars, not in privacy. In Chrome or Edge, the browser maker's online speech service is processing what the microphone hears while Dash waits for its name.
The remember tool stores facts locally in Dash's own database, and they're sent to Gemini as context in every conversation. The author's advice: don't store anything you wouldn't say to it.
How it compares to a local Assist setup
This is the cloud end of the spectrum. On this site I've covered the other end: local speech with Whisper and Piper, and running a local LLM for Home Assistant voice.
Here's how I see the trade:
- Dash/Gemini Live gets you natural conversation, interruptions, many languages and web search with no GPU, for a few dollars a month. You give up privacy, and it depends on Google's API and pricing staying where they are.
- Local Assist keeps audio in the house and keeps working when the internet doesn't. You pay in hardware and setup time.
What I'd do
If you want a kitchen display that talks and you're already comfortable with a cloud assistant in the kitchen, Dash is the version where you can read every line and decide exactly what the model is allowed to do. I'd run it on the paid tier, keep the remember list boring, and wire a couple of Home Assistant automations to its HTTP endpoints so the shopping list and timers live where you already look.
If the reason you run Home Assistant is to keep your house's audio off other people's servers, this isn't for you. Treat it as a well-documented example of how to build cloud voice carefully, even if you end up building local.
Permalink: https://homeautomationweekly.com/issues/38-dash-gemini-live-wall-display