Fzf is a general-purpose command-line fuzzy finder that acts as an interactive filter for any list of items, including files, command history, processes, Git branches, and bookmarks. Written in Go for portability and performance, fzf can process millions of items with negligible latency, making it one of the most versatile tools in the modern terminal toolkit. It solves the fundamental problem of finding and selecting items from large lists in the terminal by providing a fast, interactive, fuzzy-matching interface.
Fzf implements an advanced fuzzy matching algorithm that finds results even when characters are scattered across the string, supports extended search syntax with exact matching, prefix matching, and exclusion operators, and provides rich customization through an event-action binding mechanism. It comes with built-in shell key bindings: Ctrl+T for file selection, Alt+C for directory navigation, and Ctrl+R for intelligent history search. Fzf supports preview windows for displaying file contents or command output alongside search results, and can be used as a selection UI for any command-line workflow.
Fzf is indispensable for developers and power users who want to speed up every aspect of their terminal workflow. It integrates seamlessly with Bash, Zsh, Fish, Vim, and Neovim, and pairs particularly well with tools like fd for file finding, ripgrep for code search, and bat for file preview. Fzf has become a foundational building block in countless terminal workflows, from Git branch switching to Kubernetes pod selection, making it one of the most widely adopted CLI productivity tools.