Novidade — as atualizações agora rodam dentro da interface

Um comando.
153 fontes
atualizadas.

Chega de correr atrás de winget, brew e npm, pip, cargo e helm. O gup verifica todos em paralelo, mostra o que está desatualizado e atualiza o que você escolher — ao vivo, em um terminal embutido na interface.

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

Ver no GitHub
  • MIT · código aberto
  • Node ≥ 26
  • Windows · macOS · Linux
  • Sem telemetria
  • Sem daemon · agendamento opcional
gup em ação

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

A interface está em inglês por padrão e em francês com gup language fr. Comandos, opções e a saída JSON são os mesmos em todos os idiomas.

01 / RECURSOS

Tudo acontece em uma só interface.

Verifique, escolha, atualize, agende e revise — o gup mantém você em um único app de terminal em tela cheia.

  • Novo

    Atualizações sem sair do gup

    Os instaladores rodam em um painel de terminal embutido na interface — barras de progresso, prompts e cores intactos. Em seguida, os pacotes atualizados saem da lista, sem nova varredura. Se o terminal embutido estiver indisponível, o gup diz o motivo e atualiza no seu próprio terminal.

  • Marque vários, execute uma vez

    Marque pacotes com Espaço, selecione tudo com a e execute com Enter. Uma fila, um resumo.

  • Novo

    Atualizações agendadas, pacote por pacote

    Marque pacotes e pressione p: o ripgrep passa a ser atualizado toda semana e o node fica como está. Os agendamentos miram pacotes, nunca um provider inteiro; o agendador do seu sistema inicia o gup por um instante para executar o que está pendente, então nada fica residente.

  • Registro de atividades

    Cada varredura e cada atualização ficam registradas localmente. Gráficos no terminal mostram sua atividade e quais pacotes são atualizados com mais frequência; exporte o registro para depurar.

  • Novo

    Relatório HTML

    gup report, ou o no registro de atividades, abre no navegador um relatório claro e navegável do seu histórico — um único arquivo offline, legível por qualquer pessoa, não só por quem vive no terminal.

  • Temas que continuam legíveis

    Dez temas integrados ou suas próprias cores: o gup verifica cada um segundo o WCAG AA — 4,5:1 para texto, 3:1 para bordas, 7:1 se você escolher AAA — e corrige o que ficar abaixo do limite.

  • Atento ao seu sistema

    Providers que não podem rodar no seu sistema aparecem esmaecidos, não ocultos: ferramentas exclusivas do Windows aparecem como tal em um Mac, e vice-versa.

  • Feito para scripts e CI

    gup list --json, códigos de saída estáveis, -y para pular confirmações e alvos provider:package que dispensam a varredura.

02 / COBERTURA

153 fontes. Três sistemas. Um só binário.

O mesmo executável no Windows, macOS e Linux — mesmo contrato de provider, mesmo JSON. O que muda é a camada do sistema que o gup consegue controlar.

  • Alvo principal

    Windows

    Providers compatíveis
    139 / 153
    • winget
    • scoop
    • chocolatey
    • WSL

    Ponte WSL: apt, dnf, pacman, Flatpak, Nix e Linuxbrew dentro das suas distribuições.

  • Nativo

    macOS

    Providers compatíveis
    132 / 153
    • Homebrew
    • Homebrew Casks
    • MacPorts
    • Mac App Store

    Apple Silicon e Intel · links simbólicos do Cellar do brew resolvidos · mas opcional.

  • Nativo

    Linux

    Providers compatíveis
    126 / 153
    • Homebrew / Linuxbrew
    • Nix
    • apt · delegação
    • dnf · delegação

    O dono de um binário é identificado com dpkg -S ou rpm -qf, e a atualização volta para esse gerenciador.

Igual em todo lugar

  • 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
Todos os 153 providers, por domínio
Gerenciadores de pacotes do 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 e PHP
composer-g · composer-self · dotnet-sdk · dotnet-tools · nuget · phive · symfony-cli
JVM
coursier-cs · jbang
Rust
cargo · rustup
Outras linguagens
R-packages · cabal · flutter · gem · hex · julia-pkg · luarocks · mint · mix-archive · nimble · opam · pub-global · stack · vcpkg
Gerenciadores de versões
asdf · goenv · mise · proto · sdkman · swiftly
CLIs de nuvem
aws-cli-v2 · az · doctl · flyctl · gcloud · hcloud · heroku · linode-cli · oci-cli · railway · scw · supabase
Infraestrutura 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
Contêineres
dive · docker-desktop · nerdctl · oras · podman-desktop · rancher-desktop
Ferramentas de segurança
cosign · gitsign · grype · nuclei · nuclei-templates · pdtm · rekor · semgrep · syft · trivy
CLIs para desenvolvedores
delta · gh-ext · git-for-windows · glab · jj · lazydocker · lazygit · tea
IDEs e editores
cursor-ext · jetbrains · visual-studio · vscode-ext · vscodium-ext · windsurf-ext
Plugins de editores
nvim-lazy · nvim-mason · nvim-packer · vim-plug
Embarcados e mobile
android-sdk · arduino-cli · expo · fastlane · platformio · xcodes
Shell e prompt
nerd-fonts · oh-my-posh · psresource · pwsh-modules · starship
O próprio gup
self
Ver o catálogo completo de providers

