DEV Community

Cover image for lazygit-style TUI for NuGet
Nikolaos Protopapas
Nikolaos Protopapas

Posted on

lazygit-style TUI for NuGet

If you've ever used lazygit, you know the feeling. Git stops being a chore and becomes almost enjoyable. You can see everything at once, navigate with the keyboard, and do in seconds what used to take several commands.

I wanted that for NuGet.

dotnet list package --outdated gives you a wall of text. Updating means running a separate command for each package. Checking for vulnerabilities is another command. Searching NuGet.org is yet another. And if you're working across a solution with 10+ projects, you're context-switching constantly.

So I built LazyNuGet.

LazyNuGet dashboard


What it does

You point it at a folder and it scans for all .csproj files. Every project, every package, every version — all in one place. In the background it quietly checks NuGet.org for updates and vulnerability data. When it's done, the outdated packages light up yellow. Vulnerable ones show a red badge. You don't have to ask.

From there you can:

  • Update a single package or everything at once (Ctrl+U)
  • Search NuGet.org without leaving the terminal (Ctrl+S) — browse results, read descriptions, pick a version, install to one or multiple projects
  • View the dependency tree for any project or package (Ctrl+D)
  • Migrate deprecated packages to their recommended replacements in one step
  • Browse version history, release notes, security advisories, and download stats in tabbed panels (F1–F5)
  • Track operation history and undo or retry recent changes (Ctrl+H)
  • Work with private feeds — authenticated NuGet sources with stored credentials

It's fully usable with both keyboard and mouse.

Package details

Selecting a package gives you a tabbed view — overview, dependencies, version history, release notes, and security advisories. All fetched live from NuGet.org.

Search NuGet.org

The search modal lets you browse NuGet.org, read package descriptions, and install to one or multiple projects — without leaving the terminal.

Dependency tree


Getting started

If you have .NET 10 installed:

dotnet tool install --global LazyNuGet
lazynuget
Enter fullscreen mode Exit fullscreen mode

Or grab the self-contained binary (no .NET required):

curl -fsSL https://raw.githubusercontent.com/nickprotop/lazynuget/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Then just run it:

lazynuget /path/to/your/solution
# or just cd there and run lazynuget
Enter fullscreen mode Exit fullscreen mode

The stack

Built with .NET 10, Spectre.Console, and SharpConsoleUI — a TUI layout library I also wrote that handles responsive panels, window management, and mouse support in the terminal.


It's early

If you try it, I'd genuinely love to hear what breaks or what's missing. Issues and stars both appreciated.

GitHub: github.com/nickprotop/lazynuget

Top comments (0)