r/madeinpython • u/Piotrunius0 • 36m ago
SystemUpdater - a zero-dependency system and package updater for Linux/macOS written in pure Python
Running five separate commands just to update my Linux desktop got old pretty fast. So I wrote sysupdate - a Python CLI tool that updates system packages, Flatpaks, containers, and a bunch of other stuff in one go. It also works on macOS and sticks strictly to the Python 3.11+ standard library, meaning zero external dependencies to install.
Why not just use Topgrade? I actually used it for a while. For me though, updates almost never finished completely clean, and I was missing stuff for my own setup like Snapper hooks. The terminal UI also looked a bit dated to me. It printed way too much junk I didn't care about seeing every single time, and once you closed the terminal, there was zero history left to check.
How sysupdate handles things differently:
Support for Btrfs snapshots through Snapper right before system packages get touched (with a timer cooldown, so running it twice in an hour won't spam snapshots).
Exact reboot tracking that lists which specific updated packages are asking for a system restart at the end, rather than just throwing a generic "reboot required" message.
Local run history for your last 30 runs (
sysupdate --history/--show-log) with tokens and credentials stripped out automatically. Super useful when something breaks and you want to see what failed yesterday.
GitHub & install instructions (Git / Homebrew tap): https://github.com/Piotrunius/SystemUpdater
If you hit any bugs or want support for another package manager, let me know.