A fast, lightweight desktop music player powered by Tauri and WebView2.
Built as a personal alternative to bloated Electron-based wrappers — same experience, leaner footprint.
- Album color theme — UI tints to match the current album art
- Ambient mode — blurred glow effect behind the player
- Clock — time display in the nav bar
- Compact sidebar — collapsed sidebar by default
- Precise volume — fine-grained scroll-wheel volume control with HUD
- Exponential volume — more natural volume curve at low levels
- Audio compressor — dynamic range compression for consistent loudness
- Performance improvements — CPU/GPU optimizations for smoother playback
- Discord Rich Presence — shows what you're listening to on your Discord profile
- Last.fm scrobbling — tracks your listening history via Last.fm
- Global shortcuts — media key support and configurable hotkeys
- In-app settings panel — ⚙ button to toggle plugins and configure integrations
- Tauri v2 + WebView2 (Windows)
- Solid.js — renderer UI
- Rust — native backend (config, IPC, Discord RPC, Last.fm, global shortcuts)
- Windows 10/11 (WebView2 is pre-installed on Windows 11; auto-installs on Windows 10)
- Node.js >= 22
- pnpm >= 10
- Rust stable
git clone https://github.com/fizray/sonora
cd sonora
pnpm install
pnpm renderer:build
pnpm tauri devpnpm tauri buildProduces a Windows installer in src-tauri/target/release/bundle/.
Settings are stored at %APPDATA%\com.fizray.sonora\config.json.
Use the ⚙ button (bottom-right of the app) to:
- Toggle plugins on/off
- Enter Last.fm API credentials and connect your account
- Changes apply after reload (Ctrl+R)
- Create an API account at last.fm/api/account/create
- Open the ⚙ panel → paste your API key and shared secret
- Enable Scrobbler → reload → click Connect Last.fm → approve in the popup
Enable Discord Rich Presence in the ⚙ panel → reload. Requires Discord desktop app to be running.
MIT © fizray