Skip to content

vitco/prism-desktop-home-automation

 
 

Repository files navigation

Prism Desktop

A Home Assistant desktop app for Windows & Linux — control your smart home from your PC.

License: MIT Platform Home Assistant GitHub Releases

Prism Desktop – Home Assistant dashboard on Windows ---

What is Prism Desktop?

Prism Desktop is a lightweight Home Assistant client for Windows and Linux. 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 or Linux instead of a browser tab.


Table of Contents


Features

  • 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.

Supported Entity Types

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

3D Printer Tile

Dedicated tile for 3D printer monitoring:

  • Live camera feed
  • Nozzle temperature & target
  • Bed temperature & target
  • Print state

Adjustable Grid

gif-grid

Widget Overlays

gif-overlay


Keyboard Shortcuts

  • 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.

Installation

Windows Installer

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.


Linux (AppImage)

Download the latest .AppImage from the Releases page.

chmod +x PrismDesktop-x86_64.AppImage
./PrismDesktop-x86_64.AppImage

Ubuntu 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.

Nix (flakes)

Run directly without installing:

nix run github:lasselian/prism-desktop

Add to your profile:

nix profile add github:lasselian/prism-desktop#default

Running from Source

git clone https://github.com/lasselian/prism-desktop.git
cd prism-desktop
pip install -r requirements.txt
python main.py

Configuration

On first launch, you'll be prompted for:

  1. Your Home Assistant URL (e.g. http://homeassistant.local:8123)
  2. A Long-Lived Access Token — generate one in your Home Assistant profile under Security → Long-Lived Access Tokens

Building

Windows

python build_exe.py

This runs PyInstaller and outputs a single-file executable to dist/. To build the installer, open setup.iss with Inno Setup and compile.

Linux (AppImage)

  1. Download appimagetool-x86_64.AppImage from the appimagetool releases and place it in the project root.
  2. Run the build script:
python3 build_linux.py

This builds the binary, creates an AppDir, and packages it into an AppImage.


Troubleshooting

WS Error: 400 – Duplicate 'Server' header found

Your reverse proxy is adding a duplicate Server header. Fix for common proxies:

  • Caddy: Add header_up -Server to your reverse_proxy block.
  • Other proxies: Check for a similar "remove upstream header" option.

License

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

About

A customizable desktop dashboard for Home Assistant.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.1%
  • Other 0.9%