fzf accepts any text list on standard input and returns the selected item on standard output, making it easy to add an interactive picker to shell commands. Without piped input, it searches files below the current directory. It is distributed as a single binary with shell integrations and Vim or Neovim support.
For Terminal users navigating long command-line lists, and Vim plugin authors adding pickers
fzf is built as a terminal-native interactive filter: it reads candidates from standard input or walks the current directory, then writes selected entries to standard output. Its matcher supports fuzzy, exact, boundary, prefix, suffix, and equal matching algorithms.
README.md (Usage; Search syntax); src/core.go (Run); src/algo/algo.go (matching functions)
Finder runtime
Starts the finder using parsed options.
src/core.go
Terminal interaction loop
Renders results, handles input, selections, actions, and previews.
src/terminal.go
Option parser
Parses display, search, binding, preview, and walker options.
src/options.go
Matching algorithms
Ranks fuzzy and exact matches across candidate text.
src/algo/algo.go
Generated