Quick Start Guide
Learn how to configure and use Raffi for the first time
Raffi can be installed through multiple package managers or built from source. Choose the method that works best for your system.
Install directly from crates.io using Rust’s package manager:
cargo install raffiThis will download, compile, and install the latest version of Raffi with all features enabled.
On Arch Linux and derivatives, install from the AUR using your preferred helper:
yay -S raffi-binOr with paru:
paru -S raffi-binOn NixOS or systems with Nix installed (unstable channel):
nix-shell -p raffiOr add to your NixOS configuration:
environment.systemPackages = with pkgs; [ raffi];Install using LinuxBrew or Homebrew:
brew tap chmouel/raffi https://github.com/chmouel/raffibrew install raffiPrebuilt binaries for various platforms are available from the GitHub releases page.
Download the archive
Visit the releases page and download the archive or package for your platform.
Extract the binary
Extract the archive and move the raffi binary to a directory in your PATH:
tar xzf raffi-*.tar.gzsudo mv raffi /usr/local/bin/Make it executable
Ensure the binary has execute permissions:
chmod +x /usr/local/bin/raffiClone the repository and build with all features:
git clone https://github.com/chmouel/raffi.gitcd rafficargo build --releaseThe binary will be available at target/release/raffi (approximately 15 MB).
For a significantly smaller binary with only Fuzzel support:
git clone https://github.com/chmouel/raffi.gitcd rafficargo build --release --no-default-featuresThis removes the iced GUI dependency, reducing the binary size from ~15 MB to ~1.1 MB.
# ~15 MB binary with all featurescargo build --release# ~1.1 MB binary, Fuzzel integration onlycargo build --release --no-default-featuresAfter building, install to your local bin directory:
cargo install --path .Or manually copy the binary:
sudo cp target/release/raffi /usr/local/bin/Check that Raffi is installed correctly:
raffi --helpYou should see the help output with available options:
Usage: raffi [OPTIONS]
Options: -p, --print-only Print command instead of executing -c, --configfile <FILE> Use custom configuration file -r, --refresh-cache Refresh icon cache -I, --no-icons Disable icons -u, --ui-type <TYPE> Select UI: fuzzel or native -i, --initial-query <QUERY> Pre-fill search (native mode) -t, --theme <THEME> Theme: dark or light (native mode) --default-script-shell <SHELL> Default interpreter for scriptsFor contributors who want to set up the development environment:
Clone the repository
git clone https://github.com/chmouel/raffi.git cd raffiInstall pre-commit hooks
Set up pre-commit hooks that run cargo clippy before commits:
pip install pre-commitpre-commit installBuild and test
cargo build cargo test cargo clippy