Put a bow on your package management.
I could never remember the different commands for package managers when I switched between Arch, Debian, Fedora, and macOS. So I made bow, a small cross-platform CLI front-end that abstracts the friction of distro-hopping.
Inspired by nala on Debian, bow doesn't just wrap package managers; it makes them beautiful. It is built in Rust, features rich terminal UIs, and follows the XDG Base Directory Specification for configuration and state. (This is my first Rust project!)
- Unified Syntax: Memorize five letters:
s,i,r,u,c. - Beautiful UX: Rich tables (
comfy-table), vibrant colors (owo-colors), and clean error reporting (miette). - AUR Integration: Seamlessly bridges the gap between official repos and the AUR (auto-detects
yayandparu). - XDG Native: No clutter. Strictly adheres to system standards.
- Space Optimization: Aggressive cleanup routines to keep your disk lean.
Currently, bow must be built from source using Cargo. Ensure you have Rust installed on your system, then clone the repository and install:
git clone https://github.com/john-dennehy/bow.git
cd bow
cargo install --path .This will compile the optimized release binary and place it in your ~/.cargo/bin directory (ensure this is added to your system's $PATH).
(Pre-compiled binaries and an official AUR PKGBUILD are planned for the future!)
bow s <package>Searches for a package in the official repositories and the AUR.
bow i <package>Installs a package from the official repositories or the AUR.
bow r <package>Uninstalls a package from the system.
bow uUpdates the system.
bow cCleans the system of orphan packages.
- Automatic AUR helper detection (yay, paru).
- Add support for Debian/Ubuntu (
apt) and Fedora (dnf). - Add support for macOS (
brew).