Novedad: las actualizaciones ya se ejecutan dentro de la interfaz
Un comando.
153 fuentes
al día.
Deja de perseguir a winget, brew y npm, pip, cargo y helm. gup los escanea todos en paralelo, te muestra lo que está desactualizado y actualiza lo que elijas en directo, en una terminal integrada en su interfaz.
npm install -g @charles_lindecker/gup --allow-scripts=node-pty
- MIT · código abierto
- Node ≥ 26
- Windows · macOS · Linux
- Sin telemetría
- Sin daemon · programación opcional
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. Los comandos, las opciones y la salida JSON son iguales en todos los idiomas.01 / FUNCIONES
Todo ocurre en una sola interfaz.
Escanea, elige, actualiza, programa y revisa: gup te mantiene en una sola app de terminal a pantalla completa.
Nuevo
Actualiza sin salir de gup
Los instaladores se ejecutan en un panel de terminal integrado en la interfaz, con barras de progreso, preguntas y colores intactos. Después, los paquetes actualizados salen de la lista, sin volver a escanear. Si la terminal integrada no está disponible, gup te dice por qué y actualiza en tu propia terminal.
Marca varios, lanza una vez
Marca paquetes con Espacio, selecciona todo con a y lanza con Intro. Una cola, un resumen.
Nuevo
Actualizaciones programadas, paquete a paquete
Marca paquetes y pulsa p:
ripgreppasa a actualizarse cada semana ynodese queda como está. Las programaciones apuntan a paquetes, nunca a un provider entero; el programador de tareas de tu sistema inicia gup un momento para ejecutar lo pendiente, así que nada se queda residente.Registro de actividad
Cada escaneo y cada actualización quedan registrados en local. Los gráficos en la terminal muestran tu actividad y qué paquetes se actualizan más a menudo; exporta el registro para depurar.
Nuevo
Informe HTML
gup report, o o en el registro de actividad, abre en el navegador un informe claro y navegable de tu historial: un único archivo sin conexión, legible por cualquiera, no solo por quien vive en la terminal.Temas que siguen siendo legibles
Diez temas integrados o tus propios colores: gup comprueba cada uno según WCAG AA (4,5:1 para el texto, 3:1 para los bordes, 7:1 si eliges AAA) y corrige lo que se queda corto.
Atento a tu sistema
Los providers que no pueden ejecutarse en tu sistema aparecen atenuados, no ocultos: las herramientas exclusivas de Windows se muestran como tales en un Mac, y viceversa.
Pensado para scripts y CI
gup list --json, códigos de salida estables,-ypara omitir las confirmaciones y destinosprovider:packageque se saltan el escaneo.
02 / COBERTURA
153 fuentes. Tres sistemas. Un solo binario.
El mismo ejecutable en Windows, macOS y Linux: el mismo contrato de provider, el mismo JSON. Lo que cambia es la capa del sistema que gup puede controlar.
Objetivo principal
Windows
- Providers compatibles
- 139 / 153
- winget
- scoop
- chocolatey
- WSL
Puente WSL: apt, dnf, pacman, Flatpak, Nix y Linuxbrew dentro de tus distribuciones.
Nativo
macOS
- Providers compatibles
- 132 / 153
- Homebrew
- Homebrew Casks
- MacPorts
- Mac App Store
Apple Silicon e Intel · enlaces simbólicos del Cellar de brew resueltos ·
masopcional.Nativo
Linux
- Providers compatibles
- 126 / 153
- Homebrew / Linuxbrew
- Nix
- apt · delegación
- dnf · delegación
El propietario de un binario se resuelve con
dpkg -Sorpm -qf, y la actualización vuelve a ese gestor.
Igual en todas partes
- 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
Los 153 providers, por dominio
- Gestores de paquetes del sistema
- 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 y PHP
- composer-g · composer-self · dotnet-sdk · dotnet-tools · nuget · phive · symfony-cli
- JVM
- coursier-cs · jbang
- Rust
- cargo · rustup
- Otros lenguajes
- R-packages · cabal · flutter · gem · hex · julia-pkg · luarocks · mint · mix-archive · nimble · opam · pub-global · stack · vcpkg
- Gestores de versiones
- asdf · goenv · mise · proto · sdkman · swiftly
- CLI para la nube
- aws-cli-v2 · az · doctl · flyctl · gcloud · hcloud · heroku · linode-cli · oci-cli · railway · scw · supabase
- Infraestructura como código
- 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
- Contenedores
- dive · docker-desktop · nerdctl · oras · podman-desktop · rancher-desktop
- Herramientas de seguridad
- cosign · gitsign · grype · nuclei · nuclei-templates · pdtm · rekor · semgrep · syft · trivy
- CLI para desarrolladores
- delta · gh-ext · git-for-windows · glab · jj · lazydocker · lazygit · tea
- IDE y editores
- cursor-ext · jetbrains · visual-studio · vscode-ext · vscodium-ext · windsurf-ext
- Plugins de editores
- nvim-lazy · nvim-mason · nvim-packer · vim-plug
- Sistemas embebidos y móviles
- android-sdk · arduino-cli · expo · fastlane · platformio · xcodes
- Shell y prompt
- nerd-fonts · oh-my-posh · psresource · pwsh-modules · starship
- El propio gup
- self
03 / CÓMO FUNCIONA
Un orquestador, no otro gestor de paquetes.
gup ejecuta en paralelo los comandos de cada herramienta y alinea las respuestas. Sin registro de paquetes, sin caché, nada que se quede en ejecución.
Escanear
Cada provider detectado responde a
listOutdated(), cuatro a la vez. Si uno falla, solo afecta a su propia fila.Elegir
Revisa los paquetes agrupados por provider, filtra, selecciona… o sáltate el escaneo con
gup update brew:fzf.Actualizar
Los comandos nativos se ejecutan como un vector de argumentos, nunca a través de un shell. Cada intento queda anotado en el registro local.
04 / SEGURIDAD
Ejecuta comandos con privilegios. Está construido en consecuencia.
Un único punto de salida al shell, vectores de argumentos estrictos, una lista de permitidos fijada por tests, y cada commit pasa por tres analizadores estáticos.
Ejecución
Los subprocesos se ejecutan como vectores argv estrictos, nunca
shell: true, a través de un único punto de entrada auditado.Cadena de suministro
Descargas solo por HTTPS, dependencias auditadas en cada build, actualizaciones revisadas cada semana.
Análisis estático
CodeQL, Semgrep y eslint-plugin-security en cada commit, además de una batería de tests dedicada a las invariantes de seguridad.
05 / FAQ
Preguntas y respuestas.
¿gup reemplaza a winget, brew o npm?
No. gup orquesta los comandos nativos de cada herramienta (winget upgrade, brew outdated, npm update -g, pip list --outdated…) detrás de una sola interfaz. Sin protocolos inventados ni caché de versiones.
¿Funciona en macOS y Linux?
Sí. En macOS de forma nativa: fórmulas y casks de Homebrew, MacPorts y la Mac App Store, en Apple Silicon e Intel. En Linux, Homebrew/Linuxbrew y Nix cubren la capa del sistema, y un binario instalado por la distribución se devuelve a apt o dnf. Todo lo que está por encima de la capa del sistema (npm, pip, cargo, helm, VS Code…) se comporta igual en los tres sistemas.
¿Cómo instalo gup?
npm install -g @charles_lindecker/gup --allow-scripts=node-pty y luego gup doctor para ver qué providers se detectan. Requiere Node.js 26.9.0 o posterior. --allow-scripts=node-pty autoriza los scripts de instalación de node-pty, del que depende la terminal integrada: sin esa opción, npm 11 muestra una advertencia y npm 12 los omite.
¿Puedo usar gup en CI?
Sí. gup list --json --fast da una salida legible por máquinas y gup update --all -y omite todas las confirmaciones. Los códigos de salida son estables: 0 éxito, 1 fallo parcial, 2 argumentos no válidos.
¿Cuántos gestores de paquetes cubre gup?
153 providers, cada uno en un módulo aislado: winget, scoop, chocolatey, Homebrew, MacPorts, npm, pnpm, pip, uv, cargo, gem, composer, herramientas dotnet, helm, kubectl, terraform, extensiones de VS Code, IDE de JetBrains, distribuciones WSL y muchos más.
¿Es seguro ejecutarlo?
Cada subproceso pasa por un único punto de entrada como un vector de argumentos estricto, nunca a través de un shell, con una lista de permitidos fijada por tests. CodeQL, Semgrep, gitleaks, audit-ci y Dependabot se ejecutan de forma continua. gup no envía telemetría.
¿En qué se diferencia de topgrade?
topgrade ejecuta actualizaciones; gup primero responde a “qué está desactualizado, y de qué versión a cuál”. El escaneo es un paso aparte, con salida JSON, selección paquete a paquete, destinos provider:package, programaciones por paquete y un historial local que puedes revisar.
¿En qué idioma está la interfaz?
En inglés por defecto. gup language fr la cambia al francés y guarda esa elección; GUP_LANG=fr hace lo mismo en un solo shell y tiene prioridad sobre ella. Los comandos, las opciones y la salida JSON no dependen del idioma, y este sitio está disponible en ocho idiomas.
06 / INSTALACIÓN
Treinta segundos y lo sabrás todo.
Una instalación con npm, un comando y la lista completa de lo que está desactualizado en tu máquina.
npm install -g @charles_lindecker/gup --allow-scripts=node-pty
gupInterfaz a pantalla completagup list --fastLo desactualizado, escaneo rápidogup update --all -yTodo, sin confirmación (CI)gup update brew:fzfUn paquete, sin escaneogup doctorQué se detecta y cómo instalar el resto
