I built checkpac because I was tired of the package search fragmentation in Arch Linux.
The Problem: Want to know what packages you have installed that match "wine"? Which ones have updates? What else is available? Good luck - you'll need to run 4-5 different commands and piece together the results: pacman -Q (shows installed), pacman -Ss (searches repos but mixes everything together), yay -Ss (searches everything but the output is chaos), checkupdates (only shows updates).
There's no simple way to answer "show me everything about packages matching X" without juggling multiple tools.
What checkpac does: One command gives you everything, clearly categorized. Run "checkpac firefox" to see what you have installed with update status. Add -r like "checkpac -r wine" to also see what's available to install. Use -d to search descriptions like "checkpac -rd compression".
The terminal output is designed to be instantly readable. Green checkmarks for installed packages, red X's for not installed. Package names are color-coded by source (red for core, green for extra, cyan for multilib, yellow for AUR). Version numbers appear in cyan. Most importantly, outdated packages get a yellow warning triangle with an update arrow showing "v1.2.3 → v1.2.4" so you can immediately spot what needs updating. Each package shows its description in dim text for context.
It separates and organizes results by source and status: Official Installed (packages from core/extra/multilib with update status), AUR Installed (your AUR packages also with update checks), Official Available (what's in the repos you could install, shown with -r), and AUR Available (what's in the AUR you could grab, also shown with -r).
Every package shows its version number and checkpac actually compares your installed versions against the remote repositories in real-time - not just cached data. The color highlighting and visual indicators make it obvious at a glance what's installed, what's outdated, and what's available. No more parsing walls of text or guessing package states.
The technical approach: Uses bash associative arrays (hashmaps) for O(1) package lookups instead of searching through lists repeatedly. One expac call grabs all package metadata upfront rather than querying repeatedly. Caches everything in memory to avoid repeated disk hits. Makes parallel AUR API calls when checking for updates against live AUR data. The whole thing is about 400 lines of bash plus expac, curl, and jq.
Other useful features: The -e flag for exact name matches only. Use --exclude-aur or --exclude-arch if you want to filter by source. Handles both installed and available packages in a single search. Shows real-time update status for everything including AUR packages by checking against remote sources.
Get it from GitHub at https://github.com/zeroz41/checkpac or install from the AUR at https://aur.archlinux.org/packages/checkpac
unholytd•2h ago
There's no simple way to answer "show me everything about packages matching X" without juggling multiple tools. What checkpac does: One command gives you everything, clearly categorized. Run "checkpac firefox" to see what you have installed with update status. Add -r like "checkpac -r wine" to also see what's available to install. Use -d to search descriptions like "checkpac -rd compression". The terminal output is designed to be instantly readable. Green checkmarks for installed packages, red X's for not installed. Package names are color-coded by source (red for core, green for extra, cyan for multilib, yellow for AUR). Version numbers appear in cyan. Most importantly, outdated packages get a yellow warning triangle with an update arrow showing "v1.2.3 → v1.2.4" so you can immediately spot what needs updating. Each package shows its description in dim text for context.
It separates and organizes results by source and status: Official Installed (packages from core/extra/multilib with update status), AUR Installed (your AUR packages also with update checks), Official Available (what's in the repos you could install, shown with -r), and AUR Available (what's in the AUR you could grab, also shown with -r).
Every package shows its version number and checkpac actually compares your installed versions against the remote repositories in real-time - not just cached data. The color highlighting and visual indicators make it obvious at a glance what's installed, what's outdated, and what's available. No more parsing walls of text or guessing package states.
The technical approach: Uses bash associative arrays (hashmaps) for O(1) package lookups instead of searching through lists repeatedly. One expac call grabs all package metadata upfront rather than querying repeatedly. Caches everything in memory to avoid repeated disk hits. Makes parallel AUR API calls when checking for updates against live AUR data. The whole thing is about 400 lines of bash plus expac, curl, and jq.
Other useful features: The -e flag for exact name matches only. Use --exclude-aur or --exclude-arch if you want to filter by source. Handles both installed and available packages in a single search. Shows real-time update status for everything including AUR packages by checking against remote sources. Get it from GitHub at https://github.com/zeroz41/checkpac or install from the AUR at https://aur.archlinux.org/packages/checkpac