Alternatives to fzf
A fuzzy filter for any list: files, command history, processes, branches, anything you can pipe into it. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
fzf
A fuzzy filter for any list: files, command history, processes, branches, anything you can pipe into it.
Replacements
Listings that take over the same core job as fzf.
Television
Search files and other data through a terminal fuzzy finder.
Television is a terminal fuzzy finder built around configurable channels for different data sources, rather than fzf's approach of filtering any piped standard input.
sig
Search streaming text interactively in your terminal.
sig searches streaming text interactively and updates matches as data arrives, but it is narrower than fzf's general list picker with previews and key bindings.
fzy
A fast, simple fuzzy text selector for the terminal with an advanced scoring algorithm.
fzy is a smaller C picker with ranking designed to surface the intended match first, but it has fewer built-in features such as previews and no listed Windows support.
peco
An interactive command-line filter that narrows piped input as you type and returns the selection.
peco filters piped input interactively as you type, but it has fewer built-in integrations than fzf and needs shell configuration for key bindings.
Also worth comparing
These listings name fzf as their own alternative, so the relationship runs both ways.
fd
Finds files by name without the argument soup that find requires, and it is much faster.
fzf filters any piped list interactively, so it can pick files by name, but it relies on another command to list them rather than traversing directories itself.
HSTR
A terminal suggest box for viewing, searching and managing Bash and Zsh command history.
fzf provides fuzzy command history search through its shell integration and also filters any other list, but key binding setup differs per shell.
Similar software
Related functionality, not a direct replacement.
ripgrep
Searches a whole directory tree for a pattern in a fraction of the time grep takes, and skips what gitignore says to skip.
zoxide
Learns the directories you actually use, so changing to one takes a few letters instead of a full path.
Yazi
A terminal file manager where nothing blocks: every read, preview and copy happens asynchronously.
Atuin
Search shell history with command context and optional encrypted synchronization.
Gum
Drop-in prompts, menus, spinners and formatting for shell scripts, so a bash script can have a decent interface.