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

Ver en GitHub
  • MIT · código abierto
  • Node ≥ 26
  • Windows · macOS · Linux
  • Sin telemetría
  • Sin daemon · programación opcional
gup en acción

gup v0.5.147 detected5 updatesnormal mode

Menu

  • Scan
  • Packages5
  • Schedules1
  • Providers
  • Journal
  • Options
  • Quit

Packages

SelectionPackageCurrentLatest
partly checkedHomebrew2/3
checkedripgrep14.1.0→ 14.1.1
checkedfzf0.54.0→ 0.55.0
not checkedscheduledbat0.24.0→ 0.25.0
partly checkednpm (global)1/2
checkedtypescript5.5.4→ 5.6.2
not checkedpnpm9.6.0→ 9.12.1

● 3 of 5 checkedEnter Update (3)

space check · / filter · p schedule · a check all · ↑↓ navigate · r rescan · enter update (3) · tab menu · q quit

La interfaz está en inglés por defecto y en francés con 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: ripgrep pasa a actualizarse cada semana y node se 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, -y para omitir las confirmaciones y destinos provider:package que 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 · mas opcional.

  • Nativo

    Linux

    Providers compatibles
    126 / 153
    • Homebrew / Linuxbrew
    • Nix
    • apt · delegación
    • dnf · delegación

    El propietario de un binario se resuelve con dpkg -S o rpm -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
Ver el catálogo completo de providers

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.

  1. Escanear

    Cada provider detectado responde a listOutdated(), cuatro a la vez. Si uno falla, solo afecta a su propia fila.

  2. Elegir

    Revisa los paquetes agrupados por provider, filtra, selecciona… o sáltate el escaneo con gup update brew:fzf.

  3. 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.

La arquitectura en detalle

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.

    • execa
    • argv
    • no shell
  • Cadena de suministro

    Descargas solo por HTTPS, dependencias auditadas en cada build, actualizaciones revisadas cada semana.

    • audit-ci
    • Dependabot
    • gitleaks
  • 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.

    • CodeQL
    • Semgrep
    • eslint-security

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 completa
  • gup list --fastLo desactualizado, escaneo rápido
  • gup update --all -yTodo, sin confirmación (CI)
  • gup update brew:fzfUn paquete, sin escaneo
  • gup doctorQué se detecta y cómo instalar el resto