Skip to content

Introduction

Raffi is a flexible application launcher designed for Wayland environments that lets you define commands, scripts, and workflows in a simple YAML configuration file.

Raffi launcher screenshot

Raffi is an application launcher that sits on top of Fuzzel or operates using its own built-in native interface. It provides a powerful way to launch applications, run scripts, and execute commands with support for:

  • YAML-based configuration - Define all your commands and workflows in a simple, readable format
  • Icon support - Visual application identification with cached icon paths
  • Script execution - Run inline scripts with configurable interpreters (Bash, Python, etc.)
  • Conditional visibility - Show/hide entries based on environment variables or binary availability
  • Multiple UI modes - Use external Fuzzel or the built-in native interface
  • Dual Interface Modes — Choose between Fuzzel integration for a minimal Wayland-native experience or the built-in iced-based GUI with fuzzy search and theming.
  • YAML Configuration — Define applications, scripts, and commands in ~/.config/raffi/raffi.yaml with support for arguments, icons, and conditional display.
  • Native Interface Addons — Built-in calculator, currency converter, file browser, web searches, text snippets, and script filters for extended functionality.
  • Script Support — Execute inline scripts with any interpreter (Bash, Python, Node.js) directly from the launcher with environment variable expansion.

When using the native UI mode (-u native), Raffi includes several powerful addons:

Evaluate mathematical expressions as you type with support for standard operators and functions like sqrt, sin, cos, log, and more. Results can be copied to clipboard with Enter.

2 + 2 * 5
sqrt(144)
sin(90) * cos(45)

Convert between currencies with real-time exchange rates from the Frankfurter API (cached for one hour).

$10 to eur
$50 gbp to usd
$100eur to jpy

Navigate your filesystem directly in the launcher. Type / for root or ~ for home directory. Select files to open with xdg-open, or use Alt+Enter to copy the path.

Extend Raffi with dynamic results from external commands using the Alfred Script Filter JSON format. Perfect for custom workflows like PR browsers, password managers, or any data source.

Quick web searches via URL templates. Type a keyword followed by your query to search Google, DuckDuckGo, GitHub, Wikipedia, and more.

g rust async traits
gh user/repo
wiki wayland

Store and quickly insert reusable text snippets from inline config, YAML files, directories, or command output.

Application Launcher

Launch applications with custom arguments and environment variables. Define entries only for binaries that exist in your PATH.

firefox:
binary: firefox
args: [--marionette]
icon: firefox
description: Firefox browser with marionette enabled
Script Execution

Run inline scripts with any interpreter directly from the launcher.

hello_python:
binary: python3
script: |
import os
print("Hello from Python!")
print(os.environ)
description: "Hello Python script"
icon: "script"
Conditional Workflows

Show entries only when specific conditions are met.

gnome_app:
binary: gnome-tweaks
description: GNOME Tweaks
ifenveq: [DESKTOP_SESSION, GNOME]
Window Manager Integration

Integrate with Sway, Hyprland, or other Wayland compositors for seamless launching.

# Sway
bindsym $super+Space exec raffi -p | xargs swaymsg exec --
# Hyprland
bind = $super, R, exec, (val=$(raffi -pI); echo $val | grep -q . && hyprctl dispatch exec "$val")
  • Lightweight - 1.1 MB binary when built without native UI, ~15 MB with GUI support
  • Flexible - Works with Fuzzel or standalone with built-in interface
  • Extensible - Script filters and addons for custom workflows
  • Wayland-first - Designed specifically for modern Wayland compositors
  • Simple configuration - Human-readable YAML with path expansion and environment variables
  • Install Raffi — Get started with installation via cargo, AUR, Homebrew, or build from source
  • Quick Start — Configure and launch your first application with Raffi