Enchanted Code

Topgrade Review

3 minutes read
Cover image for: 'Topgrade Review'


Have you ever found it annoying how many commands are required to update the whole computer. Especially if you are a developer who has many different package managers.

Well luckily I have found a tool to solve this problem. Meet Topgrade; a cli program allowing you to upgrade multiple package managers using one command. It currently supports a wide range of package managers, and can even update some other programs (even itself).

It currently supports all the common OS’s and it’s even written in Rust, if that matters.

Topgrade Help Dialogue

What Can It Do?

Topgrade has a large feature set allowing you to customise how it upgrades your system. When you run the program; it checks for known package managers and then runs a set of steps to ensure everything’s up-to-date.

Here are some of the package managers it supports:

  • apt
  • pacman
  • nix
  • npm
  • flatpak
  • snap

As the app has a very long list of supported update steps, you may want to selectively disable certain ones. This is possible through passing parameters to the program or through a config file.

You may be wondering how it handles privilege elevation as some package managers require the root user, well it will prompt you for the sudo password when running a command requiring elevation. I think this is much better than running the whole program as the root user.

Another question you may have, But what about updates that require conformation? Well Topgrade has you covered for that too. You can again set a option to always confirm updates.

One feature I found recently; is that it can even update remote machines that have Topgrade. I haven’t had a chance to test this, but it will be very useful for updating a set of servers (and possibly setting up automation).

How I Use It

I currently use it on my desktop computer (running Arch) and on my laptop (running NixOS). I have found it works very well, running the update commands for all the package managers I have installed.

While having support for upgrading containers like Docker is useful. I prefer to do those updates separately, so I have this step disabled in my config. An example of this is shown below:

# filepath: ~/.config/topgrade.toml
disable = ["containers"]


Hope you found this review of Topgrade useful, maybe you are even installing it on your system now. If you are don’t forget to give the developer (and the contributors) of this project some praise. Also spread the word, so more people can benefit from it! I will continue using this great application and hope it continues to bring more update steps, to support an even wider range of software.


This post was not endorsed or sponsored by any of the mentioned parties. My views are my own.

Join The Community

Looking for more self-hosted, tech or programming content. Well this site is a good place to find all of that!

Stay informed about new posts or announcements about my apps join the community:

Want to help out? A great way of doing that is supporting me at: Buy Me A Coffee.


See Also

Buy Me A Coffee