Skip to content
← Back to all tools

fzf

Free

Fuzzy-find anything that comes one item per line

Open Source No Ads No Tracking Offline No Sign-up Cross-platform

A general-purpose command-line fuzzy finder. Anything that prints one item per line — file lists, shell history, Git branches, processes, ssh hosts — can be piped into it and narrowed live by typing a few letters. After installation it replaces Ctrl-R history search and Ctrl-T file lookup.

Why we picked it

MIT-licensed, 83,000 stars.

It does not know what a file is, or a branch. It does exactly one thing: take a stream of lines, fuzzy-match them against what you type, and hand back the one you chose. Because it does only that, it attaches anywhere — git branch | fzf picks a branch, ps aux | fzf picks a process, history | fzf picks a command, all the same motion.

The most immediate gain is Ctrl-R. Default shell history search wants you to remember the prefix exactly; with fzf, any few letters surface the command with the long argument list you ran three weeks ago. That single change pays for the install.

It pairs with ripgrep, fd and Yazi, all listed here: ripgrep produces content, fd produces filenames, fzf does the picking.

To be clear about:

  • Ctrl-R and Ctrl-T require adding the shell integration script to your config; without that it is just a command.
  • It runs natively on Windows, but shell integration in PowerShell needs a bridge such as PSFzf.