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
- MIT · open source
- Node ≥ 26
- Windows · macOS · Linux
- 0 télémétrie
- 0 daemon · planification opt-in
gup v0.5.147 détectés5 mises à jourmode normal
Menu
- Scan
- Paquets5
- Planification1
- Providers
- Journal
- Options
- Quitter
Paquets
| Sélection | Paquet | Actuel | Dernier |
|---|---|---|---|
| en partie coché | Homebrew2/3 | ||
| coché | ripgrep | 14.1.0 | → 14.1.1 |
| coché | fzf | 0.54.0 | → 0.55.0 |
| non cochéplanifié | bat | 0.24.0 | → 0.25.0 |
| en partie coché | npm (global)1/2 | ||
| coché | typescript | 5.5.4 | → 5.6.2 |
| non coché | pnpm | 9.6.0 | → 9.12.1 |
espace cocher · / filtrer · p planifier · a tout cocher · ↑↓ naviguer · r rescanner · entrée mettre à jour (3) · tab menu · q quitter
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 :
ripgreppasse en mise à jour hebdomadaire,nodene 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,-ypour sauter les confirmations, et des ciblesprovider:packagequi 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 ·
masoptionnel.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 -Sourpm -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
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.
Scanner
Chaque provider détecté répond à
listOutdated(), quatre à la fois. Celui qui échoue n'affecte que sa propre ligne.Choisir
Passe en revue les paquets groupés par provider, filtre, sélectionne — ou saute le scan avec
gup update brew:fzf.Mettre à jour
Les commandes natives tournent en vecteur d'arguments, jamais via un shell. Chaque tentative est consignée dans le journal local.
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é.Chaîne d'approvisionnement
Téléchargements HTTPS uniquement, dépendances auditées à chaque build, mises à jour revues chaque semaine.
Analyse statique
CodeQL, Semgrep et eslint-plugin-security sur chaque commit, plus une suite de tests dédiée aux invariants de sécurité.
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 écrangup list --fastCe qui traîne, scan rapidegup update --all -yTout, sans confirmation (CI)gup update brew:fzfUn paquet, sans scangup doctorCe qui est détecté, et comment installer le reste
