Turn a Home Assistant Voice PE into the voice assistant you actually wanted — natural speech-to-speech conversation powered by the OpenAI Realtime API, sub-second smart-home control, a wake word trained on your household's voices, an assistant that knows who's speaking, remembers what you tell it, and finds you when long-running work is done. Built on Home Assistant / OpenClaw: Home Assistant runs your home, OpenClaw is its memory, its hands, and its phone.
It runs on your Home Assistant box. Wake-word detection, speaker identity, voice recordings, and memory all stay local. The cloud only hears you after you wake it.
"What's Grandma's number?" Instant recall from your household's long-term memory — answered in under a second. Facts you teach it by voice are built in and stay on your machine; connect OpenClaw and it reaches everything your agent remembers too.
"Research flight prices to London for October." "I'll look into it and report back." It hands the task to OpenClaw, which browses the web in the background for as long as it takes — then the result is announced out loud in the room you asked from, or texted to you if you've stepped out. Long-running tasks that find you when they're done.
Walking into the kitchen: "Set a pasta timer for 9 minutes." Nine minutes later: "Alex, your pasta timer is done" — spoken personally to whoever set it. A gentle bell follows only if nobody responds. Dismiss with a word or the button.
It knows who's speaking. On-device wake word, local voice recognition. It can greet you by name, keep per-person context, and restrict chosen tools to specific speakers — enforced below the model, so it can't be talked around.
"Remember that we park at the north lot." Teach it standing rules by voice. They persist forever, attributed to whoever said them, and only identified household voices can change them. "Forget that" removes them; "what do you remember?" reads them back.
And it just converses. Speech in, speech out — no STT→LLM→TTS chain, so tone and timing feel human. Interrupt it mid-sentence with "stop". Follow up without repeating the wake word. Lights, climate, media, and shopping lists respond in under a second.
Marked † = needs the optional agent integration — built for OpenClaw, works with any agent. Everything else is built in.
Longer versions, with the how-it-works behind each: Stories.
gpt-realtime-2 by default, any model id via customrecall_memory from your agent's memory, deep questions escalated to a full agent turn; a ready-to-run bridge ships in this repo (contracts are agent-agnostic)Home Assistant Voice PE Home Assistant (your box) Cloud
┌─────────────────────────┐ WS ┌──────────────────────────┐ WS ┌──────────────┐
│ custom ESPHome firmware │ ─────▶ │ this add-on │ ─────▶ │ OpenAI │
│ wake word + XMOS DSP │ 16 kHz │ (session, tools, memory, │ 24 kHz │ Realtime API │
│ thin audio client │ ◀───── │ speaker ID, timers) │ ◀───── │ │
└─────────────────────────┘ └───────────┬──────────────┘ └──────────────┘
│ tools
▼
HA MCP Server → controls your home
OpenClaw ←→ recall / delegate / announce (optional)
Three parts:
https://github.com/TristanBrotherton/voicepe-realtime → install OpenAI Realtime 2 Voice Agent. Set your OpenAI API key.Full walkthrough (~30–45 minutes from zero): Getting Started.
| Guide | What's in it |
|---|---|
| Getting Started | Prerequisites, flashing, add-on install, first conversation, multi-device |
| Stories | What households actually do with it — and which feature makes each one work |
| Configuration Reference | Every add-on option and firmware substitution — purpose, default, when to change it |
| Features | Wake words, speaker recognition, memory, timers, false-wake flywheel, web search, sensors, persona |
| Agent Integration | The bridge contracts: recall, escalation, and the announce endpoint — works with any agent |
| FAQ | Cost, privacy, reverting to stock, Raspberry Pi, languages, and more |
| Contributing | PRs welcome — small, tested, explained |
The firmware lives in its own repo: TristanBrotherton/voicepe-realtime-firmware.
MIT. The firmware repo carries the upstream ESPHome license.
Hacker News (1)
Python
97.6%
Shell
1.7%
Turn a Home Assistant Voice PE into the voice assistant you actually wanted — natural speech-to-speech conversation powered by the OpenAI Realtime API, sub-second smart-home control, a wake word trained on your household's voices, an assistant that knows who's speaking, remembers what you tell it, and finds you when long-running work is done. Built on Home Assistant / OpenClaw: Home Assistant runs your home, OpenClaw is its memory, its hands, and its phone.
It runs on your Home Assistant box. Wake-word detection, speaker identity, voice recordings, and memory all stay local. The cloud only hears you after you wake it.
"What's Grandma's number?" Instant recall from your household's long-term memory — answered in under a second. Facts you teach it by voice are built in and stay on your machine; connect OpenClaw and it reaches everything your agent remembers too.
"Research flight prices to London for October." "I'll look into it and report back." It hands the task to OpenClaw, which browses the web in the background for as long as it takes — then the result is announced out loud in the room you asked from, or texted to you if you've stepped out. Long-running tasks that find you when they're done.
Walking into the kitchen: "Set a pasta timer for 9 minutes." Nine minutes later: "Alex, your pasta timer is done" — spoken personally to whoever set it. A gentle bell follows only if nobody responds. Dismiss with a word or the button.
It knows who's speaking. On-device wake word, local voice recognition. It can greet you by name, keep per-person context, and restrict chosen tools to specific speakers — enforced below the model, so it can't be talked around.
"Remember that we park at the north lot." Teach it standing rules by voice. They persist forever, attributed to whoever said them, and only identified household voices can change them. "Forget that" removes them; "what do you remember?" reads them back.
And it just converses. Speech in, speech out — no STT→LLM→TTS chain, so tone and timing feel human. Interrupt it mid-sentence with "stop". Follow up without repeating the wake word. Lights, climate, media, and shopping lists respond in under a second.
Marked † = needs the optional agent integration — built for OpenClaw, works with any agent. Everything else is built in.
Longer versions, with the how-it-works behind each: Stories.
gpt-realtime-2 by default, any model id via customrecall_memory from your agent's memory, deep questions escalated to a full agent turn; a ready-to-run bridge ships in this repo (contracts are agent-agnostic)Home Assistant Voice PE Home Assistant (your box) Cloud
┌─────────────────────────┐ WS ┌──────────────────────────┐ WS ┌──────────────┐
│ custom ESPHome firmware │ ─────▶ │ this add-on │ ─────▶ │ OpenAI │
│ wake word + XMOS DSP │ 16 kHz │ (session, tools, memory, │ 24 kHz │ Realtime API │
│ thin audio client │ ◀───── │ speaker ID, timers) │ ◀───── │ │
└─────────────────────────┘ └───────────┬──────────────┘ └──────────────┘
│ tools
▼
HA MCP Server → controls your home
OpenClaw ←→ recall / delegate / announce (optional)
Three parts:
https://github.com/TristanBrotherton/voicepe-realtime → install OpenAI Realtime 2 Voice Agent. Set your OpenAI API key.Full walkthrough (~30–45 minutes from zero): Getting Started.
| Guide | What's in it |
|---|---|
| Getting Started | Prerequisites, flashing, add-on install, first conversation, multi-device |
| Stories | What households actually do with it — and which feature makes each one work |
| Configuration Reference | Every add-on option and firmware substitution — purpose, default, when to change it |
| Features | Wake words, speaker recognition, memory, timers, false-wake flywheel, web search, sensors, persona |
| Agent Integration | The bridge contracts: recall, escalation, and the announce endpoint — works with any agent |
| FAQ | Cost, privacy, reverting to stock, Raspberry Pi, languages, and more |
| Contributing | PRs welcome — small, tested, explained |
The firmware lives in its own repo: TristanBrotherton/voicepe-realtime-firmware.
MIT. The firmware repo carries the upstream ESPHome license.
Hacker News (1)
Python
97.6%
Shell
1.7%