apt2brew scans your installed APT and snap packages, finds the Homebrew equivalent, and migrates only the ones that are safe to move — with a verified install and an incremental rollback script before anything is removed.
A natural progression: see what you have, move what's safe, undo if needed.
Lists every manually-installed APT and snap package, finds the matching Homebrew formula, and labels each one Low or High risk.
Toggle the packages you want to move, hit Enter, and apt2brew installs them via brew, verifies each one, then removes the originals from APT or snap.
Reinstalls packages back to APT or snap and removes them from brew. Works for the latest run or any individual package — the rollback script is written before anything is removed.
Linux with APT, plus Homebrew for Linux in your PATH. The APT repo auto-updates with
apt update.
$ sudo install -m 0755 -d /etc/apt/keyrings $ curl -fsSL https://apt2brew.federicoconticello.com/apt2brew.gpg.key \ | sudo gpg --dearmor -o /etc/apt/keyrings/apt2brew.gpg $ echo "deb [signed-by=/etc/apt/keyrings/apt2brew.gpg] https://apt2brew.federicoconticello.com stable main" \ | sudo tee /etc/apt/sources.list.d/apt2brew.list $ sudo apt update $ sudo apt install apt2brew
Each command has a non-interactive mode for scripts.
$ apt2brew scan # prints a table: package | apt ver | brew | risk | reason
$ apt2brew migrate # interactive TUI $ apt2brew migrate --dry-run # show what would happen $ apt2brew migrate --yes # execute with pre-selected packages
$ apt2brew rollback # pick from a TUI $ apt2brew rollback --yes # revert the latest run $ apt2brew rollback --package fd # revert one package