Nagi plays the music already on your computer, and can stream from your own Navidrome or Jellyfin server. Point it at your folders and it builds and maintains the library, plays almost any format through LibVLC, and stays offline unless you add a server or turn on an online service. The privacy policy lists what each service sends.
Windows 10 (1809 or later) or Windows 11, on x64 or ARM64. The Store version updates through the Store; the GitHub release is a signed MSIX bundle that updates itself from GitHub.
Library
- Folder-based library that rescans automatically when files change.
- Streaming from your own Navidrome or other OpenSubsonic server, or Jellyfin 10.11 and later, alongside your local music. Favorites and play counts sync both ways, the server's playlists show up read-only next to yours, and lyrics stored on the server are used first.
- MP3, FLAC, AAC, OGG, WAV, AIFF, APE, DSD, M4A, WMA, WavPack and more.
- Playlists, rule-based smart playlists, and M3U export.
- Favorites (Ctrl+D), stored in Nagi's database without touching your files.
- Searchable listening history and an Insights page.
- Choose which columns song lists show, such as BPM, plays or date added, and open Song Info for a track's tags and file details.
Playback
- Up Next pane with reordering, shuffle and repeat. Drop files or folders on the player to queue them without importing.
- Listening mixes: More Variety spaces out artists and skips recent plays, Rediscover picks songs not heard in 30 days, Unheard plays songs you've never played.
- Play for… builds a queue that fits a chosen duration.
- Sleep timer: after the current song, at the end of the queue, or after a set time.
- 10-band equalizer with preamp, ReplayGain normalization measured locally, and 0.5× to 2× speed without pitch change.
Lyrics and appearance
- Lyrics from embedded tags,
.lrcfiles, or optional online providers. Click a synced line to seek to it. - Local romanization for Japanese, Korean and Hindi lyrics via downloadable packs.
- Mica, Mica Alt and Acrylic backdrops, with colors taken from the current album art.
- Resizable always-on-top mini-player.
Windows integration
- Tray popup, media keys, system media controls and taskbar thumbnail buttons.
- Jump list entries to shuffle the library or open the mini-player.
Optional online services (off by default)
- Last.fm and ListenBrainz scrobbling, with an offline queue.
- Discord Rich Presence.
- Artist images, biographies and album covers from MusicBrainz, Wikipedia, Cover Art Archive, fanart.tv, TheAudioDB, Deezer, Apple Music and Last.fm.
- Lyrics from LRCLIB and NetEase.
Requirements:
- Visual Studio 2026 (18.0) or later with the .NET Desktop Development and Universal Windows Platform development workloads.
- .NET 10 SDK 10.0.401 or later (see
global.json). ffmpegonPATH, only for the loudness tests and scan benchmarks.
Clone the repository, open Nagi.sln, set the platform to x64 or ARM64, and run Nagi (Package).
git clone https://github.com/Anthonyy232/Nagi.gitBuild an unsigned MSIX bundle
From src/Nagi.WinUI:
dotnet publish Nagi.WinUI.csproj -c Release -r win-x64 -p:Platform=x64 -p:PublishReadyToRun=true -p:GenerateAppxPackageOnBuild=false
dotnet publish Nagi.WinUI.csproj -c Release -r win-arm64 -p:Platform=ARM64 -p:PublishReadyToRun=true -p:GenerateAppxPackageOnBuild=false
dotnet msbuild Nagi.WinUI.csproj -p:Configuration=Release -p:Platform=x64 -p:GenerateAppxPackageOnBuild=true -p:AppxBundle=Always "-p:AppxBundlePlatforms=x64|ARM64" -p:AppxPackageSigningEnabled=FalseGitHub releases are signed through SignPath in CI.
Run the tests
dotnet test --project tests/Nagi.Core.Tests/Nagi.Core.Tests.csproj -c Release
dotnet test --project tests/Nagi.Presentation.Tests/Nagi.Presentation.Tests.csproj -c Release
dotnet test --project tests/Nagi.WinUI.Tests/Nagi.WinUI.Tests.csproj -c Release -p:Platform=x64The suites use xUnit on Microsoft.Testing.Platform and run on every pull request.
Add a database migration
dotnet ef migrations add <name> --project src\Nagi.Core --startup-project src\Nagi.Core --context MusicDbContext --no-build| Path | Contents |
|---|---|
src/Nagi.Core |
Library scanning, database, playback queue, playlists, metadata, lyrics, scrobbling, ReplayGain |
src/Nagi.Presentation |
Platform-neutral view models, app services and localized strings |
src/Nagi.Audio.LibVlc |
LibVLC audio player |
src/Nagi.WinUI |
The Windows app: XAML, windowing, tray, media controls, MSIX packaging |
tests/ |
Core, Presentation and WinUI test suites |
benchmarks/Nagi.Benchmarks |
Scanning and query benchmarks (README) |
tools/ |
Romanization pack builder and packs |
api/NagiAppFunctions |
Azure Functions app that serves third-party API keys so they aren't shipped in the client |
Everything except Nagi.WinUI targets plain net10.0. See AGENTS.md for architecture and code conventions.
.NET 10, WinUI 3, LibVLCSharp, EF Core with SQLite, ATL, libebur128 (build notes), ModernLrc, ImageSharp, Material Color Utilities, Windows Community Toolkit, H.NotifyIcon and Serilog.
Issues and pull requests are welcome. Translations are handled on Crowdin and need no code changes.
If you'd like to support development, you can sponsor on GitHub.






