Desktop controller for Denon Heos wifi speakers.
Now built with Tauri v2! 🚀
- Automatic SSDP detection of speakers
- User friendly volume dial
- Playback controls (previous, play/pause, next)
- Native macOS menubar & shortcuts
- Development: Run
pnpm devto start the app in development mode. - Build: Run
pnpm buildto compile a production-ready application. - Open: Run
pnpm run opento launch the built application.
This project uses pnpm.
-
Install dependencies:
pnpm install
-
Run in Development Mode:
pnpm dev
- Hot-reloading is enabled for the frontend.
- The Rust backend will recompile on changes.
-
Build for Production:
pnpm build
This command will:
- Compile the Vite frontend.
- Compile the Rust backend.
- Bundle the macOS application (
.app). - Automatically Sign the bundle (Ad-Hoc) to ensure network permissions work.
Note: On macOS, you must have the app signed with
entitlementsto allow local network discovery (SSDP). The build script handles this for you automatically viascripts/sign.js.
The compiled application is located at:
src-tauri/target/release/bundle/macos/heos-controller.app
- Frontend: JavaScript, jQuery, Bootstrap-icons (Vite)
- Backend: Rust (Tauri v2)
- Protocol: HEOS CLI Protocol
- Detection and control of grouped speakers
- Details about the currently playing stream
- A slider to scrub and track playback position
- A "sources" media stream picker
