fex-0.6.1 is not a library.
fex
A universal interactive package search TUI.

Supported Providers
- apk - Alpine Linux
- apt - Debian/Ubuntu
- brew - Homebrew (macOS/Linux)
- dnf - Fedora/RHEL
- flatpak - Flatpak (cross-distro, searches Flathub and other remotes)
- nix - Nix/NixOS
- pacman - Arch Linux (official repos)
- paru - Arch AUR helper (official repos + AUR)
- snap - Snap (cross-distro, searches the Snap Store)
- xbps - Void Linux
- yay - Arch AUR helper (official repos + AUR)
- zerobrew - Zerobrew (Homebrew drop-in)
- zypper - openSUSE
On some systems the first search may be slow if the package manager cache needs updating.
Installation
Install rust following official instructions here.
Then simply run:
On macOS with Homebrew, you can also install it from the tap:
Building
With cargo:
The binary ends up at target/release/fex.
Usage
Controls
| Key | Action |
|---|---|
| Type | Search for packages |
| Up / Down | Navigate results |
| PgUp / PgDn | Navigate by page |
| Home / End | Jump to first / last result |
| Enter | Install selected package |
| Escape | Clear search |
| Ctrl+X | Quit |
Testing with Docker
Install Docker (example for Arch):
Then run a distro container with fex already built:
Podman works as a drop-in replacement — the script detects it automatically.
Adding a New Provider
- Create
src/providers/yourprovider.rsand implement theProvidertrait:name()— provider name stringis_available()— check if the tool exists (command_exists("tool"))search(query)— run the search command and return aSearchResultinstall_command(pkg)— return the install command string- Optionally override
source_color(source)for colored source badges
- Declare the module in
src/providers/mod.rsand add it tocreate_provider(),auto_detect_provider(), andget_available_providers()
Inspiration
Based on my prior work on the C++26 version of this paclook.