Raffi is an application launcher designed to sit on top of Fuzzel, or, if preferred, operate using its own built‑in interface. It allows commands and scripts to be defined in a YAML configuration file, with support for icons, arguments, conditional visibility, and script execution through configurable interpreters.
Primary documentation lives on the docs site:
Useful entry points:
- Introduction: https://chmouel.github.io/raffi/
- Installation: https://chmouel.github.io/raffi/installation/
- Quick start: https://chmouel.github.io/raffi/quickstart/
- Configuration overview: https://chmouel.github.io/raffi/configuration/overview/
- Configuration reference: https://chmouel.github.io/raffi/reference/yaml-schema/
- CLI options: https://chmouel.github.io/raffi/reference/cli-options/
- UI modes: https://chmouel.github.io/raffi/features/ui-modes/
- Themes: https://chmouel.github.io/raffi/features/themes/
- Script filters: https://chmouel.github.io/raffi/features/script-filters/
- Text snippets: https://chmouel.github.io/raffi/features/text-snippets/
- Web search: https://chmouel.github.io/raffi/features/web-search/
- Calculator: https://chmouel.github.io/raffi/features/calculator/
- Currency converter: https://chmouel.github.io/raffi/features/currency-converter/
- File browser: https://chmouel.github.io/raffi/features/file-browser/
- Addon configuration: https://chmouel.github.io/raffi/reference/addon-configuration/
- Window manager integration (Sway): https://chmouel.github.io/raffi/integration/sway/
- Window manager integration (Hyprland): https://chmouel.github.io/raffi/integration/hyprland/
See more screenshots below
Prebuilt binaries are available from the GitHub releases page. Download the archive or package suitable for your platform. If you intend to use the default interface, Fuzzel must also be installed.
On Arch Linux, Raffi can be installed from the AUR using a helper such as:
yay -S raffi-binOn NixOS or using Nix (unstable channel):
nix-shell -p raffiWith LinuxBrew or Homebrew:
brew tap chmouel/raffi https://github.com/chmouel/raffi
brew install raffiFrom crates.io:
cargo install raffiTo build from source:
git clone https://github.com/chmouel/raffi.git
cd raffi
cargo build --releaseIf you only require Fuzzel integration and want a significantly smaller binary, build without the native UI:
cargo build --release --no-default-featuresThis reduces the binary from roughly 15 MB to around 1.1 MB by removing the iced GUI dependency.
Running raffi launches configured entries through the selected interface. The chosen item is executed according to the configuration.
See the full CLI reference: https://chmouel.github.io/raffi/reference/cli-options/
set $menu raffi -p
set $super Mod4
bindsym $super+Space exec $menu | xargs swaymsg exec --
$super = SUPER
bind = $super, R, exec, (val=$(raffi -pI); echo $val | grep -q . && hyprctl dispatch exec "$val")
See also: Sway integration · Hyprland integration · Fuzzel integration
Raffi supports two interface modes:
- Fuzzel — uses the external Fuzzel launcher, integrates naturally with Wayland environments.
- Native — built-in iced-based GUI with fuzzy search, keyboard navigation, and theme support.
The native interface includes built-in addons: calculator, currency converter, file browser, emoji/Nerd Fonts picker, script filters, web searches, and text snippets.
See: UI modes · Themes · Calculator · Currency converter · File browser · Script filters · Web search · Text snippets
Configuration is stored in $HOME/.config/raffi/raffi.yaml. Basic example:
firefox:
binary: firefox
args: [--marionette]
icon: firefox
description: Firefox browser with marionette enabledFor full configuration reference see the docs:
- Configuration overview
- Entries
- General settings
- Scripts
- Conditions
- Icons
- Addon configuration
- YAML schema reference
Contributions are welcome. Issues, feature requests, and pull requests can be submitted via GitHub.
To enable pre‑commit hooks that run cargo clippy before pushing:
pip install pre-commit
pre-commit install
This project is released under the MIT Licence.
Chmouel Boudjnah
- GitHub: https://github.com/chmouel
- Fediverse: https://fosstodon.org/@chmouel
- Twitter: https://twitter.com/chmouel
- Blog: https://blog.chmouel.com

