A general-purpose command-line fuzzy finder for interactive filtering of lists like files, history, processes, and git commits.
fzf is an interactive Unix filter program that implements fuzzy matching, allowing users to quickly search through any kind of list—such as files, command history, processes, hostnames, bookmarks, and git commits—by typing patterns with omitted characters. It enhances command-line productivity by providing a fast, versatile, and portable interface that integrates seamlessly with shells and editors.
Command-line users and developers working in Unix-like environments (including macOS, Linux, and Windows via compatibility layers) who frequently need to search and filter lists of items such as files, processes, or command history. It is particularly valuable for system administrators, DevOps engineers, and power users who use shells like Bash, Zsh, or Fish, and editors like Vim or Neovim.
Developers choose fzf over alternatives because it is a single, portable binary that is extremely fast, even with millions of items, and offers deep, customizable integration with shells and editors out of the box. Its unique selling point is its general-purpose fuzzy matching algorithm combined with features like a preview window, dynamic reloading of candidate lists, and extensive key binding customization, which together provide a highly efficient and flexible filtering tool for diverse data sources.
:cherry_blossom: A command-line fuzzy finder
Optimized to process millions of items instantly with efficient algorithms, making it ideal for large datasets like full file systems or extensive command histories, as highlighted in the Performance section.
Comes with built-in key bindings and fuzzy completion for Bash, Zsh, and Fish out of the box, enhancing command-line productivity without requiring additional plugins or complex setup.
Offers extensive customization through event-action bindings, display modes (e.g., --height, --tmux), and style presets, allowing users to tailor the look and behavior to specific workflows.
Supports preview windows for content using external tools like bat for syntax highlighting or custom scripts, including image previews via protocols like Kitty graphics or Sixel, as detailed in the Preview window section.
Using advanced options like --ansi, --nth, or regex delimiters can significantly slow down fzf, requiring careful tuning to maintain speed, as warned in the Performance section of the README.
As a general-purpose text filter, adding preview options to default settings (e.g., in FZF_DEFAULT_OPTS) can break with non-file inputs like process lists or command history, a limitation explicitly noted in the README.
Shell integration is optimized for Bash, Zsh, and Fish; setting up fzf with other shells or environments (e.g., Windows PowerShell) often requires manual configuration and lacks native key binding support.
🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.
Master the command line, in one page
Magnificent app which corrects your previous console command.
ripgrep recursively searches directories for a regex pattern while respecting your gitignore
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.