pkgtui

htop, but for packages

pkgtui

Search, install, remove and upgrade apt and snap packages from one dashboard — without memorizing either one's syntax.

Latest release CI License: MIT

Why pkgtui

The everyday basics of browsing, searching and acting on packages — done once, done well, for both backends at once.

Two backends, one dashboard

Dedicated tabs for apt and snap, each with its own state. Search, filter, sort by size, view reverse dependencies.

Real live output

Install/remove/upgrade run in a real pseudo-terminal, shown live in a bordered box. sudo prompts and debconf dialogs work exactly as they would from the command line.

Upgrade all, with a preview

See exactly which packages will change, security updates called out separately, before you confirm anything.

11 built-in themes

From classic Dracula, Nord and Gruvbox to Catppuccin, Tokyo Night and Ubuntu's own palette. Browse them live, no restart needed.

Rebind every key

Change any shortcut from inside the app, live, with a one-key reset back to defaults if it goes sideways.

PPA & changelog aware

Manage third-party repositories and read a package's changelog before upgrading it, without leaving the TUI.

Beyond wrapping apt and snap

Neither apt nor snap's own tooling answers these on its own — pkgtui does, from the same dashboard.

Disk cleanup explorerK

Old kernel packages apt's own autoremove deliberately leaves behind, leftover config files from already-removed packages, disabled snap revisions nobody ever revisits — with total reclaimable space and a direct purge.

Why is this installed?W

Manual install or pulled in as a dependency, plus a navigable tree of reverse dependencies — drill into any of them to ask the same question again.

apt + snap overlapO

Packages installed via both backends at once, and snaps that haven't been refreshed in 6+ months — using the snap's own on-disk file timestamp, not locale-dependent text.

Unattended-upgrades dashboardA

Whether silent background upgrades are enabled, what the last automatic run actually touched, and when the next one is scheduled — normally visible only by digging through log files by hand.

Install a version, or downgradeV

Pick from every version apt-cache madison knows about across your configured repos — useful right after an upgrade turns out to be the one you wanted to avoid.

RevertV

Snap's own idiomatic undo, from inside the TUI: restores the previous revision's binary and its data/config, not just an older version number.

In action

pkgtui — apt
pkgtui apt demo

Searching, inspecting and installing an apt package, live.

pkgtui — snap
pkgtui snap demo

Same flow on snap, including the channel picker (c to cycle stable/candidate/beta/edge).

Installation

No verification/store required — grab the asset that fits and install it locally.

# replace <version> with the latest release number, no leading "v"
curl -fLO https://github.com/padovanl/pkgtui/releases/latest/download/pkgtui_<version>_amd64.deb
sudo apt install ./pkgtui_<version>_amd64.deb
# side-loaded, classic confinement — not on the Snap Store
curl -fLO https://github.com/padovanl/pkgtui/releases/latest/download/pkgtui_<version>_amd64.snap
sudo snap install --dangerous --classic pkgtui_<version>_amd64.snap
curl -fLO https://github.com/padovanl/pkgtui/releases/latest/download/pkgtui_<version>_linux_amd64.tar.gz
tar -xzf pkgtui_<version>_linux_amd64.tar.gz
sudo mv pkgtui /usr/local/bin/
git clone https://github.com/padovanl/pkgtui.git
cd pkgtui
go build -o pkgtui .
sudo mv pkgtui /usr/local/bin/

Full instructions, checksums and arm64 builds on the releases page.

Every key, one dashboard

The complete keybinding reference — also available in-app any time with ?.

KeyAction
/ Switch backend (apt / snap)
tabSwitch view (Installed / Upgradable / Orphaned* / Search)
/Search the full apt/snap catalog, then enter to run it
fFilter the packages currently shown, live as you type
/, j/kNavigate the list (mouse wheel and clicks work too)
enterShow details for the selected package
spaceTag/untag the selected package for a batch action
iInstall the selected package, or all tagged packages
dRemove the selected package, or all tagged packages
uUpgrade the selected package
UUpgrade all packages, with a preview first
SSort the current view by installed size
cCycle the install channel (while confirming a snap install)
HHold/unhold the selected package (apt)
CView the selected package's changelog (apt)
PManage third-party repositories / PPAs (apt)
sSync the cache (apt-get update; no-op on snap)
KDisk cleanup: old kernels, leftover configs, disabled revisions
WWhy is the selected package installed (manual vs. dependency, reverse-dep tree)
AUnattended-upgrades status (apt)
Oapt + snap overlap: duplicate installs, stale snaps
VInstall a specific version / downgrade (apt); revert (snap)
y / nConfirm / cancel a pending action
escGo back
,Open settings (theme, keybindings)
?Toggle the in-app help screen
ctrl+lForce a full screen redraw
qQuit