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.
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
- fzf README: installation and usageOfficial documentation · Junegunn Choi and contributors
- fzf v0.74.5 releaseOfficial documentation · fzf maintainers
- Custom == completion trigger leaves a prefix #4945Review · AlexPKok; hamarshehmhmd and ump45nose