
XDA spent the week pulling Gemini for Home apart and landed on the same conclusion most home-lab readers already had: the new wave of “smart” platforms is a subscription pitch dressed up as a feature. Pay a monthly fee, route every voice command through a remote server, watch a routine break because a vendor revoked an API. The thread under the post was full of people quietly running their houses on a Raspberry Pi or a NUC instead, with no monthly bill and no cloud round-trip. A local-first smart home is not a niche any more.
We tested 7 desktop apps for building that kind of setup on Windows, macOS, and Linux. The benchmark was practical: how cleanly each one runs on a small home server, how many protocols it speaks out of the box, whether the automation engine survives a daily commute of triggers, and how easy it is to back the whole thing up before a firmware update.
What to look for in a local-first smart home app
A handful of criteria separate the platforms that earn a permanent slot in your rack from the ones that get wiped on the next reformat:
- No cloud round-trip. Every state change, automation, and voice command should run on hardware you own. If a routine stops working when the WAN link drops, the platform has failed the basic test.
- Local processing. Speech-to-text, presence detection, and motion-driven scenes should resolve on the local network. Phoning home for inference is a privacy regression and a latency tax.
- Open protocols. Zigbee, Z-Wave, Matter over Thread, MQTT, and plain HTTP cover most of the device market. Lock-in to a single vendor cloud is what made you read this article.
- Integration breadth. The strongest hubs talk to thousands of device families through community-maintained integrations. The weakest ones support a vendor catalogue and little else.
- Automation engine. A real rule engine, not a “if this then that” toy. Conditions, delays, restart modes, and a way to debug a routine that misfires at 3 a.m.
- Backup story. Snapshots, exportable YAML or JSON, and a clean restore path. A smart home is one bad SD card away from a manual rebuild without it.
Quick comparison
| App | Best for | Platforms | Free plan | Standout feature |
|---|---|---|---|---|
| Home Assistant | The default local-first hub for everything | Windows, macOS, Linux (HAOS / Docker / VM) | Yes (open source) | 3,000+ integrations and a real automation engine |
| Home Assistant OS | A purpose-built appliance image for a Pi or mini PC | Bare metal, VM on any desktop OS | Yes (open source) | One-shot snapshots and an add-on store |
| Node-RED | Visual flows for the automations YAML cannot express | Windows, macOS, Linux | Yes (open source) | Drag-and-drop logic with live debug nodes |
| openHAB | A Java-based hub with strong rule engines | Windows, macOS, Linux | Yes (open source) | Bindings for legacy protocols Home Assistant skips |
| Domoticz | A lightweight C++ hub for low-power boxes | Windows, macOS, Linux | Yes (open source) | Runs comfortably on a Pi Zero or old netbook |
| Mosquitto | The MQTT broker the rest of the stack leans on | Windows, macOS, Linux | Yes (open source) | Tiny footprint, decades of production use |
| Zigbee2MQTT | A Zigbee controller that frees you from vendor hubs | Windows, macOS, Linux (with a USB coordinator) | Yes (open source) | Pair any Zigbee device, publish to MQTT |
The 7 best apps for local-first smart home on desktop
1. Home Assistant — best default hub for the whole house
Home Assistant is the platform most local-first homes settle on. Install the Docker container or the dedicated OS image on a mini PC, point it at your Zigbee or Z-Wave coordinator, and the dashboard fills up with devices in minutes. Over 3,000 integrations cover the long tail, the automation engine handles conditions and restart modes properly, and the local API means every scene runs without touching the internet. Voice can stay on-device through the project’s own Assist pipeline.
Where it falls short: The configuration UI keeps improving, but power users still end up editing YAML. The HACS community store is essential for many integrations and adds a setup step the official docs skim over.
Pricing:
- Free: open-source, no licence fee
- Paid: optional Nabu Casa cloud subscription for remote access (you do not need it for local control)
Platforms: Windows, macOS, Linux (Docker, VM, or bare-metal HAOS)
Download: home-assistant.io
Bottom line: Pick Home Assistant for a local-first smart home if you want one hub that talks to everything and you are willing to invest a weekend in setup.
2. Home Assistant OS — best appliance install for a dedicated box
Home Assistant OS is the same Home Assistant core wrapped in a stripped-down Linux image that boots straight into the supervisor. Flash it to a Raspberry Pi, an Intel NUC, or a VM on your desktop, and you get one-click add-ons for Mosquitto, Zigbee2MQTT, Node-RED, and dozens of other tools without juggling Docker compose files. Snapshots are first-class, which makes upgrades and migrations forgiving.
Where it falls short: It wants the whole box. Running other workloads alongside means using the VM or supervised install, both of which are more fragile than HAOS on bare metal. Hardware passthrough for USB radios needs care in a VM.
Pricing:
- Free: open-source image
- Paid: none
Platforms: Bare metal on Pi or x86, VM under VirtualBox, VMware, Proxmox, Hyper-V on Windows, UTM on macOS
Download: home-assistant.io/installation
Bottom line: Pick Home Assistant OS for a local-first smart home if you want a dedicated appliance and clean snapshots without hand-rolling a Linux server.
3. Node-RED — best visual flow editor for tricky automations
Node-RED is the tool that picks up where YAML automations get clumsy. The browser-based editor lets you wire triggers, conditions, function nodes, and outputs as a flow graph, with live debug panels that show the message at every step. It pairs naturally with Home Assistant through the official companion add-on, but it also runs standalone against MQTT, REST APIs, and a long list of community nodes. Time-based logic, state machines, and multi-step routines that fight you in YAML become drag-and-drop here.
Where it falls short: Flows can sprawl quickly if you do not impose your own structure. The Node.js dependency means RAM use creeps higher than a pure-Python hub on the same workload.
Pricing:
- Free: open-source, no licence fee
- Paid: none
Platforms: Windows, macOS, Linux (native install or Docker)
Download: nodered.org
Bottom line: Pick Node-RED for a local-first smart home if your automations have grown past simple triggers and you want to see the logic instead of reading it.
4. openHAB — best hub for legacy and industrial protocols
openHAB has been around longer than most of its competitors and still leads on the protocol fringe. Bindings cover KNX, Modbus, BACnet, DSC alarm panels, satellite receivers, and a list of older systems Home Assistant either skips or supports as a community add-on. The rule engine is mature, with Blockly, DSL, and JavaScript options depending on how you like to express logic. Everything runs locally on the JVM.
Where it falls short: The Java footprint is heavier than the Python or C alternatives, so a Pi 4 or better is the comfortable floor. The default UI is more utilitarian than Home Assistant’s dashboards, though the new Main UI has narrowed the gap.
Pricing:
- Free: open-source, no licence fee
- Paid: none
Platforms: Windows, macOS, Linux (native install, Docker, or openHABian image)
Download: openhab.org
Bottom line: Pick openHAB for a local-first smart home if you need to integrate older building-automation gear or you prefer a JVM-based stack.
5. Domoticz — best lightweight hub for low-power hardware
Domoticz is the option to consider when you want a smart home hub on a Pi Zero, an old netbook, or a router-class device with a few hundred megabytes of RAM. The C++ core is light, the web UI loads quickly, and the supported device list still covers Zigbee, Z-Wave, MQTT, RFXCOM, and most of the common DIY sensors. Automation uses Lua or dzVents scripts, both compact and well documented.
Where it falls short: The interface looks older than the alternatives, and the community is smaller, so device-specific guides are harder to find. New protocols like Matter arrive later here than on Home Assistant.
Pricing:
- Free: open-source, no licence fee
- Paid: none
Platforms: Windows, macOS, Linux (including Synology and OpenWrt builds)
Download: domoticz.com
Bottom line: Pick Domoticz for a local-first smart home if your hardware is modest and you want a hub that does not need a quad-core to feel responsive.
6. Mosquitto — best MQTT broker for the rest of your stack
Mosquitto is the quiet workhorse most local-first setups end up running. It is a tiny, fast MQTT broker that lets Zigbee2MQTT, Home Assistant, Node-RED, ESPHome devices, and bespoke scripts publish and subscribe to each other without a cloud relay. Installation is one package on Linux, a single binary on Windows, and a Homebrew formula on macOS. Auth, TLS, and access control lists keep the network reachable only to devices you bless.
Where it falls short: It is infrastructure, not a UI. You will need a separate tool like MQTT Explorer to inspect topics, and configuration lives in plain text files rather than a dashboard.
Pricing:
- Free: open-source under the EPL/EDL
- Paid: none
Platforms: Windows, macOS, Linux (native install or Docker)
Download: mosquitto.org
Bottom line: Pick Mosquitto for a local-first smart home if any part of your stack speaks MQTT, which in 2026 means almost all of it.
7. Zigbee2MQTT — best way to ditch vendor Zigbee hubs
Zigbee2MQTT turns a USB coordinator stick into a vendor-neutral Zigbee gateway. Pair a bulb from one brand and a sensor from another to the same network, and every device shows up as a friendly MQTT topic that Home Assistant, Node-RED, or your own scripts can read and write. The web UI handles pairing, OTA updates, and a network map that makes mesh debugging actually possible.
Where it falls short: You need a supported USB coordinator (a Sonoff dongle or similar). Some exotic devices need a quirks file. Running it next to a Wi-Fi access point on the same 2.4 GHz channel is the usual cause of “why is my Zigbee flaky” threads.
Pricing:
- Free: open-source, no licence fee
- Paid: none
Platforms: Windows, macOS, Linux (native, Docker, or as a Home Assistant add-on)
Download: zigbee2mqtt.io
Bottom line: Pick Zigbee2MQTT for a local-first smart home if you want a Zigbee mesh that answers to you and not to a vendor cloud.
How to pick
If you want the default local-first hub and the broadest device support, install Home Assistant in Docker or run Home Assistant OS on a dedicated box.
If your automations have grown beyond simple triggers and you want to see the logic as a graph, add Node-RED alongside Home Assistant.
If you need bindings for KNX, Modbus, or other building-automation protocols, pick openHAB.
If your hardware is modest and you want a hub that runs comfortably on a Pi Zero, go with Domoticz.
If any part of your stack speaks MQTT, run Mosquitto as the broker.
If you want a Zigbee mesh that ignores vendor hubs, pair a USB coordinator with Zigbee2MQTT.
FAQ
Do I need an always-on server for a local-first smart home?
Yes. Something has to run the hub, the broker, and the automations 24/7. A Raspberry Pi 4 or 5, an Intel NUC, or a small Mini PC running Linux is the usual choice. A spare desktop works fine if you can leave it on.
Will my routines keep working when the internet goes down?
If you have stuck to local-first apps, almost all of them will. Zigbee, Z-Wave, Matter over Thread, and Wi-Fi devices that speak local APIs do not need the WAN. The exceptions are anything that still depends on a vendor cloud, which is why a local-first build favours devices with documented local control.
Is Home Assistant the best app for a local-first smart home?
For most builds, yes. Its integration count, automation engine, and active community make it the default. openHAB still wins for legacy protocols, and Domoticz is the better fit on very low-power hardware.
Can I avoid the cloud entirely and still use voice control?
Yes. Home Assistant’s Assist pipeline runs speech-to-text, intent matching, and text-to-speech on the local network, and a project like Wyoming or a Whisper add-on handles the heavy lifting on a mini PC. The accuracy is close enough to the big cloud assistants for routine commands, with no recordings leaving the house.