Modern local-first audio player for the browser and for desktop (via Tauri).
| Desktop | Custom Theme | Lyrics and Visualizer | Settings |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Mobile | Custom Theme | Lyrics and Visualizer | Settings |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Local-first: import your own audio and keep the whole library on your device. No account, no upload.
- Reads tags, cover art, and lyrics on import, with metadata from MusicBrainz and Discogs.
- Pluggable audio backends, including a Symphonia WASM decoder for formats the browser cannot play natively.
- Gapless playback and equal-power crossfade, plus a 10-band equalizer, ReplayGain, and tempo/pitch control.
- Playlists, folders, drag-and-drop, smart shuffle, and M3U import/export.
- 64 visualizers, 8 wallpapers, 29 color palettes, and 8 icon packs.
- Rebindable keyboard shortcuts and English/French localization.
- Runs as an installable PWA, a Tauri desktop app, or a single self-contained HTML file.
git clone https://github.com/Audiflo/Muzari.git
cd Muzari/Build
npm install
npm run build:wasm # build the Symphonia decoder (once)
npm run dev:web # or: npm run dev:desktopProduction builds:
npm run build:web # web/PWA into dist/
npm run build:desktop # native Tauri bundle
npm run build:single # one self-contained HTML fileRequires Node.js 20+ and, for the WASM decoder, Rust with wasm-pack. See Docs/BUILD.md for prerequisites and the full platform matrix.
Contributions are welcome. Fork the repo, make your changes under Build/, then run npm run lint and npm test before opening a PR against main.
Starring the repository would be amazing, especially if you use the player!
Trickiy 🤔 🐛 🎨 |
MIT. See LICENSE for the full text.
Chromebook, ChromeOS, and the ChromeOS logo are trademarks of Google LLC.







