Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
June 17, 2022 11:10
July 9, 2020 21:35
October 12, 2022 12:11
May 29, 2018 23:48
November 21, 2018 07:56
October 12, 2022 15:04
February 26, 2020 15:33
November 24, 2021 22:47


No longer maintained

This repository is no longer maintained. An effort was made by the community to keep maintaining the project at I am not involved in this effort nor do I know the people behind it, so I encourage you to inspect their work before using the fork.

I'm not the owner of the packages that ship Topgrade for various package managers, so their maintainers will need to decide what to do. I'm only the owner of the package in, which will no longer be updated.

Travis AppVeyor GitHub release AUR homebrew


Keeping your system up to date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, topgrade detects which tools you use and runs the appropriate commands to update them.


Other systems users can either use cargo install or use the compiled binaries from the release page. The compiled binaries contain a self-upgrading feature.

Topgrade requires Rust 1.51 or above.


Just run topgrade. See the wiki for the list of things Topgrade supports.


See config.example.toml for an example configuration file.

Configuration path

The configuration should be placed in the following paths depending by the operating system:

  • Windows - %APPDATA%/topgrade.toml
  • macOS and other Unix systems - ${XDG_CONFIG_HOME:-~/.config}/topgrade.toml

Remote execution

You can specify a key called remote_topgrades in the configuration file. This key should contain a list of hostnames that have topgrade installed on them. Topgrade will use ssh to run topgrade on remote hosts before acting locally. To limit the execution only to specific hosts use the --remote-host-limit parameter.