fzf: turn a long list into a searchable selection

Filter candidate files, history entries or other lines in a terminal. Start with selection before adding shell shortcuts or command bindings.

Creator: Junegunn Choi and fzf contributors0.74.5Nov 2, 2026MITSource repository
Get from publisher
macOSLinuxWindows

Requirements

A supported terminal on macOS, Linux or Windows, and a small list of known candidate lines for the first try. Shell integrations depend on the shell and installed version.

Quick start

The release checked on November 2, 2026 is 0.74.5, published October 11. Get the matching official binary from the release page or follow the official package instructions. With Homebrew already available, brew install fzf. Check fzf --version. Feed a short list through standard input, type part of an item, use Enter to select or Esc to cancel. Set up optional shell integration only after checking its documented behavior.

Filter candidate files, history entries or other lines in a terminal. Start with selection before adding shell shortcuts or command bindings.

Pick from a list you understand

fzf is Junegunn Choi and contributors’ terminal fuzzy finder. It reads candidate lines from standard input and writes the selected item to standard output. Without piped input, its default file walker builds the candidate list. This makes it useful for selecting a file or a history entry; it does not search the contents of every file.

Start with selection

Use a small list first. Type a fragment to narrow the candidates, move the selection and press Enter, or cancel with Esc. Inspect the resulting text before connecting it to an editor or another command. Preview commands and custom bindings add behavior beyond simply filtering a list. The README documents these separately from optional shell integration.

Check your actual shell setup

In issue 4945, AlexPKok reports that a custom == completion trigger leaves those characters in the resulting filename with fzf 0.74.5 on Linux/Bash. Two commenters describe reproducing the interaction with Bash word boundaries. The issue remains open; a linked fork is not an upstream release fix. Boloop has not reproduced it. Start with the documented defaults and test completion in your shell before adopting custom triggers. Boloop has not installed or run fzf for this recommendation.

Sources and further reading

  1. fzf README: installation and usageOfficial documentation · Junegunn Choi and contributors
  2. fzf v0.74.5 releaseOfficial documentation · fzf maintainers
  3. Custom == completion trigger leaves a prefix #4945Review · AlexPKok; hamarshehmhmd and ump45nose