Selective update manager for Linux — update your apps, leave the OS alone
Project description
⚡ ArchBooster
A Driver Booster-style selective update manager for Arch Linux. Built with Python + Textual. Supports official repos and AUR (via yay/paru).
Features
- Scans all installed packages for available updates
- Categorizes them: 🔴 Critical / 🟡 Normal / 🟢 Optional
- Select individual packages to update — never forced
- Live streaming output during update (real pacman/yay output)
- Update history log
- Background daemon via systemd timer (checks every 4h, no auto-updates)
Requirements
- Arch Linux
- Python 3.11+
pacman-contrib(forcheckupdates) →sudo pacman -S pacman-contribyayorparu(for AUR support)
Install
git clone https://github.com/ansu555/archbooster
cd archbooster
bash install.sh
The installer uses pipx (isolated venv — works on modern PEP 668 distros). Install pipx first if needed:
sudo pacman -S python-pipx/sudo apt install pipx/sudo dnf install pipx.
Usage
| Command | Action |
|---|---|
archbooster |
Open the full TUI dashboard |
archbooster --scan |
Print available updates and exit |
archbooster --daemon |
Run one background check (systemd) |
Keybindings (inside TUI)
| Key | Action |
|---|---|
A |
Select all packages |
N |
Deselect all |
I |
Invert selection |
Enter |
Update selected |
R |
Re-scan for updates |
H |
Open history |
S |
Open settings |
Q |
Quit |
Config
Auto-created at ~/.config/archbooster/config.toml on first run:
[general]
aur_helper = "yay" # or "paru"
check_interval = 4 # hours between background scans
[categories]
extra_critical = [] # extra package prefixes to mark critical
extra_optional = []
[ignore]
packages = [] # packages to hide from the update list
Project Structure
archbooster/
├── main.py # Entry point + CLI flags
├── app.py # Textual app root + screen router
├── daemon.py # Background check loop (systemd)
├── core/
│ ├── scanner.py # checkupdates + yay -Qu, caching
│ ├── categorizer.py # critical / normal / optional
│ ├── updater.py # runs yay/pacman, streams output
│ ├── history.py # read/write history.json
│ └── config.py # load/write config.toml
├── screens/
│ ├── dashboard.py # Main checklist UI
│ ├── progress.py # Live update output
│ ├── history.py # Past updates log
│ └── settings.py # Settings editor
├── systemd/
│ ├── archbooster.service # Systemd user service
│ └── archbooster.timer # Systemd timer (every 4h)
└── install.sh # One-shot installer
Roadmap
- Phase 1 — Core engine + project scaffold
- Phase 2 — Full Textual dashboard with checkboxes + progress screen
- Phase 3 — Desktop notifications (notify-send)
- Phase 4 — AUR PKGBUILD diff viewer
- Phase 5 — AUR package on the AUR itself
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file archbooster-0.1.0.tar.gz.
File metadata
- Download URL: archbooster-0.1.0.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28a120fac8502680c849657352d4a4a8600300b50a079190f283efbbf56bc5a1
|
|
| MD5 |
fdc02a85aefa7860be8c39264cdb4d48
|
|
| BLAKE2b-256 |
b27c90367201284f87687ed3ca73c4f017788f8555c34dec78d9b4bd919e2122
|
File details
Details for the file archbooster-0.1.0-py3-none-any.whl.
File metadata
- Download URL: archbooster-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
816fd23b727e05c3812d4db75ab8d8e84aba276f85ca0e733de4c5c87ea91bd2
|
|
| MD5 |
de19ece60c0b0063069766e3c6a089d3
|
|
| BLAKE2b-256 |
022eda594d29e4415be0350edff90b49a20a60f8c1f8b205d6ea930c4af4a814
|