新功能:更新现在直接在界面内运行
一条命令。
153 个来源
全部保持最新。
别再逐个折腾 winget、brew、npm、pip、cargo 和 helm 了。gup 并行扫描所有来源,列出哪些已过时,再在界面内嵌的终端里实时更新你选中的软件包。
npm install -g @charles_lindecker/gup --allow-scripts=node-pty
- MIT · 开源
- Node ≥ 26
- Windows · macOS · Linux
- 零遥测
- 无守护进程 · 定时更新按需开启
gup v0.5.147 detected5 updatesnormal mode
Menu
- Scan
- Packages5
- Schedules1
- Providers
- Journal
- Options
- Quit
Packages
| Selection | Package | Current | Latest |
|---|---|---|---|
| partly checked | Homebrew2/3 | ||
| checked | ripgrep | 14.1.0 | → 14.1.1 |
| checked | fzf | 0.54.0 | → 0.55.0 |
| not checkedscheduled | bat | 0.24.0 | → 0.25.0 |
| partly checked | npm (global)1/2 | ||
| checked | typescript | 5.5.4 | → 5.6.2 |
| not checked | pnpm | 9.6.0 | → 9.12.1 |
space check · / filter · p schedule · a check all · ↑↓ navigate · r rescan · enter update (3) · tab menu · q quit
gup language fr 即可切换为法语。命令、参数和 JSON 输出在任何语言下都一样。01 / 功能
一切都在同一个界面中完成。
扫描、选择、更新、定时、回顾——gup 让你始终停留在一个全屏终端应用中。
新
无需离开 gup 即可更新
安装程序在界面内嵌的终端面板中运行,进度条、交互提示和颜色都原样保留。更新完成的软件包随即从列表中移除,无需重新扫描。如果内嵌终端不可用,gup 会说明原因,改在你自己的终端中更新。
多选,一次启动
按 空格 勾选软件包,按 a 全选,按 回车 启动。一个队列,一份汇总。
新
按软件包定时更新
勾选软件包后按 p:
ripgrep每周自动更新,node保持不动。定时任务只针对软件包,从不针对整个 provider;操作系统的任务计划程序会短暂启动 gup,执行到期的任务,没有任何常驻进程。活动日志
每次扫描和更新都会记录在本地。终端图表展示你的活动以及哪些软件包更新最频繁;还可以导出日志用于排查问题。
新
HTML 报告
gup report(或在活动日志中按 o)会在浏览器中打开一份清晰、可导航的历史报告——单个离线文件,人人都能看懂,不只是终端用户。始终清晰可读的主题
十个内置主题,或使用你自己的颜色:gup 会按 WCAG AA 检查每一种(文字 4.5:1,边框 3:1,选择 AAA 时为 7:1),并修正不达标的颜色。
了解你的操作系统
无法在你的系统上运行的 provider 会显示为灰色,而不是被隐藏:在 Mac 上,仅限 Windows 的工具会如实标明,反之亦然。
为脚本和 CI 而生
gup list --json、稳定的退出码、用-y跳过确认,以及绕过扫描的provider:package目标。
02 / 覆盖范围
153 个来源。三个系统。一个二进制文件。
Windows、macOS 和 Linux 上运行的是同一个可执行文件——相同的 provider 契约,相同的 JSON。变化的只是 gup 能驱动的操作系统层。
主要平台
Windows
- 支持的 provider
- 139 / 153
- winget
- scoop
- chocolatey
- WSL
WSL 桥接:在你的发行版中驱动 apt、dnf、pacman、Flatpak、Nix 和 Linuxbrew。
原生支持
macOS
- 支持的 provider
- 132 / 153
- Homebrew
- Homebrew Casks
- MacPorts
- Mac App Store
Apple Silicon 和 Intel · 自动解析 brew Cellar 符号链接 ·
mas可选。原生支持
Linux
- 支持的 provider
- 126 / 153
- Homebrew / Linuxbrew
- Nix
- apt · 委托
- dnf · 委托
通过
dpkg -S或rpm -qf找到二进制文件的归属,再把更新交还给对应的包管理器。
各平台一致
- npm
- pnpm
- yarn
- bun
- pip
- pipx
- uv
- cargo
- rustup
- gem
- composer
- dotnet tools
- helm
- kubectl
- terraform
- VS Code
- JetBrains
- gh extensions
- pwsh modules
- asdf
- mise
全部 153 个 provider,按领域分类
- 系统包管理器
- brew · brew-cask · choco · cygwin · fink · macports · mas · msys2 · nix · npackd · pkgin · pkgx · scoop · sparkle · winget
- WSL
- wsl · wsl-apt · wsl-brew · wsl-dnf · wsl-flatpak · wsl-nix · wsl-pacman
- Node.js
- bun-g · corepack · deno · fnm · npm-g · nvm · nvm-windows · pnpm-g · volta · yarn-g
- Python
- conda · pdm · pip · pipx · poetry · pyenv · pyenv-win · rye · uv-tools
- .NET 与 PHP
- composer-g · composer-self · dotnet-sdk · dotnet-tools · nuget · phive · symfony-cli
- JVM
- coursier-cs · jbang
- Rust
- cargo · rustup
- 其他语言
- R-packages · cabal · flutter · gem · hex · julia-pkg · luarocks · mint · mix-archive · nimble · opam · pub-global · stack · vcpkg
- 版本管理器
- asdf · goenv · mise · proto · sdkman · swiftly
- 云平台 CLI
- aws-cli-v2 · az · doctl · flyctl · gcloud · hcloud · heroku · linode-cli · oci-cli · railway · scw · supabase
- 基础设施即代码
- boundary · consul · nomad · opentofu · packer · pulumi · terraform · terragrunt · tflint · vault
- Kubernetes
- argocd · flux · helm · helm-plugins · helm-repo · k3d · kind · krew · kubectl · kustomize · minikube · skaffold · tilt
- 容器
- dive · docker-desktop · nerdctl · oras · podman-desktop · rancher-desktop
- 安全工具
- cosign · gitsign · grype · nuclei · nuclei-templates · pdtm · rekor · semgrep · syft · trivy
- 开发者 CLI
- delta · gh-ext · git-for-windows · glab · jj · lazydocker · lazygit · tea
- IDE 与编辑器
- cursor-ext · jetbrains · visual-studio · vscode-ext · vscodium-ext · windsurf-ext
- 编辑器插件
- nvim-lazy · nvim-mason · nvim-packer · vim-plug
- 嵌入式与移动开发
- android-sdk · arduino-cli · expo · fastlane · platformio · xcodes
- Shell 与提示符
- nerd-fonts · oh-my-posh · psresource · pwsh-modules · starship
- gup 自身
- self
03 / 工作原理
它是编排器,而不是又一个包管理器。
gup 并行调用各个工具自己的命令,再把结果整齐汇总。没有包注册表,没有缓存,也不会留下任何后台进程。
扫描
每个检测到的 provider 响应
listOutdated(),每次并发四个。某个出错只会影响它自己那一行。选择
按 provider 分组查看软件包,筛选、勾选——或者用
gup update brew:fzf直接跳过扫描。更新
原生命令以参数向量的形式运行,从不经过 shell。每一次尝试都会记入本地日志。
05 / 常见问题
问题解答。
gup 会取代 winget、brew 或 npm 吗?
不会。gup 在同一个界面背后编排各工具的原生命令(winget upgrade、brew outdated、npm update -g、pip list --outdated……)。没有自创协议,也没有版本缓存。
支持 macOS 和 Linux 吗?
支持。在 macOS 上原生运行:Homebrew 的 formula 与 cask、MacPorts 以及 Mac App Store,Apple Silicon 和 Intel 均支持。在 Linux 上,系统层由 Homebrew/Linuxbrew 和 Nix 负责,发行版安装的二进制文件会交还给 apt 或 dnf 处理。系统层之上的一切——npm、pip、cargo、helm、VS Code……——在三个系统上的表现完全一致。
如何安装 gup?
运行 npm install -g @charles_lindecker/gup --allow-scripts=node-pty,然后用 gup doctor 查看检测到了哪些 provider。需要 Node.js 26.9.0 或更高版本。--allow-scripts=node-pty 允许 node-pty 的安装脚本运行,内嵌终端正是依靠 node-pty:不加这个参数,npm 11 会发出警告,npm 12 则会跳过这些脚本。
可以在 CI 中使用 gup 吗?
可以。gup list --json --fast 提供机器可读的输出,gup update --all -y 会跳过所有确认。退出码保持稳定:0 表示成功,1 表示部分失败,2 表示参数无效。
gup 支持多少个包管理器?
153 个 provider,每个都是独立模块:winget、scoop、chocolatey、Homebrew、MacPorts、npm、pnpm、pip、uv、cargo、gem、composer、dotnet 工具、helm、kubectl、terraform、VS Code 扩展、JetBrains IDE、WSL 发行版等等。
运行它安全吗?
每个子进程都经由唯一的入口,以严格的参数向量运行——从不经过 shell——并受测试锁定的允许列表约束。CodeQL、Semgrep、gitleaks、audit-ci 和 Dependabot 持续运行。gup 不发送任何遥测数据。
它和 topgrade 有什么不同?
topgrade 直接执行更新;gup 会先回答“哪些已过时,从哪个版本到哪个版本”。扫描是独立的一步,支持 JSON 输出、逐个软件包选择、provider:package 目标、按软件包定时更新,以及可随时查看的本地历史记录。
界面是什么语言?
默认为英语。gup language fr 会将界面切换为法语并保存这一选择;GUP_LANG=fr 则只对单个 shell 生效,并优先于该选择。命令、参数和 JSON 输出与语言无关,本站提供八种语言版本。
06 / 安装
三十秒,一切了然。
一次 npm 安装,一条命令,就能看到你机器上所有过时内容的完整清单。
npm install -g @charles_lindecker/gup --allow-scripts=node-pty
gup全屏界面gup list --fast过时内容,快速扫描gup update --all -y全部更新,无需确认(CI)gup update brew:fzf单个软件包,跳过扫描gup doctor检测到了什么,以及如何安装其余部分
