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
- MIT · código aberto
- Node ≥ 26
- Windows · macOS · Linux
- Sem telemetria
- Sem daemon · agendamento 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. 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
ripgreppassa a ser atualizado toda semana e onodefica 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,-ypara pular confirmações e alvosprovider:packageque 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 ·
masopcional.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 -Sourpm -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
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.
Verificar
Cada provider detectado responde a
listOutdated(), quatro de cada vez. Se um falhar, só a linha dele é afetada.Escolher
Revise os pacotes agrupados por provider, filtre, selecione — ou pule a varredura com
gup update brew:fzf.Atualizar
Os comandos nativos rodam como um vetor de argumentos, nunca por meio de um shell. Cada tentativa fica gravada no registro local.
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.Cadeia de suprimentos
Downloads somente via HTTPS, dependências auditadas a cada build, atualizações revisadas toda semana.
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.
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 cheiagup list --fastO que está desatualizado, varredura rápidagup update --all -yTudo, sem confirmação (CI)gup update brew:fzfUm pacote, sem varreduragup doctorO que foi detectado e como instalar o resto
