See every package on your system — one gorgeous terminal dashboard.
A beautiful TUI that unifies 36 package managers into a single searchable, snapshotable, diffable view.
Built with Bubble Tea. Zero config. One binary. Just run gpk.
Why?
You have brew, pip, cargo, npm, apt, maybe flatpak — all installing software independently. Knowing what's actually on your machine means running 6+ commands across different CLIs with different flags and output formats.
GlazePKG fixes this. One command, one view, every package. Track what changed over time with snapshots and diffs. Export everything to JSON for backup or migration.
Instant startup — scans once, caches for 10 days, opens in milliseconds on repeat launches
Fuzzy search — find any package across all managers instantly with /
Package operations — upgrade, remove, search, and install packages without leaving the TUI
Multi-select — batch upgrade or remove with smart sudo batching
Snapshots & diffs — save system state, diff to see what changed
Update detection — ↑ indicator for packages with available updates
Export — dump to JSON or text for backup, migration, or dotfile tracking
Zero dependencies — single static Go binary, cross-platform
Install
Homebrew (macOS / Linux)
brew install neur0map/tap/gpk
Arch Linux (AUR)
yay -S gpk-bin
Go
go install github.com/neur0map/glazepkg/cmd/gpk@latest
Pre-built binaries
Grab a binary from releases for macOS (ARM/Intel), Linux (x64/ARM), or Windows (x64/ARM).
Build from source
git clone https://github.com/neur0map/glazepkg.git
cd glazepkg && go build ./cmd/gpk
If gpk is not found after installing via go install, add Go's bin directory to your PATH:
export PATH="$PATH:$HOME/go/bin"
Quick Start
gpk Launch TUI
gpk update Self-update to latest release
gpk version Show current version
gpk --help Show keybind reference
Just run gpk — navigate with j/k, switch managers with Tab, search with /, press s to snapshot, d to diff, e to export. Press ? for the full keybind reference.
Keybindings
Key
Action
j/k, ↑/↓
Navigate
g / G
Jump to top / bottom
Ctrl+d / Ctrl+u
Half-page down / up
PgDn / PgUp
Page down / up
Tab / Shift+Tab
Cycle manager tabs
f
Cycle size filter
/
Fuzzy search
Enter
Package details
u (detail)
Upgrade package
x (detail)
Remove package
d (detail)
View dependencies
h (detail)
Package help/usage
e (detail)
Edit description
i
Search + install packages
m
Toggle multi-select mode
Space (multi-select)
Toggle package selection
s
Save snapshot
d
Diff against last snapshot
e
Export (JSON or text)
r
Force rescan
?
Help overlay
q
Quit
Package Operations
Upgrade (u in detail view)
Open a package with Enter, then press u. A confirmation modal shows the exact command. Privileged managers (apt, pacman, dnf, snap, apk, xbps) include a password field for sudo. The upgrade runs in the background while you keep using the TUI.
Remove (x in detail view)
Open a package with Enter, then press x. Managers that support it (apt, pacman, dnf, xbps) offer two modes: remove package only, or remove package with orphaned dependencies. If the package is required by other packages, a warning is shown before proceeding.
Search + Install (i)
Press i from the package list to open the search view. Type a query and results stream in from all installed managers in parallel. Results are deduplicated by name — expand a row to see all available sources and versions. Press i on a result to install it. Already-installed packages are marked.
Multi-Select (m)
Press m to enter selection mode. Use Space to toggle packages, navigate and search normally — selections persist across tabs and searches. Press u to upgrade all selected or x to remove all selected. The confirmation modal groups operations by privilege level so you only enter your password once.
All operations work on macOS, Linux, and Windows. Each manager maps to its correct native command automatically.
Supported Package Managers (36)
Manager
Platform
What it scans
Descriptions
brew
macOS/Linux
Installed formulae and casks
batch via JSON
pacman
Arch
Explicit native packages
pacman -Qi
AUR
Arch
Foreign/AUR packages
pacman -Qi
apt
Debian/Ubuntu
Installed packages
apt-cache show
dnf
Fedora/RHEL
Installed packages
dnf info
snap
Ubuntu/Linux
Snap packages
snap info
pip
Cross-platform
Top-level Python packages
pip show
pipx
Cross-platform
Isolated Python CLI tools
—
cargo
Cross-platform
Installed Rust binaries
—
go
Cross-platform
Go binaries in ~/go/bin
—
npm
Cross-platform
Global Node.js packages
npm info
pnpm
Cross-platform
Global pnpm packages
pnpm info
bun
Cross-platform
Global Bun packages
—
flatpak
Linux
Flatpak applications
flatpak info
MacPorts
macOS
Installed ports
port info
pkgsrc
NetBSD/cross-platform
Installed packages
pkg_info
opam
Cross-platform
OCaml packages
opam show
gem
Cross-platform
Ruby gems
gem info
pkg
FreeBSD
Installed packages
inline from scan
composer
Cross-platform
Global PHP packages
inline from JSON
mas
macOS
Mac App Store apps
—
apk
Alpine Linux
Installed packages
apk info
nix
NixOS/cross-platform
Nix profile, nix-env, and NixOS system packages
nix-env -qa
conda/mamba
Cross-platform
Conda environments
—
luarocks
Cross-platform
Lua rocks
luarocks show
XBPS
Void Linux
Installed packages
xbps-query
Portage
Gentoo
Installed ebuilds via qlist
emerge -s
Guix
GNU Guix
Installed packages
guix show
winget
Windows
Windows Package Manager
—
chocolatey
Windows
Chocolatey packages (v1 + v2)
—
scoop
Windows
Scoop packages
—
nuget
Cross-platform
NuGet global package cache
—
powershell
Cross-platform
PowerShell modules
via scan
maven
Cross-platform
Local Maven artifacts in ~/.m2/repository
—
windows-updates
Windows
Pending Windows system updates
—
Managers that aren't installed are silently skipped — no errors, no config needed.
Descriptions are fetched in the background and cached for 24 hours.
Packages with available updates show a ↑ indicator next to their version (checked every 7 days).
Press d in the detail view to see full dependency tree for any package.
Press h in the detail view to see the package's --help output.
Press e in the detail view to add custom descriptions — these persist across sessions and won't be overwritten.
Snapshots & Diffs
GlazePKG can track how your system changes over time:
Snapshot (s) — saves every package name, version, and source to a timestamped JSON file
Diff (d) — compares your current packages against the last snapshot, showing:
Added packages (new installs)
Removed packages (uninstalls)
Upgraded packages (version changes)
Use this to audit what changed after a brew upgrade, track drift across machines, or catch unexpected installs.
Data Storage
All data lives under ~/.local/share/glazepkg/ (respects XDG_DATA_HOME):
Data
Path
Retention
Scan cache
cache/scan.json
10 days (auto-refresh)
Description cache
cache/descriptions.json
24 hours
Update cache
cache/updates.json
7 days
User notes
notes.json
Permanent
Snapshots
snapshots/*.json
Permanent
Exports
exports/*.json or *.txt
Permanent
Contributing
Want to add a package manager or fix a bug? Check out CONTRIBUTING.md. Each manager is a single Go file — easy to add.