One wrapper for many package managers (pacman, yay, paru, apt, dnf, ...).
It runs the install exactly as usual, then records what was installed —
with tags — in a JSONC file.
sudo rempkg pacman -S cowsay
sudo rempkg --tag delete-later --tag tool pacman -S cowsay
sudo rempkg yay -S google-chrome
sudo rempkg pacman -Rns cowsay # also untracksSometimes you want to know all packages did you install on your computer, but probably you use multiple package managers, and if you list them it also shows dependencies. rempkg will show just the packages you installed manually, and you can also tag them for your organization.
./install.sh
# or: PREFIX=/usr ~/.local ./install.sh (via BIN_DIR=~/.local/bin)Requires Go >= 1.21.
sudo rempkg [--tag <tag>...] [--file <path>] <manager> [manager-args...]
rempkg --list [--filter-tag <tag>]
rempkg --forget <package> [...]
| Flag | Meaning |
|---|---|
--tag, -t |
attach a tag (repeatable) |
--file, -f |
tracking file, overrides $REMPKG_FILE |
--dry-run |
print command without running it |
--list, -l |
list tracked packages |
--forget |
untrack without uninstalling |
--help, --version |
... |
Env: REMPKG_FILE sets the JSONC path.
Default: ~/rempkg/packages.jsonc (/home/<user>/rempkg/packages.jsonc,
even when run with sudo).
JSONC (JSON with // and /* */ comments). Shape:
- Install verbs (
-S,install,add, ...) upsert entries (tags merged). - Remove verbs (
-R,remove,uninstall, ...) untrack by name. - Query/update/search (
-Ss,-Si,-Syuwith no packages,apt update, ...) only run, never tracked.