Nagi is a music player focused on speed, simplicity, and privacy. Featuring a resizable mini-player, interactive lyrics, and wide format support, Nagi is built with C# and WinUI 3 to offer a clean, native Fluent experience. It's beautiful, efficient, and respects your privacy.
- Fluent & Modern UI: A beautiful, responsive interface built with WinUI 3, featuring customizable backdrops (Mica, Mica Alt, Acrylic) and smooth animations.
- Dynamic Theming: The app's color scheme adapts in real-time to the artwork of the currently playing song for a truly immersive experience.
- Synced Lyrics: Display synced lyrics from embedded tags or external
.lrcfiles. Tap any line to jump directly to that moment in the song. - Resizable Mini-Player: A sleek, always-on-top mini-player with playback controls, album art, and an efficiency mode for low resource usage.
- Folder-Based Library: Add your music folders and Nagi automatically scans, organizes, and keeps your collection up to date.
- Playlists & Smart Playlists: Create custom playlists or powerful rule-based smart playlists that automatically update as your library grows.
- Queue Management: Build and customize your listening queue on the fly with full shuffle and repeat controls.
- 10-Band Equalizer: Fine-tune your sound with a fully customizable 10-band equalizer and pregain control.
- Volume Normalization: ReplayGain support ensures consistent volume levels across your entire library.
- Last.fm & Discord Integration: Scrobble your tracks to Last.fm, fetch artist metadata, and show off your listening activity with Discord Rich Presence.
- System Tray & Media Controls: Control playback from the system tray popup or use Windows media keys and transport controls.
- Wide Format Support: Play virtually any audio format including MP3, FLAC, AAC, OGG, WAV, AIFF, APE, DSD, M4A, WMA, WavPack, and more.
Localization support for Nagi is powered by Crowdin. Contributions to add new languages are always welcome!
- C# & .NET 10: The core programming language and framework for building robust Windows applications.
- WinUI 3 in Windows App SDK: The native UI platform for crafting modern, fluent interfaces on Windows.
- LibVLCSharp: A cross-platform .NET binding for LibVLC, enabling robust and wide-ranging audio format support.
- Community Toolkit for WinUI: A collection of controls, helpers, and services to simplify app development (e.g., ColorPicker, SettingsControls).
- Community Toolkit MVVM: A modern, fast, and platform-agnostic MVVM library.
- Entity Framework Core (SQLite): A modern object-relational mapper for .NET, used for local database storage.
- ATL (Audio Tools Library): A versatile library for reading and writing metadata in audio files.
- LrcParser: For parsing LRC lyrics files.
- SixLabors.ImageSharp: A cross-platform library for image processing.
- MaterialColorUtilities: For generating dynamic color schemes from artwork.
- H.NotifyIcon.WinUI: For creating and managing the Windows tray icon.
- Serilog: A structured logging library for diagnostics and debugging.
- XAML Behaviors: For implementing UI behaviors declaratively in XAML.
- Velopack: For automatic application updates (GitHub releases).
- Microsoft Dependency Injection: For implementing a loosely coupled and testable architecture.
Thanks to the creators and maintainers of all the open-source libraries that make Nagi possible.
This project is built using C# and the Windows App SDK.
- Visual Studio 2022 or later
- The ".NET Desktop Development" and "Universal Windows Platform development" workloads installed (includes Windows App SDK).
- .NET 10 SDK
-
Clone the repository:
git clone https://github.com/Anthonyy232/Nagi.git
-
Navigate to the cloned directory and open
Nagi.slnwith Visual Studio. -
In Visual Studio, set the Solution Platform to
x64(or your target architecture). -
Press
F5or click theโถ Nagi (Package)button to build and run the application.To build msixbundle, three commands must be ran in src/Nagi.WinUI (the first two will fail but create the proper R2R images):
# 1. Pre-build binaries for both platforms (triggers PGO/R2R optimization) dotnet publish Nagi.WinUI.csproj -c Release -r win-x64 -p:Platform=x64 -p:GenerateAppxPackageOnBuild=false dotnet publish Nagi.WinUI.csproj -c Release -r win-arm64 -p:Platform=arm64 -p:GenerateAppxPackageOnBuild=false # 2. Finalize the packaged MSIX bundle msbuild Nagi.WinUI.csproj -p:Configuration=Release -p:Platform=x64 -p:GenerateAppxPackageOnBuild=true
To perform a database migration:
dotnet ef migrations add <name> --project src\Nagi.Core --startup-project src\Nagi.Core --context MusicDbContext --no-buildAll contributions are welcome! Feel free to report issues, suggest features, or create pull requests for bug fixes and new features.
If you enjoy using Nagi and want to support its development, you can do so via GitHub Sponsors. Your support is greatly appreciated!
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.