03 / COMO FUNCIONA

Um orquestrador, não mais um gerenciador de pacotes.

O gup executa em paralelo os comandos de cada ferramenta e alinha as respostas. Sem registro de pacotes, sem cache, nada rodando em segundo plano.

  1. Verificar

    Cada provider detectado responde a listOutdated(), quatro de cada vez. Se um falhar, só a linha dele é afetada.

  2. Escolher

    Revise os pacotes agrupados por provider, filtre, selecione — ou pule a varredura com gup update brew:fzf.

  3. Atualizar

    Os comandos nativos rodam como um vetor de argumentos, nunca por meio de um shell. Cada tentativa fica gravada no registro local.

A arquitetura em detalhes

04 / SEGURANÇA

Ele executa comandos privilegiados. E foi construído com isso em mente.

Um único ponto de chamada ao shell, vetores de argumentos estritos, uma allowlist fixada por testes — e cada commit passa por três analisadores estáticos.

  • Execução

    Os subprocessos rodam como vetores argv estritos, nunca shell: true, por um único ponto de entrada auditado.

    • execa
    • argv
    • no shell
  • Cadeia de suprimentos

    Downloads somente via HTTPS, dependências auditadas a cada build, atualizações revisadas toda semana.

    • audit-ci
    • Dependabot
    • gitleaks
  • Análise estática

    CodeQL, Semgrep e eslint-plugin-security em cada commit, além de uma suíte de testes dedicada às invariantes de segurança.

    • CodeQL
    • Semgrep
    • eslint-security

05 / FAQ

Perguntas e respostas.

O gup substitui o winget, o brew ou o npm?

Não. O gup orquestra os comandos nativos de cada ferramenta (winget upgrade, brew outdated, npm update -g, pip list --outdated…) por trás de uma única interface. Nenhum protocolo inventado, nenhum cache de versões.

Funciona no macOS e no Linux?

Sim. No macOS, de forma nativa: fórmulas e casks do Homebrew, MacPorts e a Mac App Store, em Apple Silicon e Intel. No Linux, o Homebrew/Linuxbrew e o Nix cobrem a camada do sistema, e um binário instalado pela distribuição é devolvido ao apt ou ao dnf. Tudo o que fica acima da camada do sistema — npm, pip, cargo, helm, VS Code… — se comporta da mesma forma nos três sistemas.

Como instalo o gup?

npm install -g @charles_lindecker/gup --allow-scripts=node-pty e depois gup doctor para ver quais providers foram detectados. Requer Node.js 26.9.0 ou mais recente. --allow-scripts=node-pty autoriza os scripts de instalação do node-pty, que faz o terminal embutido funcionar: sem essa opção, o npm 11 mostra um aviso e o npm 12 os ignora.

Posso usar o gup em CI?

Sim. gup list --json --fast gera uma saída legível por máquina e gup update --all -y pula todas as confirmações. Os códigos de saída são estáveis: 0 sucesso, 1 falha parcial, 2 argumentos inválidos.

Quantos gerenciadores de pacotes o gup cobre?

153 providers, cada um em um módulo isolado: winget, scoop, chocolatey, Homebrew, MacPorts, npm, pnpm, pip, uv, cargo, gem, composer, ferramentas dotnet, helm, kubectl, terraform, extensões do VS Code, IDEs da JetBrains, distribuições WSL e muito mais.

É seguro usar?

Cada subprocesso passa por um único ponto de entrada como um vetor de argumentos estrito — nunca por um shell — com uma allowlist fixada por testes. CodeQL, Semgrep, gitleaks, audit-ci e Dependabot rodam continuamente. O gup não envia telemetria.

Qual é a diferença em relação ao topgrade?

O topgrade executa atualizações; o gup primeiro responde “o que está desatualizado, e de qual versão para qual”. A varredura é uma etapa separada, com saída JSON, seleção pacote por pacote, alvos provider:package, agendamentos por pacote e um histórico local que você pode consultar.

Em que idioma está a interface?

Em inglês por padrão. gup language fr muda a interface para francês e salva essa escolha; GUP_LANG=fr faz o mesmo em um único shell e tem prioridade sobre ela. Comandos, opções e a saída JSON não dependem do idioma, e este site está disponível em oito idiomas.

06 / INSTALAÇÃO

Trinta segundos e você sabe de tudo.

Uma instalação via npm, um comando e a lista completa do que está desatualizado na sua máquina.

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

  • gupInterface em tela cheia
  • gup list --fastO que está desatualizado, varredura rápida
  • gup update --all -yTudo, sem confirmação (CI)
  • gup update brew:fzfUm pacote, sem varredura
  • gup doctorO que foi detectado e como instalar o resto