Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Command-Line Apps
  3. fzf

fzf

MITGov0.71.0

A general-purpose command-line fuzzy finder for interactive filtering of lists like files, history, processes, and git commits.

Visit WebsiteGitHubGitHub
79.7k stars2.8k forks0 contributors

What is fzf?

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.

Target Audience

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.

Value Proposition

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.

Overview

:cherry_blossom: A command-line fuzzy finder

Use Cases

Best For

  • Fuzzy-finding files and directories directly from the command line with shell key bindings (e.g., Ctrl+T).
  • Searching and selecting from command history interactively (e.g., Ctrl+R) with chronological or relevance sorting.
  • Navigating directory structures quickly (e.g., Alt+C) to change working directories.
  • Integrating fuzzy search into Vim or Neovim workflows for opening files, buffers, or git commits.
  • Previewing file contents (including images) or directory trees in a split window during search operations.
  • Building interactive scripts or tools that require dynamic filtering of large lists, such as process selection or hostname lookup.

Not Ideal For

  • Projects requiring graphical user interfaces or drag-and-drop functionality without command-line interaction.
  • Environments where exact, non-fuzzy string matching is mandatory and character omissions are not allowed.
  • Teams using Windows PowerShell as their primary shell without compatibility layers or extensive customization.
  • Workflows that need built-in, out-of-the-box previews for non-text data (e.g., videos, databases) without external tool scripting.

Pros & Cons

Pros

Blazing Fast Performance

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.

Seamless Shell Integration

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.

Highly Customizable Interface

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.

Versatile Preview Capabilities

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.

Cons

Performance Trade-offs with Options

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.

Not a Dedicated File Finder

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.

Complex Setup for Non-Standard Shells

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.

Frequently Asked Questions

Quick Stats

Stars79,710
Forks2,789
Contributors0
Open Issues245
Last commit3 days ago
CreatedSince 2013

Tags

#search#productivity#unix#fish#shell-integration#vim#terminal#cli-tool#fzf#bash#cli#fuzzy-finder#tmux#neovim#command-line#go#vim-plugin#zsh

Links & Resources

Website

Included in

Go169.1kShell36.8kCommand-Line Apps19.2kZSH Plugins17.6kTerminals Are Sexy12.9kRobotic Tooling3.8kFOSS for Developers1.3k
Auto-fetched 1 day ago

Related Projects

oh-my-zshoh-my-zsh

🙃 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.

Stars186,399
Forks26,360
Last commit4 days ago
the-art-of-command-linethe-art-of-command-line

Master the command line, in one page

Stars160,747
Forks14,801
Last commit1 year ago
fuckfuck

Magnificent app which corrects your previous console command.

Stars96,666
Forks3,931
Last commit1 year ago
ripgrepripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

Stars62,830
Forks2,511
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub