A personal hi-fi front panel for nugs.net live music — a 100% native WinUI 3 Windows app. Fast search, a real queue, gapless playback, keyboard-first. No WebView, no proxy, no DRM games.
The official nugs UI has slow search, weak queue/playlist UX, and no keyboard shortcuts. nugsdotnet is a faster front panel for the same catalog, run against your own subscription. It streams what you're entitled to and nothing more — no content is downloaded, redistributed, or stripped of DRM. Personal use only.
| App | WinUI 3 (Windows App SDK 2.x) · unpackaged, self-contained |
| Runtime | .NET 10 · Windows 10 2004+ / Windows 11, x64 or arm64 |
| Audio | FLAC 16/44 preferred, ALAC / MQA / AAC fallbacks, HLS adaptive · gapless via MediaPlaybackList look-ahead |
| Auth | nugs password grant · tokens DPAPI-encrypted at rest |
| Identity | RECEIVER '74 — warm-VFD dark/amber, custom title bar, brand type |
No proxy, no WebView: the app talks to nugs directly. Auth and catalog calls go
straight to the API, and audio feeds MediaPlayer from an in-process
IRandomAccessStream that issues ranged CDN GETs with the required
Referer/User-Agent itself — the whole reason the retired web heads needed a
loopback server, done in-process.
nugs.net API + CDN
│
┌─────┴──────────────────────────────────────────────┐
│ Nugsdotnet.Native.Core auth · catalog · picks │ net10.0, tested on any OS
├────────────────────────────────────────────────────┤
│ Nugsdotnet.Native WinUI 3 front panel │ HttpAudioStream → MediaPlayer
└────────────────────────────────────────────────────┘
| Project | Role |
|---|---|
native/Nugsdotnet.Native.Core |
Platform-agnostic: auth, DPAPI session store, catalog, stream resolver, recents |
native/Nugsdotnet.Native |
The WinUI 3 app: views, playback, imaging, RECEIVER '74 theme |
native/Nugsdotnet.Native.Tests |
xUnit suite for Core — runs cross-platform, gates CI |
Grab the latest nugsdotnet-<version>-x64-setup.exe from
Releases — a per-user install, no admin, fully
self-contained (no .NET or runtime installs). Each release also carries a
winget manifest:
winget install --manifest .\nugsdotnet-<version>-winget-manifestsCut-a-release details live in docs/RELEASING.md.
Requires the .NET 10 SDK on Windows. No MAUI workload, no MSIX — the Windows App SDK arrives via NuGet.
# credentials via environment (the login screen's default), or type them in the UI
$env:NUGS_EMAIL = "you@example.com"
$env:NUGS_PASSWORD = "your-password"
dotnet run --project native\Nugsdotnet.Native\Nugsdotnet.Native.csprojThe full tour — dashboard home, transport, the Ctrl+D mini-player inspector
with live stream metrics, gapless internals, roadmap — lives in
native/README.md.
Media keys and the Windows media flyout work too (SMTC with full metadata).
Phases 1–3 are landed: player, browse, dashboard, gapless, SMTC, resume-on-launch (queue + position primed on relaunch), HLS playback, remembered window/volume state, a local stash (star an album, it lands on the Home rail), and tag-triggered installer + winget distribution. Next up, as the itch strikes:
- Code signing — Azure Trusted Signing to retire the SmartScreen prompt (hook is already in the release workflow).
- Stash sync — push the local stash server-side if nugs' API ever exposes a favorites surface (none documented today).
◖ History — the web & MAUI era
This repo originally hosted three heads: a Blazor WebAssembly web app, a .NET
MAUI Blazor Hybrid desktop app, and this native head. The WinUI client was the
goal all along — once it reached feature parity (and then some), the
Blazor/MAUI projects were retired. They live on in git history through the
v0.2.1 tag and its releases, alongside the design notes under
docs/superpowers/.
Built with .NET 10 · WinUI 3 · Windows App SDK — for personal use against your own nugs.net subscription. Not affiliated with nugs.net.

