lazygit 风格的 NuGet TUI

发布: (2026年2月22日 GMT+8 01:22)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for lazygit‑style TUI for NuGet

如果你曾经使用过 lazygit,你就会明白那种感觉。Git 不再是一件苦差事,而是几乎变得让人享受。你可以一次性看到所有信息,使用键盘进行导航,并在几秒钟内完成原本需要多条命令的操作。

我想把这种体验带到 NuGet 上。

dotnet list package --outdated 会输出一大堆文本。更新意味着对每个包都要运行单独的命令。检查漏洞又是另一条命令。搜索 NuGet.org 还是另一条命令。如果你在一个包含 10+ 项目的解决方案中工作,就会不停地在上下文之间切换。

于是我创建了 LazyNuGet

LazyNuGet dashboard

功能概述

你只需把 LazyNuGet 指向一个文件夹,它会扫描所有 .csproj 文件。每个项目、每个包、每个版本——全部集中在一起。后台会悄悄地查询 NuGet.org,获取更新和漏洞信息。完成后,过时的包会以黄色高亮,存在漏洞的包会显示红色徽章。

随后你可以:

  • 更新 单个包或一次性更新全部(Ctrl+U
  • 搜索 NuGet.org 而无需离开终端(Ctrl+S)——浏览结果、阅读描述、选择版本、安装到一个或多个项目
  • 查看依赖树Ctrl+D)以了解任意项目或包的依赖关系
  • 迁移已弃用的包 到推荐的替代包,一键完成
  • 浏览版本历史、发行说明、安全通告和下载统计,使用标签页(F1–F5)
  • 跟踪操作历史,并可撤销或重试最近的更改(Ctrl+H
  • 使用私有源——支持带有存储凭据的已认证 NuGet 源

键盘和鼠标均可完整操作。

Package details

选中一个包后,会出现标签页视图——概览、依赖、版本历史、发行说明和安全通告。所有信息均实时从 NuGet.org 获取。

Search NuGet.org

搜索模态框让你浏览 NuGet.org,阅读包描述,并可安装到一个或多个项目——无需离开终端。

Dependency tree

入门指南

如果已安装 .NET 10

dotnet tool install --global LazyNuGet
lazynuget

或者直接获取自包含二进制文件(无需 .NET)

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

然后运行:

lazynuget /path/to/your/solution
# 或者直接 cd 到该目录后运行 lazynuget

技术栈

使用 .NET 10、Spectre.ConsoleSharpConsoleUI 构建——后者是我自己编写的 TUI 布局库,负责响应式面板、窗口管理以及终端中的鼠标支持。

仍在早期阶段

如果你尝试了它,真诚期待听到哪些地方出错或缺少哪些功能。Issue 和 star 都非常感谢。

GitHub:

0 浏览
Back to Blog

相关文章

阅读更多 »