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.
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.
Selecting a package gives you a tabbed view — overview, dependencies, version history, release notes, and security advisories. All fetched live from NuGet.org.
The search modal lets you browse NuGet.org, read package descriptions, and install to one or multiple projects — without leaving the terminal.
Getting started
If you have .NET 10 installed:
dotnet tool install --global LazyNuGet
lazynuget
Or grab the self-contained binary (no .NET required):
curl -fsSL https://raw.githubusercontent.com/nickprotop/lazynuget/main/install.sh | bash
Then just run it:
lazynuget /path/to/your/solution
# or just cd there and run lazynuget
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)