A Home Assistant desktop app for Windows, Linux & macOS — control your smart home from your PC.
---
Prism Desktop is a lightweight Home Assistant client for Windows, Linux and macOS. It lives in your system tray and gives you instant access to your smart home — lights, thermostats, cameras, sensors, and more — without opening a browser.
Built on Home Assistant's WebSocket API, it keeps your dashboard in real-time sync with your home. Control entities, trigger automations, and receive PC notifications, all from a sleek, customizable dashboard.
Perfect for: Home Assistant users who want a native desktop experience on Windows, Linux or macOS instead of a browser tab.
- System Tray Integration — The app lives in your tray until you need it; never gets in your way.
- PC Notifications — Receive Home Assistant alerts directly as desktop notifications.
- Morphing Controls — Click and hold a widget to expand it into granular controls like dimmers or thermostats.
- Drag & Drop Dashboard — Rearrange tiles freely by dragging them around the grid.
- Resizable Dashboard — Adjust the dashboard size to fit your screen and workflow.
- Real-time Sync — Powered by Home Assistant's WebSocket API for instant state updates.
- Customizable Appearance — Choose border effects (Rainbow, Aurora, and more) and customize button colors.
- Keyboard Shortcuts — Bind global shortcuts to toggle the app or trigger individual entities.
- Assist (beta) — Talk or type to Home Assistant's Assist pipeline from the dashboard. Off by default; turn it on under Settings → Assist (Beta).
| Category | Entities |
|---|---|
| Lighting & Power | Light, Switch |
| Climate | Climate (thermostat), Fan |
| Media | Media Controller |
| Covers | Curtain / Cover |
| Outdoor | Lawn Mower, Vacuum |
| Monitoring | Sensor, Sun, Weather, Camera |
| Automation | Automation, Scene, Script |
Dedicated tile for 3D printer monitoring:
- Live camera feed
- Nozzle temperature & target
- Bed temperature & target
- Print state
- App Toggle: Set a global shortcut in Settings → App toggle to show/hide the window from anywhere.
- Entity Shortcuts: Assign custom shortcuts to any button tile via the Add/Edit menu.
Download the latest PrismDesktopSetup.exe from the Releases page.
The installer will set up the app and optionally configure it to start with Windows.
Prefer not to install anything? Download the standalone .exe instead — it runs portably and stores its config in the same directory.
Download the latest .AppImage from the Releases page.
chmod +x PrismDesktop-x86_64.AppImage
./PrismDesktop-x86_64.AppImageUbuntu 22.04+ requires
libfuse2:sudo apt install libfuse2
GNOME:
- Install AppIndicator and KStatusNotifierItem Support via Extension Manager for system tray support.
- Wayland users: bind a custom shortcut in system settings to toggle the app:
/path/to/PrismDesktop-x86_64.AppImage --toggle
Per-entity shortcuts are not supported on GNOME Wayland. KDE:
- System tray works out of the box.
- App-toggle shortcut is supported via
org.freedesktop.portal.GlobalShortcuts. - Per-entity shortcuts are not supported on KDE.
Download the latest .dmg (or .zip) for your Mac from the Releases page:
PrismDesktop-macOS-arm64— Apple Silicon (M1/M2/M3/M4)PrismDesktop-macOS-x86_64— Intel Macs
- Install: Open the
.dmgand dragPrismDesktop.appinto your/Applicationsfolder. - First-Run Gatekeeper Approval (Unsigned App):
Because this open-source build is distributed without a paid Apple Developer certificate ($99/year), macOS Gatekeeper may show a security notice on first launch:
- Method 1 (Recommended Terminal command):
xattr -cr /Applications/PrismDesktop.app
- Method 2 (Finder):
Right-click (or Control-click)
PrismDesktop.appin/Applications, select Open, and click Open in the dialog.
- Method 1 (Recommended Terminal command):
- Global Shortcuts:
To allow Prism Desktop to listen for global keyboard shortcuts from anywhere on your Mac:
- Open System Settings → Privacy & Security → Accessibility.
- Click + and add PrismDesktop (or toggle the switch to ON).
- Menu Bar App: Prism Desktop lives in your top-right macOS Menu Bar (near the clock and Wi-Fi icons). Click the Prism cube icon to toggle your dashboard.
- Token storage: Because these builds are ad-hoc signed (no paid Apple Developer certificate), the macOS Keychain is not used — the app's code signature changes with every update, which would otherwise trigger repeated Keychain password prompts. Your Home Assistant token is instead stored in an encrypted file keyed to this Mac's hardware UUID. This protects the token at rest, but is weaker than the Keychain: other software running under your user account could potentially recover it.
Run directly without installing:
nix run github:lasselian/prism-desktopAdd to your profile:
nix profile add github:lasselian/prism-desktop#defaultgit clone https://github.com/lasselian/prism-desktop.git
cd prism-desktop
pip install -r requirements.txt
python main.pyOn first launch, you'll be prompted for:
- Your Home Assistant URL (e.g.
http://homeassistant.local:8123) - A Long-Lived Access Token — generate one in your Home Assistant profile under Security → Long-Lived Access Tokens
python build_exe.pyThis runs PyInstaller and outputs a single-file executable to dist/. To build the installer, open setup.iss with Inno Setup and compile.
- Download
appimagetool-x86_64.AppImagefrom the appimagetool releases and place it in the project root. - Run the build script:
python3 build_linux.pyThis builds the binary, creates an AppDir, and packages it into an AppImage.
- Install dependencies:
pip install -r requirements.txt pyinstaller- Run the macOS build script:
python3 build_macos.pyThis compiles PrismDesktop.app (supporting both Intel and Apple Silicon M-series Macs), applies an ad-hoc cryptographic signature, and generates .dmg and .zip releases in dist/.
Gatekeeper / First Launch Note: On modern macOS, remove the quarantine attribute after copying to
/Applications:xattr -cr /Applications/PrismDesktop.appor right-click (Control-click)
PrismDesktop.appand choose Open.Global Shortcuts: Grant Accessibility permissions in System Settings → Privacy & Security → Accessibility.
WS Error: 400 – Duplicate 'Server' header found
Your reverse proxy is adding a duplicate Server header. Fix for common proxies:
- Caddy: Add
header_up -Serverto yourreverse_proxyblock. - Other proxies: Check for a similar "remove upstream header" option.
MIT License — see LICENSE for details.
Keywords: Home Assistant desktop app, Home Assistant Windows client, Home Assistant Linux app, smart home dashboard PC, Home Assistant system tray, HA desktop client

