Willow
Willow is a self-hosted smart home hubs tool with support for Smart Home, Voice Assistant.
Self-hosted voice assistant firmware for ESP32-S3-BOX hardware, honestly reviewed. No cloud required, no data harvested, no recurring bill.
TL;DR
- What it is: Open-source (Apache-2.0) voice assistant platform built on ESP32-S3-BOX hardware — a practical, locally-running alternative to Amazon Echo and Google Home that puts voice processing on your own network [1][2].
- Who it’s for: Home Assistant users, privacy-conscious homeowners, and technically-inclined people who want a purpose-built voice assistant that doesn’t phone home to a corporate cloud [1].
- Cost: ~$50 one-time hardware purchase. Software is free. No subscription, no per-query pricing, no data deal you’re implicitly making every time you say “Alexa” [1].
- Key strength: Genuine local-first architecture — response times under 500ms from end of speech to completed action, beating Alexa and Google Home at their own game [1].
- Key weakness: Hardware-locked to the ESP32-S3-BOX family. This is not a software-only install; you need specific physical hardware. The project also shows signs of early-adopter roughness — the README is still greeting users receiving their first hardware shipments [2].
What is Willow
Willow is firmware and a supporting server stack that turns an ESP32-S3-BOX-3 microcontroller into a fully self-hosted voice assistant. The project comes from Tovera Inc. and targets a specific problem: Amazon Echo and Google Home work well, but every voice command you speak is processed on corporate servers, stored indefinitely, and used to improve products you didn’t ask to improve [1].
The architecture has three moving parts. The device firmware (ESP IDF-based, running on the ESP32-S3-BOX-3) handles wake word detection, audio processing, and either on-device command matching or forwarding audio to the inference server [1][2]. The Willow Application Server handles device configuration, management, and acts as the bridge to your smart home platform [1]. The Willow Inference Server (WIS) is a separately deployable service that handles speech-to-text, text-to-speech, and LLM inference — the computationally heavy parts you can either self-host or use via Tovera’s best-effort hosted instance [2].
The GitHub description says it plainly: “Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative.” [2] That’s the product. Not a cloud platform with a self-hosted option bolted on — a ground-up local-first voice assistant that happens to have a cloud fallback if you want one.
As of this writing the project sits at 2,993 GitHub stars under Apache-2.0 license.
Why people choose it
The Willow project occupies a narrow but real gap in the smart home market. Amazon Echo and Google Home are genuinely good products — fast, accurate, with deep integrations. The price you pay isn’t the hardware. It’s the continuous stream of voice data leaving your home, the lock-in to corporate ecosystems, and the creeping awareness that your kitchen device is a revenue stream for someone else.
The privacy case is the strongest one. Willow’s homepage doesn’t just claim privacy in marketing copy — it tells you how to verify it: “Check the source. Build and flash yourself. Proxy through another server to inspect traffic. Use on your own server. Use only local commands. Use on a network without access to the internet. Dig as deep as you want because you’re not going to find anything fishy here.” [1] That’s a genuinely different posture from a company that processes your voice in their data center.
The speed case is surprising. You’d expect a $50 embedded device to be slower than Alexa’s cloud infrastructure. It isn’t. Willow claims end-of-speech to completed action in 500ms or less, and attributes this to not having network round-trips to a cloud endpoint [1]. When you’re running Home Assistant on your local network and Willow is also local, the entire pipeline — wake word, speech recognition, intent handling, device action — completes without a single packet leaving your router.
The Home Assistant angle drives most adoption. Home Assistant has become the dominant self-hosted home automation platform, and Willow is explicitly built around it. The project page describes a close relationship with the HA team’s voice initiative, calling itself something that “truly stands on the shoulders of this giant” [1]. For anyone already running Home Assistant, adding Willow is a natural extension rather than an additional platform to manage.
The cost case is real but conditional. A single Echo Dot runs around $50 too, so the hardware cost isn’t the win. The win is that you never pay again — no Alexa+ subscription, no data deal, no dependency on Amazon deciding to kill the product. Multiple ESP32-S3-BOX-3 units around the house adds up to far less than a fleet of Echo devices over three years [1].
Features
Voice pipeline:
- Wake word engine — defaults to “Hi ESP” or “Alexa” (user-selectable), with more words coming [1]
- Voice Activity Detection — stops listening when you stop talking, takes action immediately [1]
- Sub-500ms end-to-end response time from end of speech to completed action [1]
- Far-field recognition tested at ~25 feet in challenging environments [1]
- Audio processing stack: automatic gain control, acoustic echo cancellation, noise suppression, blind source separation [1]
- Wi-Fi audio compression to reduce 2.4GHz congestion in dense environments [1]
On-device vs. inference server:
- Up to 400 speech commands can run entirely on-device with no server dependency [1]
- Full open-ended speech transcription requires the Willow Inference Server (self-hosted or Tovera’s hosted instance) [2]
- WIS supports STT, TTS, LLM inference, and WebRTC [2]
Integrations:
- Native Home Assistant integration [1]
- openHAB support [1]
- Generic REST API endpoint — any platform that accepts an HTTP POST can receive Willow’s output [1]
Hardware:
- ESP32-S3-BOX-3: color LCD, capacitive multi-touch display, microphone array [1]
- ~100mW power draw — leave it plugged in forever, it won’t move your electricity bill [1]
- Available from Amazon, AliExpress, Adafruit, Mouser, and others for ~$50 [1]
- Add a USB-C power supply and you’re done [1]
Pricing: what you actually spend
Hardware (one-time):
- ESP32-S3-BOX-3: approximately $50 USD on Amazon or AliExpress [1]
- USB-C power supply: ~$10 if you don’t have one
- Per device, all-in: roughly $60
Software:
- Willow firmware: $0 (Apache-2.0) [1]
- Willow Application Server: $0, self-hosted
- Willow Inference Server: $0, self-hosted; or Tovera’s hosted instance, free with “best-effort” SLA (meaning no guaranteed uptime) [2]
Amazon Echo comparison:
- Echo Dot (5th gen): ~$50
- Echo (4th gen): ~$100
- Alexa+ subscription (announced 2025): $19.99/month for expanded AI features
- Your voice data: continuous, no opt-out
Google Home comparison:
- Nest Mini: ~$50
- Nest Audio: ~$100
- No subscription currently, but Google’s data practices are the cost
Concrete five-year math for two devices:
| Setup | Hardware | Software/Subscription (5yr) | Total |
|---|---|---|---|
| 2× Amazon Echo | $100 | $0–$480 (Alexa+) | $100–$580 |
| 2× Willow | $100 | $0 | $100 |
The hardware cost is identical. Every dollar saved is subscription cost plus whatever you value your voice data at. If you’re already running Home Assistant on a machine that can host WIS, the ongoing cost is genuinely zero [1][2].
One honest caveat: Tovera’s “best-effort” hosted WIS is free but comes with no uptime guarantees. If you need reliability for home automation commands, self-host WIS. That requires a machine capable of running inference — a reasonably modern CPU handles STT/TTS fine; LLM inference needs more horsepower [2].
Deployment reality check
This is not a plug-and-play product for non-technical users. The target user is someone who already runs Home Assistant — meaning they’ve already figured out Docker, reverse proxies, and basic Linux administration. If that’s you, the complexity is manageable. If it isn’t, Willow is not the right starting point.
What you need:
- ESP32-S3-BOX-3 hardware (~$50, ships from multiple retailers)
- A way to flash firmware (USB-C cable, a computer with Python/ESP-IDF toolchain or a prebuilt binary)
- Willow Application Server — Docker recommended, runs on any Linux machine including the same box as Home Assistant
- Optionally: Willow Inference Server for full speech recognition — needs more RAM than a Pi Zero, comfortably runs on a mid-range NUC or cloud VM
What the README signals about maturity:
The current README is notably in “early adopter” mode. It announces the WIS release as news, celebrates users receiving hardware shipments, and points to GitHub Discussions as the primary support channel [2]. This is a project that works, but one where you should expect to dig into issues and forums when something goes wrong. It is not Stable Version 4.0 with a commercial support contract.
On-device command mode is the easiest path: If you configure Willow with up to 400 on-device commands and route to Home Assistant REST endpoints, you can run the entire stack without the inference server. Setup reduces to: flash the firmware, configure the application server, tell it your Home Assistant URL and token. That’s genuinely doable in an afternoon for a Home Assistant user [1].
Inference server adds complexity but unlocks free-form speech: Running WIS locally requires a machine with a decent CPU (GPU helps for LLM), Docker, and enough RAM. The WIS supports WebRTC, meaning the latency is still good even over a local network [2]. Time estimate for a Home Assistant user who’s comfortable with Docker: 1–3 hours for a full stack deployment including WIS.
For a first-time Linux user: this is too much. Look at Home Assistant’s Voice Preview Edition hardware instead.
Pros and cons
Pros
- Genuinely private. No cloud endpoint required. All processing can stay on your local network, and the Apache-2.0 license means you can audit every line [1].
- Faster than commercial alternatives. <500ms end-to-end is a real engineering achievement for a $50 device. Commercial voice assistants have more latency because they do a cloud round-trip [1].
- No recurring cost. One hardware purchase, zero subscriptions. For a two- or three-device household, this compounds over years [1].
- Home Assistant native. Built around the dominant self-hosted home automation platform. If you’re already on HA, this slots in [1].
- True open source. Apache-2.0, not a “community edition” with enterprise features gated. The inference server is also open source [1][2].
- Surprisingly good audio. AGC, echo cancellation, noise suppression, and blind source separation on a $50 device produce better far-field pickup than the hardware cost suggests [1].
- Multi-mode. You pick your tradeoff — fully offline with on-device commands, or full speech transcription via local or hosted inference [1].
Cons
- Hardware-locked. Willow only runs on ESP32-S3-BOX family hardware. You can’t install it on an old tablet, a Raspberry Pi, or a different microcontroller. If Espressif discontinues this hardware line, the project’s hardware path narrows [1].
- Early-adopter roughness. The README is still in “thanks for your hardware” mode. Community support via GitHub Discussions means debugging involves reading threads, not calling support [2].
- Tovera WIS has no SLA. The free hosted inference server is “best-effort.” If Tovera’s server is down and you haven’t self-hosted WIS, your voice assistant is down [2].
- No app ecosystem. Amazon Echo has thousands of Skills. Willow has whatever your Home Assistant, openHAB, or REST endpoint can do — which is a lot if you’ve built it out, but zero if you haven’t [1].
- Non-technical users can’t use this. The README assumes you know what ESP IDF is and can navigate GitHub Discussions for support. This is a tool for the self-hosting crowd, not a consumer product [2].
- Limited third-party coverage. Unusually sparse independent reviews for a project of this type. Most of what exists is the project’s own documentation. Hard to find real-world failure reports or long-term reliability data.
- Project activity unclear. The 2,993 star count is modest, and the README’s “early adopter” framing suggests the project is still finding its footing. Long-term maintenance commitment from Tovera is an open question.
Who should use this / who shouldn’t
Use Willow if:
- You already run Home Assistant and want voice control without sending commands to Amazon or Google.
- You’re comfortable flashing firmware, running Docker containers, and reading GitHub issues when something breaks.
- Privacy is a genuine requirement — healthcare context, legal work, or you simply don’t want a corporate microphone in your kitchen.
- You want to place multiple voice assistants around a home without multiplying subscription costs.
- You’re building a local smart home stack and want every component on your own infrastructure.
Skip Willow (try Home Assistant Voice Preview Edition instead) if:
- You want official HA hardware support with guaranteed compatibility and a supported upgrade path.
- You prefer buying something that works out of the box over flashing firmware.
Skip Willow (stay on Amazon Echo) if:
- You use Alexa Skills extensively — shopping lists, music services, third-party integrations.
- You’re not running Home Assistant and don’t plan to.
- Command-line interfaces make you uncomfortable.
Skip Willow (try Rhasspy or Wyoming protocol devices) if:
- You need voice assistant functionality on hardware you already own (old Pi, PC, etc.).
- You want a software-only install rather than dedicated hardware.
Alternatives worth considering
- Home Assistant Voice Preview Edition — HA’s own hardware device for local voice, officially supported and integrated. More polished experience, less DIY, higher cost than Willow hardware alone. The natural comparison for anyone already on HA.
- Amazon Echo — still the easiest path to whole-home voice control with massive Skill ecosystem. Privacy trade-off is real; reliability and integration breadth are genuine advantages.
- Google Nest Audio / Mini — better audio hardware than Echo at comparable price points. Same cloud privacy concerns.
- Rhasspy — older open-source voice assistant that runs on existing hardware (Raspberry Pi, x86). More flexible hardware compatibility than Willow, more complex to configure, less polished audio pipeline. Good if you want software-only.
- OpenWakeWord — open-source wake word detection engine, often used as a component in custom stacks. Not a complete voice assistant; a building block.
- Wyoming Protocol — the HA-native voice pipeline protocol; several community satellite projects use it. More active development momentum currently than Willow.
For someone already on Home Assistant who wants local voice control: the honest short list is Willow vs. Home Assistant Voice PE. Willow costs less and is more open but requires more setup and has less official support. HA Voice PE is the officially supported path with less DIY.
Bottom line
Willow solves a real problem: people who have built out Home Assistant for home automation but don’t want to run Amazon’s microphone to control it. The core proposition — a $50 device, no cloud, no subscription, faster than Alexa — is honest and the project delivers on it. The Apache-2.0 license is unambiguous, the architecture is genuinely local-first, and the audio processing pipeline outperforms what you’d expect from the hardware cost.
The constraints are equally real. You’re locked to one hardware family, the project is in active early-adopter development, and Tovera’s “best-effort” hosted inference server isn’t infrastructure you’d want to depend on for anything critical. This is a project for people who prefer to run their own stack and are comfortable with the tradeoffs of doing so.
If you’re running Home Assistant and you’ve been putting off voice control because every option involves talking to a corporate server — Willow is worth the $50 and an afternoon.
Sources
- Willow Official Website — heywillow.io (product documentation, feature list, hardware specs). https://heywillow.io
- Willow GitHub Repository — toverainc/willow (README, Willow Inference Server announcement, project status). https://github.com/toverainc/willow
- Willow Inference Server — toverainc/willow-inference-server (WIS capabilities: STT, TTS, LLM, WebRTC). https://github.com/toverainc/willow-inference-server
Note: No substantive independent third-party reviews of the Willow voice assistant software were available at the time of writing. The third-party sources provided in the research inputs referred to unrelated “Willow” projects (a Disney+ series, a vacation rental, a musician, a dating app, and a podcast). Article is sourced from primary documentation only.
Replaces
Related Home Automation & IoT Tools
View all 33 →Home Assistant
85KOpen-source home automation that puts local control and privacy first — 3,400+ integrations, voice control, and energy management on a Raspberry Pi or local server.
Homebridge
25KHomebridge is a self-hosted home automation & IOT tool that provides homeKit support for the impatient.
Tasmota
24KOpen-source firmware for ESP8266/ESP32 devices providing total local control via MQTT, web UI, and HTTP.
Thingsboard
21KThingsboard is a self-hosted home automation & IOT replacement for Datadog and Google Cloud IOT Core.
EMQX
16KLeverage EMQX's leading MQTT technology & advanced AI platform capabilities to power real-time intelligence, software-defined vehicles, IIoT, smart cities, connected AI agents, and more
Zigbee2MQTT
15KZigbee to MQTT bridge, get rid of your proprietary Zigbee bridges