APTUI(1)

NAME

aptuiTUI package manager for APT-based Linux distributions

SYNOPSIS

$go install github.com/mexirica/aptui@latest

INFO

335 stars
8 forks
0 views

DESCRIPTION

TUI package manager for APT-based Linux distributions

README

Logo

APTUI is a terminal user interface (TUI) written in Go for managing APT packages. Browse, search, install, remove and upgrade packages — all without leaving the terminal.

Built with Bubble Tea, Lip Gloss and Bubbles.

Scrollable

Features

  • Browse all packages — lists every available APT package with version and size info loaded lazily
  • Search & filter — single bar for fuzzy search and structured filters (section, architecture, size, status and more) (docs)
  • Column sorting — sort packages by name, version, size, section or architecture (ascending/descending)
  • Tabs — switch between All, Installed and Upgradable views
  • Multi-select — mark multiple packages with space, then bulk install/remove/upgrade
  • Mouse support — click to select packages, click again to toggle selection, click column headers to sort
  • Parallel downloads — installs and upgrades use parallel downloads by default for faster operations
  • Transaction history — every operation is recorded; undo (z) or redo (x) past transactions
  • Fetch mirrors — detect your distro, test mirror latency, and apply the fastest sources
  • PPA management — list, add, remove, enable and disable PPA repositories (docs)
  • Cleanup — dedicated tab listing autoremovable packages; clean them all with c
  • Error log — all errors are captured and shown in a dedicated tab with source, timestamp and full message detail
  • Light / Dark theme — auto-detects terminal background; override with APTUI_THEME=light|dark or toggle at runtime with T
  • Pin favorites — pin packages with F to keep them at the top of the list (📌); pins are persisted across sessions
  • Export / Import — export installed packages to a JSON file (E) and import from a file to restore your environment (I)
  • Inline detail panel — shows package metadata (version, size, dependencies, homepage, etc.)

Installation

APT (Debian/Ubuntu)

curl -fsSL https://mexirica.github.io/aptui/public-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/aptui-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/aptui-archive-keyring.gpg] https://mexirica.github.io/aptui/ stable main" | sudo tee /etc/apt/sources.list.d/aptui.list
sudo apt update && sudo apt install aptui

Go

go install github.com/mexirica/aptui@latest

Build from source

git clone https://github.com/mexirica/aptui.git
cd aptui
go build -o aptui .
sudo mv aptui /usr/local/bin/

Usage

# Run with sudo to allow package management operations (install, remove, upgrade)
sudo aptui

Keybindings

Navigation

KeyAction
/ kMove up
/ jMove down
pgup / ctrl+uPage up
pgdown / ctrl+dPage down
tabSwitch tab (All → Installed → Upgradable → Cleanup → Errors)

Search & Filter

KeyAction
/Open search/filter bar
enterConfirm search / apply filter
escClear search / filter / go back

Examples

vim                          # fuzzy search for "vim"
section:editors vim          # filter by section + fuzzy search combined
installed size>10MB          # installed packages larger than 10 MB
section:utils order:name     # packages in "utils" section, sorted A→Z
order:size:desc              # all packages sorted by size, largest first

See the full search & filter documentation for all available options.

Selection

KeyAction
spaceToggle select current package
ASelect / deselect all filtered packages
clickSelect a package (click again to toggle check)

Sorting

Key / MouseAction
Click column headerSort by that column (click again to reverse, third click to clear)
/ + order:nameSort by name via query
/ + order:size:descSort by size descending via query

Actions

KeyAction
iInstall package (or all selected)
rRemove package (or all selected)
uUpgrade package (or all selected)
GUpgrade all packages (apt-get upgrade)
pPurge package (or all selected)
cClean up all autoremovable packages
FPin / unpin package (or all selected)
EExport installed packages to JSON file
IImport packages from JSON file
URun apt-get update
ctrl+rRefresh package list

History & Mirrors

KeyAction
tOpen transaction history
zUndo selected transaction
xRedo selected transaction
fFetch and test mirrors

PPA Management

KeyAction
POpen PPA list
aAdd a new PPA
rRemove selected PPA
eEnable / disable selected PPA
escBack to package list

General

KeyAction
TToggle light / dark theme
hToggle full help
q / ctrl+cQuit

Theme

APTUI auto-detects whether your terminal has a light or dark background using the standard OSC 11 query. Some terminals (e.g. Cosmic Terminal) don't respond to this query, so APTUI may default to dark mode even on a light background.

You can override detection in two ways:

Environment variable — set APTUI_THEME before launching:

# Force light mode (use -E with sudo to preserve the variable)
APTUI_THEME=light sudo -E aptui

Force dark mode

APTUI_THEME=dark sudo -E aptui

Or export it in your shell profile

export APTUI_THEME=light

Runtime toggle — press T at any time to switch between light and dark mode. Once toggled, auto-detection is disabled for the rest of the session.


Star History Chart

SEE ALSO

clihub4/3/2026APTUI(1)