Nouveau — les mises à jour se font dans l'interface

Une commande.
153 sources
à jour.

Arrête de courir après winget, brew et npm, pip, cargo et helm. gup les scanne tous en parallèle, te montre ce qui traîne et met à jour ce que tu choisis — en direct, dans un terminal intégré à son interface.

npm install -g @charles_lindecker/gup --allow-scripts=node-pty

Voir sur GitHub
  • MIT · open source
  • Node ≥ 26
  • Windows · macOS · Linux
  • 0 télémétrie
  • 0 daemon · planification opt-in
gup en action

gup v0.5.147 détectés5 mises à jourmode normal

Menu

  • Scan
  • Paquets5
  • Planification1
  • Providers
  • Journal
  • Options
  • Quitter

Paquets

SélectionPaquetActuelDernier
en partie cochéHomebrew2/3
cochéripgrep14.1.0→ 14.1.1
cochéfzf0.54.0→ 0.55.0
non cochéplanifiébat0.24.0→ 0.25.0
en partie cochénpm (global)1/2
cochétypescript5.5.4→ 5.6.2
non cochépnpm9.6.0→ 9.12.1

● 3 sur 5 coché(s)Entrée Mettre à jour (3)

espace cocher · / filtrer · p planifier · a tout cocher · ↑↓ naviguer · r rescanner · entrée mettre à jour (3) · tab menu · q quitter

L'interface est en anglais par défaut et en français avec gup language fr. Commandes, options et sortie JSON sont identiques dans toutes les langues.

01 / FONCTIONNALITÉS

Tout se passe dans une seule interface.

Scanner, choisir, mettre à jour, planifier, consulter — gup te garde dans une seule app de terminal plein écran.

  • Nouveau

    Des mises à jour sans quitter gup

    Les installeurs tournent dans un terminal intégré à l'interface — barres de progression, invites et couleurs intactes. Les paquets mis à jour quittent ensuite la liste, sans nouveau scan. Si le terminal intégré est indisponible, gup te dit pourquoi et met à jour dans ton propre terminal.

  • Coche-en plusieurs, lance une fois

    Coche les paquets avec Espace, sélectionne tout avec a, lance avec Entrée. Une file, un bilan.

  • Nouveau

    Mises à jour planifiées, paquet par paquet

    Coche des paquets et appuie sur p : ripgrep passe en mise à jour hebdomadaire, node ne bouge pas. Les planifications visent des paquets, jamais un provider entier ; le planificateur de ton OS lance brièvement gup pour faire ce qui arrive à échéance, et rien ne reste en mémoire.

  • Journal d'activité

    Chaque scan et chaque mise à jour sont journalisés en local. Des graphiques dans le terminal montrent ton activité et les paquets les plus souvent mis à jour ; exporte le journal pour déboguer.

  • Nouveau

    Rapport HTML

    gup report, ou o dans le journal, ouvre dans le navigateur un rapport clair et navigable de ton historique — un seul fichier hors ligne, lisible par tout le monde, pas seulement par les habitués du terminal.

  • Des thèmes qui restent lisibles

    Dix thèmes intégrés ou tes propres couleurs : gup vérifie chacun au regard du WCAG AA — 4,5:1 pour le texte, 3:1 pour les bordures, 7:1 si tu choisis AAA — et corrige ce qui n'atteint pas le seuil.

  • Attentif à ton OS

    Les providers qui ne peuvent pas tourner sur ton système sont grisés, pas masqués : les outils réservés à Windows apparaissent comme tels sur un Mac, et inversement.

  • Pensé pour les scripts et la CI

    gup list --json, des codes de sortie stables, -y pour sauter les confirmations, et des cibles provider:package qui court-circuitent le scan.

02 / COUVERTURE

153 sources. Trois systèmes. Un seul binaire.

Le même exécutable sur Windows, macOS et Linux — même contrat de provider, même JSON. Ce qui change, c'est la couche OS que gup sait piloter.

  • Cible principale

    Windows

    Providers pris en charge
    139 / 153
    • winget
    • scoop
    • chocolatey
    • WSL

    Pont WSL : apt, dnf, pacman, Flatpak, Nix et Linuxbrew dans tes distributions.

  • Natif

    macOS

    Providers pris en charge
    132 / 153
    • Homebrew
    • Homebrew Casks
    • MacPorts
    • Mac App Store

    Apple Silicon et Intel · liens symboliques du Cellar brew résolus · mas optionnel.

  • Natif

    Linux

    Providers pris en charge
    126 / 153
    • Homebrew / Linuxbrew
    • Nix
    • apt · délégation
    • dnf · délégation

    Le propriétaire d'un binaire est résolu avec dpkg -S ou rpm -qf, puis la mise à jour revient à ce gestionnaire.

Partout pareil

  • 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
