Skip to main content

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 (for checkupdates) → sudo pacman -S pacman-contrib
  • yay or paru (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

archbooster-0.1.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

archbooster-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

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

Hashes for archbooster-0.1.0.tar.gz
Algorithm Hash digest
SHA256 28a120fac8502680c849657352d4a4a8600300b50a079190f283efbbf56bc5a1
MD5 fdc02a85aefa7860be8c39264cdb4d48
BLAKE2b-256 b27c90367201284f87687ed3ca73c4f017788f8555c34dec78d9b4bd919e2122

See more details on using hashes here.

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

Hashes for archbooster-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 816fd23b727e05c3812d4db75ab8d8e84aba276f85ca0e733de4c5c87ea91bd2
MD5 de19ece60c0b0063069766e3c6a089d3
BLAKE2b-256 022eda594d29e4415be0350edff90b49a20a60f8c1f8b205d6ea930c4af4a814

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page