A beautiful, interactive terminal package manager powered by nala, fzf, and bat
Features β’ Installation β’ Usage β’ Keybinds β’ Screenshots
- π Fuzzy Search - Lightning-fast package search with fuzzy finding
- π¨ Syntax Highlighting - Beautiful syntax highlighting for package info with bat
- πΌοΈ Interactive Previews - Real-time package information in preview panes
- β‘ Fast Operations - Powered by nala for faster package management
- π― Multi-Select - Select multiple packages at once with Tab
- π Statistics - View detailed package statistics
- π History Tracking - All operations logged for reference
- π Mirror Management - Benchmark and configure mirrors with nala fetch
- β¨οΈ Rich Keybinds - Extensive keyboard shortcuts for efficient navigation
- π Hidden Previews - Preview windows hidden by default, toggle with
Ctrl+/
- Debian-based distribution (Debian, Ubuntu, Linux Mint, Pop!_OS, etc.)
- fzf - Fuzzy finder
- bat or batcat - Syntax highlighter
- nala (optional, falls back to apt) - Fast package manager
- sudo privileges for package operations
# Download the script
curl -o fza https://raw.githubusercontent.com/stefan-hacks/fza/main/fza.sh
# Make it executable
chmod +x fza
# Move to system path
sudo mv fza /usr/local/bin/
# Install dependencies
sudo apt update
sudo apt install -y nala fzf bat
# Optional: Install nala for better performance
echo "deb https://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
sudo apt update && sudo apt install -y nala- Clone the repository:
git clone https://github.com/stefan-hacks/fza.git
cd fza- Install dependencies:
sudo apt update
sudo apt install -y nala fzf bat- Install nala (optional but recommended):
echo "deb https://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
sudo apt update && sudo apt install -y nala- Make executable and install:
chmod +x fza.sh
sudo cp fza.sh /usr/local/bin/fza- Verify installation:
fza --helpSimply run fza with sudo to open the interactive menu:
sudo fzaNavigate through the beautiful menu to:
- Search and install packages
- Remove packages
- List installed packages
- Update package lists
- Upgrade all packages
- View package information
- And more!
fza also supports direct command-line operations:
# Search for packages (interactive)
fza search
# Search for specific package
fza search firefox
# Install packages (interactive)
sudo fza install
# Install specific packages
sudo fza install firefox vlc
# Remove packages (interactive)
sudo fza remove
# Remove specific packages
sudo fza remove firefox
# Update package lists
sudo fza update
# Upgrade all packages
sudo fza upgrade
# List installed packages
fza list
# Show package information
fza info firefox
# View operation history
fza history
# Show package statistics
fza stats
# Benchmark and configure mirrors (nala only)
sudo fza fetchShort forms are also supported:
sudo fza i # install
sudo fza r # remove
fza s # search
sudo fza u # update
sudo fza U # upgrade
fza l # list
fza h # history
fza t # stats| Key | Action |
|---|---|
β/β, j/k |
Navigate up/down |
Ctrl+p/n |
Navigate up/down (alternative) |
Ctrl+g |
Jump to top |
Alt+g |
Jump to bottom |
Page Up/Down |
Scroll page |
| Key | Action |
|---|---|
Ctrl+/ |
Toggle preview on/off |
Alt+p |
Toggle preview on/off |
Ctrl+u/d |
Scroll preview page up/down |
Ctrl+y/e |
Scroll preview line up/down |
Alt+β/β |
Scroll preview line up/down |
Shift+β/β |
Scroll preview page up/down |
Alt+w |
Toggle text wrapping |
Alt+1/2/3 |
Resize preview right (40%/50%/60%) |
Alt+4/5 |
Resize preview down (40%/50%) |
Alt+0 |
Maximize preview (99%) |
| Key | Action |
|---|---|
Tab |
Select/deselect current item |
Shift+Tab |
Select/deselect + move up |
Ctrl+Space |
Select + move down |
Alt+a |
Select all items |
Alt+d |
Deselect all items |
Alt+t |
Toggle all selections |
| Key | Action |
|---|---|
Enter |
Confirm selection |
Esc |
Return to main menu |
q |
Quit fza completely |
Ctrl+c |
Quit fza completely |
? |
Show full keybinds help |
Alt+i |
View full package details with bat |
Alt+f |
View package files |
Ctrl+s |
Toggle sort |
βββββββββββββββββββββββββββββββββββββββββββββ
β FZA - Fuzzy APT Package Manager β
β Powered by nala + fzf + bat β
βββββββββββββββββββββββββββββββββββββββββββββ
π Search & Install Packages
ποΈ Remove Packages
π List Installed Packages
π Update Package Lists
β¬οΈ Upgrade All Packages
βΉοΈ Show Package Info
π§Ή Autoremove Unused Packages
π§ Fix Broken Dependencies
π Show Package Statistics
π History & Rollback
π Nala Fetch Mirrors
β Show Keybinds Help
β Exit
Search & Install Packages
Keybinds: Ctrl+/=preview Alt+1/2/3=resize Tab=select Esc=menu q=quit ?=help
> firefox
firefox Mozilla Firefox web browser
firefox-esr Mozilla Firefox ESR web browser
firefox-locale-en Firefox English language pack
Preview (Ctrl+/ to toggle):
ββββββββββββββββββββββββββββββββββββββββββββ
β Package: firefox β
ββββββββββββββββββββββββββββββββββββββββββββ
Package: firefox
Version: 120.0+build1-0ubuntu1
Architecture: amd64
Description: Mozilla Firefox web browser
Firefox is a powerful, extensible web browser...
fza stores its cache and history in ~/.cache/fza/:
package_descriptions.cache- Package list cache (refreshed every hour)history- Operation history log
To clear the cache:
rm -rf ~/.cache/fza/Make sure all dependencies are installed:
sudo apt install fzf batMost package operations require sudo:
sudo fzaOn some systems, bat is installed as batcat. fza automatically detects this.
Press Ctrl+/ or Alt+p to toggle the preview window (hidden by default).
fza automatically falls back to apt if nala is not installed. For better performance, install nala:
sudo apt install nalaContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request