Skip to content

apapamarkou/lazy-package

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Release License Buy Me a Coffee

lazy-package

Fast TUI + CLI package manager wrapper for Linux. Supports pacman/yay (Arch), apt (Debian/Ubuntu), dnf (Fedora/RHEL), zypper (openSUSE).

Every Linux distro ships with a different package manager, each with its own commands, flags, and quirks. lazy-package aims to unify that experience — one interface, one set of commands, regardless of your distro.

pkg

Features

  • Multi-packager — Auto-detects pacman, apt, dnf, or zypper
  • Interactive TUI — Browse and manage packages with a beautiful terminal interface
  • Fast CLI — Quick commands for common operations with multi-package support
  • Minimal Cache — Lightweight cache (name + source only) for instant startup
  • Lazy Preview — Package details loaded on-demand for optimal performance
  • Colored Preview — Syntax-highlighted package info with dependency tree visualization
  • AUR Support — Seamless yay integration (Arch only)
  • Dependency Warnings — Shows reverse dependencies before removal
  • Update Notifications — Lazy update checking every 6 hours
  • Orphan Cleaning — Easy removal of unused dependencies
  • PKGBUILD Preview — Inspect AUR build scripts before installation (pacman only)
  • Smart Paging — Automatic pager for long search results
  • Desktop Entry.desktop file created on install for launcher integration

Installation

Quick Install (curl)

curl -fsSL https://raw.githubusercontent.com/apapamarkou/lazy-package/main/install | bash

Manual Install

git clone https://github.com/apapamarkou/lazy-package.git
cd lazy-package
make install

The installer automatically adds ~/.local/bin to your PATH if needed.

Try Without Installing

git clone https://github.com/apapamarkou/lazy-package.git
cd lazy-package
./pkg

Dependencies

Common (all distros):

  • fzf — Fuzzy finder
  • jq — JSON processor
  • curl — HTTP client

Per packager:

  • Arch: pacman, yay
  • Debian: apt-get (pre-installed on Debian/Ubuntu)
  • Fedora: dnf (pre-installed on Fedora)
  • openSUSE: zypper (pre-installed on openSUSE)

Optional:

  • most — Pager (falls back to less)
  • pacman-contrib — Dependency tree visualization (pacman only)

Missing dependencies are detected at startup and you will be prompted to install them.

Usage

Interactive TUI

pkg

The TUI header shows the active package manager (e.g. lazy-package [PACMAN]).

CLI Commands

pkg install <package>...       # Install one or more packages
pkg i <package>...             # Short form

pkg remove <package>...        # Remove one or more packages
pkg r <package>...             # Short form

pkg info <package>             # Show package information

pkg search <term>              # Search packages (auto-paged if >24 results)
pkg s <term>                   # Short form

pkg search-names-only <term>   # Search names only
pkg sno <term>                 # Short form

pkg update                     # Update system
pkg u                          # Short form

pkg clean-orphans              # Remove orphan packages
pkg co                         # Short form

pkg help                       # Show help
pkg h                          # Short form

TUI Key Bindings

Key Action
Enter Install/remove selected package
Ctrl+U System update
Ctrl+O Clean orphan packages
Ctrl+B Preview PKGBUILD (pacman/AUR only)
Ctrl+Q / ESC Exit

Examples

pkg install neovim
pkg install vim git curl htop
pkg info firefox
pkg search firefox
pkg update
pkg

Performance

lazy-package uses a minimal cache + lazy preview architecture:

  • Minimal cache: Only package names and sources stored (~3 MB)
  • Lazy preview: Dependencies and metadata fetched on-demand when selected
  • Fast startup: < 1 second even with 100k+ packages

Cache locations:

  • Package cache: ~/.cache/lazy-package/packages.ndjson (rebuilt daily)
  • Update cache: ~/.cache/lazy-package/update_check (6 hour interval)

Uninstall

./uninstall

Or manually:

rm ~/.local/bin/pkg
rm -f ~/.local/share/applications/lazy-package.desktop
rm -rf ~/.cache/lazy-package
rm -rf ~/.local/share/lazy-package

License

GPL-3.0

Contributing

Contributions welcome! Please open an issue or pull request.

Buy Me A Coffee