A native, OS-integrated desktop client for Home Assistant. More than a browser wrapper — it turns your PC into a first-class Home Assistant device, reporting hardware sensors, syncing OS state, and letting you control your home from the keyboard.
| Category | What it does |
|---|---|
| Smart Connect | Auto-switches between your local and remote HA URL; WebSocket keeps connection status real-time |
| Desktop Sensors | Reports CPU, RAM, battery, uptime, active app, mic/camera state, and Do-Not-Disturb to HA |
| Multi-Server | Manage several HA instances from the tray and Preferences → Servers |
| Startup Dashboard | Open any Lovelace view on launch (e.g. /lovelace/home) |
| Window Persistence | Remembers size, position, and maximized state across restarts |
| Biometric Lock | TouchID / Windows Hello before the window shows |
| Media Keys | Physical keyboard media keys routed to a HA media player entity |
| PiP Window | Tear off a floating always-on-top panel for cameras or dashboards |
| Deep Linking | ha-desktop://path opens a specific page from any app or shortcut |
| Custom CSS | Inject styles to hide the HA header, tweak cards, change fonts |
| Startup Scripts | Run local shell commands when the app launches (with safe-mode prompt) |
| 7 languages | EN · FR · ES · DE · IT · PT · NL |
| Wayland | Native Wayland window decorations on Linux (no XWayland required) |
|
Download .exe Squirrel installer, auto-updates included |
Download .dmg Universal binary (Intel + Apple Silicon) |
Download .deb / .rpm Native Wayland + X11 support |
macOS — "App is damaged" error
Run this once in Terminal after moving the app to Applications:
xattr -d com.apple.quarantine "/Applications/Home Assistant Desktop.app"- Launch the app — you'll see the 3-step setup wizard.
- Step 1 — Local URL: enter your HA address (e.g.
http://homeassistant.local:8123). - Step 2 — Remote URL (optional): your Nabu Casa or DuckDNS URL for when you're away from home.
- Step 3 — API Token (optional): a Long-Lived Access Token from your HA profile, needed for sensor reporting.
- Click Finish — the main window opens and your dashboard loads.
Smart Connect automatically picks the fastest reachable URL on every launch.
The app creates Home Assistant entities automatically when a valid API token is configured.
| Entity | Type | Description |
|---|---|---|
sensor.desktop_cpu_usage |
sensor | CPU load (%) |
sensor.desktop_memory_usage |
sensor | RAM used (%) |
sensor.desktop_status |
sensor | Active / Idle |
sensor.desktop_uptime |
sensor | System uptime (hours) |
sensor.desktop_battery_level |
sensor | Battery % (laptops) |
sensor.desktop_battery_status |
sensor | charging / discharging |
sensor.desktop_active_app |
sensor | Foreground app name |
binary_sensor.desktop_microphone |
binary sensor | Mic in use |
binary_sensor.desktop_camera |
binary sensor | Camera in use |
binary_sensor.desktop_dnd |
binary sensor | Do-Not-Disturb active |
All sensors are configurable individually in Preferences → Sensors. Reporting interval: 1 / 5 / 15 minutes. Power Saver Mode reduces frequency on battery.
Go to Preferences → Servers to add multiple HA instances (home, office, vacation house…). The tray icon shows a radio submenu to switch between them instantly — no reconfiguration needed.
| Shortcut | Action |
|---|---|
Ctrl / Cmd + , |
Open Preferences |
Ctrl + Alt + H |
Toggle window visibility (Boss Mode) — enable in Preferences |
| Media Play/Pause / Next / Prev | Control the configured HA media player |
git clone https://github.com/nexos20lv/Home-Assistant-Desktop.git
cd Home-Assistant-Desktop
npm install
npm start # development
npm run make # production installerRequires Node.js 22+ and npm 10+.
Pull requests are welcome. Please open an issue first for anything larger than a bug fix.
See docs/Development.md for architecture notes and build instructions.
Crafted with care by NeXoS_20 · MIT License