A beautiful, interactive TUI for Arch Linux package management
Built with Bubble Tea โข Powered by paru or yay
Documentation: gaur.prbhtkumr.xyz
โ ๏ธ Disclaimer: This project is mostly vibecoded and continues to be developed through vibecoding.
Do report rough edges, and expect an occasional "it works on my machine" moment (trying my best to eliminate those).
- Fuzzy Search โ Lightning-fast fuzzy matching powered by
fzfwith match highlighting - Dynamic Helper Support โ Seamlessly switch between
paruandyayvia configuration - Repository Filtering โ Filter by source with prefixes:
c:(core),e:(extra),m:(multilib),a:(aur) - Batch Operations โ Mark multiple packages with
Taband install/remove them all at once - Selective Updates โ Carefully manage your system by selecting specific packages to update rather than full updates
- Interactive Hand-off โ Correctly handles terminal prompts for password entry and conflict resolution
- Real-time Package Details โ View detailed package information with debounced loading
- Package Statistics โ Total, explicit, foreign (AUR), and orphan package counts
- Disk Space Analysis โ Capacity, usage breakdown (packages, cache, other, free) with visual proportional bars
- Repository Distribution โ Breakdown of packages by repository (core, extra, multilib, AUR)
- XDG Compliance โ Automatically respects
$XDG_CACHE_HOMEfor all cache operations - Top Packages โ See your largest installed packages at a glance
- Top Cache Hogs โ Identifies the largest packages taking up space across both pacman and helper caches
- Cache Management โ Clean package caches via an interactive menu, choose keep policies, or selectively delete packages from cache
- Orphan Removal โ Identify and remove orphaned packages
- 11 Built-in Themes โ Catppuccin, Dracula, Gruvbox, One Dark, Monokai Pro, Rose Pine, Solarized, Tokyonight, and more
- Custom TOML Themes โ Create your own themes in
$XDG_CONFIG_HOME/gaur/themes/ - Theme Export โ Use
--export-themesto customize default themes - Mouse Support โ Full mouse wheel scrolling throughout the interface
- Mode-specific Theming โ Each mode (Install, Dash, Remove, Update) has its own color scheme
- In-App Settings Menu โ Press
,to instantly change themes, borders, and helpers without restarting - Live Theme Preview โ See theme changes instantly as you scroll through options
- Selection Panel โ Dedicated panel for managing marked packages
- Centered Dialogs โ All confirmation and error boxes are perfectly centered line-by-line
- Automatic Refresh โ The entire UI refreshes automatically after any system change to ensure data integrity
- Arch Linux (or Arch-based distribution)
- paru or yay โ AUR helper
- fzf โ Fuzzy finder (for search)
- paccache โ Cache management (from
pacman-contrib) - Go 1.21+ (for building from source)
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโญโโโโโโโโโโโโโโโโโโโฎ
โ Repository : extra | Selected (2) [*] โ
โ Name : firefox | firefox โ
โ Version : 133.0-1 | firefoxpwa |
โ Description : Fast, Private & Safe Web Browser โฐโโโโโโโโโโโโโโโโโโโ
โ Architecture : x86_64 โ
โ URL : https://www.mozilla.org/firefox โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ extra/firefox-i18n-an 147.0.2-1 โ
โ extra/firefox-i18n-af 147.0.2-1 โ
โ *extra/firefoxpwa 2.18.0.1 โ
โ>*extra/firefox 147.0.2-1 [installed] โ
โ โ
โFound 610 packages (492 from AUR) โ
โ> firefox โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
[/] search [tab] mark [i]nstall [d]ash [r]emove [u]pdate [,] settings [q]uit
paru -S gaur-bin
# or
yay -S gaur-bingit clone https://github.com/prbhtkumr/gaur.git
cd gaur
go build -o gaur .
sudo mv gaur /usr/local/bin/go install github.com/prbhtkumr/gaur@latestgaur creates a configuration file at ~/.config/gaur/config.toml on first run. You can also configure most settings directly in the app using the Settings Menu (,).
[startup]
# Start in: "dashboard", "dash", "install", "remove", "update"
default_mode = "install"
[ui]
# Color theme (use --list-themes to see options)
theme = "catppuccin-mocha"
# Border style: "rounded", "normal", "thick", "double"
border_type = "rounded"
[commands]
# AUR helper: "paru" (default) or "yay"
aur_helper = "paru"
# Cache management tool
cache_tool = "paccache"
# Custom flags for install/remove
install_flags = ""
remove_flags = "-Rns"
[advanced]
# Debounce delay for package details (ms)
debounce_ms = 150
# Custom cache directory (optional, must be absolute path)
cache_dir = ""gaur # Start with default mode
gaur -i # Start in install mode
gaur -d # Start in dashboard mode
gaur --theme dracula # Use Dracula theme| Key | Alt Key | Action |
|---|---|---|
i |
Alt+2 |
Switch to Install mode |
d |
Alt+1 |
Switch to Dashboard mode |
r |
Alt+4 |
Switch to Remove mode |
u |
Alt+3 |
Switch to Update mode |
, |
Open Settings menu | |
q |
Quit | |
Ctrl+C |
Force quit |
| Key | Action |
|---|---|
/ |
Focus search input |
โ / k |
Move selection up |
โ / j |
Move selection down |
PgUp |
Jump 10 items up |
PgDown |
Jump 10 items down |
Esc |
Defocus input / Clear selections |
| Key | Action |
|---|---|
Tab |
Mark/unmark package for batch operation |
Enter |
Install/remove selected or marked packages |
* |
Toggle selection panel focus |
| Key | Action |
|---|---|
Enter / y / a |
Proceed with a full system update |
s |
Switch to Selective Update mode |
| Key | Action |
|---|---|
t |
Jump to Remove mode โ All packages |
e |
Jump to Remove mode โ Explicit packages |
f |
Jump to Remove mode โ Foreign (AUR) packages |
o |
Jump to Remove mode โ Orphan packages |
c |
Open Cache Cleaning menu |
R |
Remove all orphan packages |
Ctrl+R |
Refresh dashboard data |
| Key | Action |
|---|---|
y / Enter |
Confirm operation |
n / Esc |
Cancel operation |
โ / โ |
Scroll package list |
gaur has full mouse wheel support:
- Scroll to navigate package lists
- In split views, scroll left side for list, right side for details
- Works in confirmation dialogs too
Prefix your search with repository filters:
| Prefix | Repository |
|---|---|
c: |
Core |
e: |
Extra |
m: |
Multilib |
a: |
AUR |
Combine filters: ae:firefox searches AUR and Extra for "firefox"
Filter installed packages by type:
| Prefix | Filter |
|---|---|
t: |
Total (all packages) |
e: / l: |
Explicitly installed |
f: / a: |
Foreign (AUR) packages |
o: |
Orphan packages |
Combined: of:google searches for orphaned AUR packages matching "google".
gaur ships with 11 color themes. Use the --theme flag or press , for in-app settings:
gaur --theme dracula
gaur --list-themes # See all optionsgaur supports custom themes via TOML files. Theme files are stored in $XDG_CONFIG_HOME/gaur/themes/ (typically ~/.config/gaur/themes/).
Export default themes for customization:
gaur --export-themesThis copies all embedded default themes to your themes directory, allowing you to customize them.
Create a custom theme:
- Create a new TOML file:
~/.config/gaur/themes/my_theme.toml - Add your color definitions (see format below)
- Select it in settings or via
--theme my-theme
Theme file format:
# Base colors
border = "#6c7086"
selected = "#cba6f7"
text = "#cdd6f4"
subtle = "#6c7086"
title = "#f9e2af"
# UI elements
scrollbar_track = "#181825"
scrollbar_thumb = "#6c7086"
selection_bg = "#313244"
dim_text = "#6c7086"
# Mode colors
install = "#89b4fa"
dashboard = "#f5c2e7"
remove = "#f38ba8"
update = "#a6e3a1"
cache = "#cba6f7"
# Source colors
core = "#a6e3a1"
extra = "#89b4fa"
multilib = "#fab387"
aur = "#cba6f7"
# Status colors
success = "#a6e3a1"
warning = "#f9e2af"
error = "#f38ba8"
highlight = "#f9e2af"
# Dashboard colors
dashboard_label = "#cdd6f4"
dashboard_value = "#89dceb"
dashboard_warning = "#f38ba8"
dashboard_desc = "#a6adc8"
# Dialog colors
dialog_border = "#cba6f7"
confirm_install = "#89b4fa"
confirm_remove = "#fab387"
confirm_clean = "#a6e3a1"
confirm_nuke = "#f38ba8"
confirm_selective = "#cba6f7"Theme naming:
- Filename
my_theme.tomlbecomes "My Theme" in the UI - Underscores and hyphens are converted to spaces and title-cased
- Package Database โ Loads repository packages from local pacman cache on startup
- AUR Search โ Queries AUR via your configured helper (debounced)
- Fuzzy Matching โ Uses
fzf --filterfor fast, relevance-ranked fuzzy matching - Interactive Operations โ Hands off to the AUR helper in the terminal for install/remove/update with full interactivity (password prompts, conflict resolution, etc.)
- Unified Refresh โ Re-scans the system after any change to update dashboard stats and lists instantly.
GPLv3 License โ See LICENSE for details.