TL;DR — Quick Summary

topgrade updates everything on your system with one command. Package managers, language tools, containers, firmware — brew, apt, cargo, pip, npm, flatpak, snap, and 50+ more.

topgrade updates everything. One command, every package manager, every language tool — your entire system, up to date.

Installation

# macOS
brew install topgrade

# Arch Linux
sudo pacman -S topgrade

# Cargo
cargo install topgrade

Usage

# Update everything
topgrade

# Dry run (preview only)
topgrade --dry-run
topgrade -n

# Skip specific tools
topgrade --disable pip,npm
topgrade --disable flatpak,snap

# Only run specific steps
topgrade --only brew,cargo

# Cleanup after update
topgrade --cleanup

# Don't ask for confirmation
topgrade --yes

# Edit config
topgrade --edit-config

Configuration

# ~/.config/topgrade.toml
[misc]
cleanup = true
no_retry = true

[linux]
yay_arguments = "--nodiffmenu"

[commands]
"Custom step" = "my-update-script.sh"

[git]
repos = ["~/github/*"]

What Gets Updated

CategoryTools
Systembrew, apt, pacman, dnf, zypper, nix
Languagesrustup, pip, npm, gem, go, cargo
ContainersDocker, Podman
Flatpak/Snapflatpak, snap
Editorsvim, neovim, Emacs
Shelloh-my-zsh, fisher, zinit
Firmwarefwupd
Git reposConfigured repos

Summary

  • topgrade detects and runs 50+ different update tools in one command
  • System packages, language tools, containers, editors, shell plugins
  • Configurable via TOML — skip tools, add custom steps, set arguments
  • Dry-run mode to preview before executing
  • Written in Rust — cross-platform (Linux, macOS, Windows)