Les 153 providers, par domaine
Gestionnaires de paquets de l'OS
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 et PHP
composer-g · composer-self · dotnet-sdk · dotnet-tools · nuget · phive · symfony-cli
JVM
coursier-cs · jbang
Rust
cargo · rustup
Autres langages
R-packages · cabal · flutter · gem · hex · julia-pkg · luarocks · mint · mix-archive · nimble · opam · pub-global · stack · vcpkg
Gestionnaires de versions
asdf · goenv · mise · proto · sdkman · swiftly
CLI cloud
aws-cli-v2 · az · doctl · flyctl · gcloud · hcloud · heroku · linode-cli · oci-cli · railway · scw · supabase
Infrastructure en tant que code
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
Conteneurs
dive · docker-desktop · nerdctl · oras · podman-desktop · rancher-desktop
Outillage de sécurité
cosign · gitsign · grype · nuclei · nuclei-templates · pdtm · rekor · semgrep · syft · trivy
CLI de développement
delta · gh-ext · git-for-windows · glab · jj · lazydocker · lazygit · tea
IDE et éditeurs
cursor-ext · jetbrains · visual-studio · vscode-ext · vscodium-ext · windsurf-ext
Plugins d'éditeurs
nvim-lazy · nvim-mason · nvim-packer · vim-plug
Embarqué et mobile
android-sdk · arduino-cli · expo · fastlane · platformio · xcodes
Shell et prompt
nerd-fonts · oh-my-posh · psresource · pwsh-modules · starship
gup lui-même
self
Parcourir le catalogue complet des providers

03 / FONCTIONNEMENT

Un orchestrateur, pas un gestionnaire de plus.

gup lance les commandes de chaque outil en parallèle et aligne les réponses. Pas de registre, pas de cache, rien qui reste en mémoire.

  1. Scanner

    Chaque provider détecté répond à listOutdated(), quatre à la fois. Celui qui échoue n'affecte que sa propre ligne.

  2. Choisir

    Passe en revue les paquets groupés par provider, filtre, sélectionne — ou saute le scan avec gup update brew:fzf.

  3. Mettre à jour

    Les commandes natives tournent en vecteur d'arguments, jamais via un shell. Chaque tentative est consignée dans le journal local.

L'architecture en détail

04 / SÉCURITÉ

Il lance des commandes privilégiées. Il est construit en conséquence.

Un point unique de shell-out, des vecteurs d'arguments stricts, une allowlist pinnée par les tests — et chaque commit passe par trois analyseurs statiques.

  • Exécution

    Les sous-processus tournent en vecteurs argv stricts, jamais shell: true, via un unique point d'entrée audité.

    • execa
    • argv
    • no shell
  • Chaîne d'approvisionnement

    Téléchargements HTTPS uniquement, dépendances auditées à chaque build, mises à jour revues chaque semaine.

    • audit-ci
    • Dependabot
    • gitleaks
  • Analyse statique

    CodeQL, Semgrep et eslint-plugin-security sur chaque commit, plus une suite de tests dédiée aux invariants de sécurité.

    • CodeQL
    • Semgrep
    • eslint-security

05 / FAQ

Questions, réponses.

gup remplace-t-il winget, brew ou npm ?

Non. gup orchestre les commandes natives de chaque outil (winget upgrade, brew outdated, npm update -g, pip list --outdated…) derrière une seule interface. Aucun protocole inventé, aucun cache de versions.

Ça marche sur macOS et Linux ?

Oui. Sur macOS en natif : formules et casks Homebrew, MacPorts et le Mac App Store, sur Apple Silicon et Intel. Sur Linux, Homebrew/Linuxbrew et Nix couvrent la couche OS, et un binaire installé par la distribution est rendu à apt ou dnf. Tout ce qui se trouve au-dessus de la couche OS — npm, pip, cargo, helm, VS Code… — se comporte de la même façon sur les trois systèmes.

Comment installer gup ?

npm install -g @charles_lindecker/gup --allow-scripts=node-pty, puis gup doctor pour voir quels providers sont détectés. Node.js 26.9.0 ou plus récent requis. --allow-scripts=node-pty autorise les scripts d'installation de node-pty, qui fait tourner le terminal intégré : sans cette option, npm 11 affiche un avertissement et npm 12 les ignore.

Peut-on utiliser gup en CI ?

Oui. gup list --json --fast donne une sortie lisible par une machine et gup update --all -y saute toutes les confirmations. Les codes de sortie sont stables : 0 succès, 1 échec partiel, 2 arguments invalides.

Combien de gestionnaires de paquets gup couvre-t-il ?

153 providers, un module isolé chacun : winget, scoop, chocolatey, Homebrew, MacPorts, npm, pnpm, pip, uv, cargo, gem, composer, dotnet tools, helm, kubectl, terraform, les extensions VS Code, les IDE JetBrains, les distributions WSL et bien d'autres.

Est-ce sûr de le lancer ?

Chaque sous-processus passe par un seul point d'entrée, en vecteur d'arguments strict — jamais via un shell — avec une allowlist pinnée par les tests. CodeQL, Semgrep, gitleaks, audit-ci et Dependabot tournent en continu. gup n'envoie aucune télémétrie.

Quelle différence avec topgrade ?

topgrade lance les mises à jour ; gup répond d'abord à « qu'est-ce qui est en retard, et de quelle version à quelle version ». Le scan est une étape à part, avec une sortie JSON, une sélection paquet par paquet, des cibles provider:package, des planifications par paquet et un historique local consultable.

Dans quelle langue est l'interface ?

En anglais par défaut. gup language fr la passe en français et enregistre ce choix ; GUP_LANG=fr fait de même pour un seul shell et prime sur ce choix. Commandes, options et sortie JSON ne dépendent pas de la langue, et ce site existe en huit langues.

06 / INSTALLATION

Trente secondes, et tu sais tout.

Une installation npm, une commande, et la liste complète de ce qui traîne sur ta machine.

npm install -g @charles_lindecker/gup --allow-scripts=node-pty

  • gupInterface plein écran
  • gup list --fastCe qui traîne, scan rapide
  • gup update --all -yTout, sans confirmation (CI)
  • gup update brew:fzfUn paquet, sans scan
  • gup doctorCe qui est détecté, et comment installer le reste