A music player for your own Navidrome or Subsonic server, on Android, desktop, the terminal and the iPod touch.
Still in development. nori changes quickly: its screens and settings will change between versions, and it will soon get its own design language. Bugs and ideas are welcome in Issues.
- Sleeps between bursts. Music is decoded ahead and the CPU sleeps in between; nothing ticks with the screen off.
- Sounds right. Gapless albums, AutoMix transitions on the beat, an equalizer with AutoEQ curves, a sound for each output.
- Finds the words. Your server's lyrics first, then lyrics services online, scored, word by word where they have it.
- One core, every screen. One Rust core plays, queues and decides; each app only draws.
- Yours. No nori account or analytics; connect your own server account, and downloads play offline.
- Android: the APK from the latest release, or see norifm.com.
- Desktop and terminal: Linux and macOS packages for ARM64 and x86-64 are in the latest release. Use the download picker or follow the installation guide.
- iPod touch (6th generation, iOS 12, jailbroken): the
.ipafrom the latest release, and the iPod guide.
Website · Docs · Changelog · Contributing
cargo test -j4 --workspace # Rust tests, including doctests
cargo run --release -p nori-desktop # the desktop client
cargo run --release -p nori-cli # the terminal client
tools/check.sh android -PrustTargets=arm64-v8a # a debug Android APKAndroid builds need the Android SDK, NDK, Rust Android targets, and cargo-ndk. Desktop builds need
the platform libraries listed in Building. Cargo commands use Cargo;
the optional native Bazel backend is described there too. Run Cargo with at most four jobs.
MIT. See LICENSE; third-party licenses are in NOTICE and in the app under Settings, About, Licenses.


