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
| Category | Tools |
|---|---|
| System | brew, apt, pacman, dnf, zypper, nix |
| Languages | rustup, pip, npm, gem, go, cargo |
| Containers | Docker, Podman |
| Flatpak/Snap | flatpak, snap |
| Editors | vim, neovim, Emacs |
| Shell | oh-my-zsh, fisher, zinit |
| Firmware | fwupd |
| Git repos | Configured 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)