← All open source projects

fzf

junegunn/fzf

fzf is a fast command-line fuzzy finder for searching and selecting files, commands, Git branches, processes, and arbitrary text lines.

Forks 2,793
Author junegunn
Language Go
License MIT
Synced 2026-06-10

What it is

fzf is a command-line fuzzy finder. It takes a list of lines from stdin, shows interactive search, and returns the selected line. That makes it easy to integrate with shells, editors, Git workflows, and text-producing commands.

The point is universality. It is not only file search; it is an interactive selection layer for files, history, Git branches, processes, ripgrep results, directories, or custom scripts.

What is inside

The repository contains Go code, shell integration, key bindings, a Vim/Neovim plugin, installation docs, display modes, search syntax, and many examples.

A practical flow is to pipe a list into fzf, select a line, and use that result in another command.

Select a file with fzf

This command shows the principle: send files into fzf, select one, then open it.

Language: Bash
selected=$(find . -type f | fzf)
$EDITOR "$selected"

Strengths and limits

The strength is Unix-style composition. fzf works well with `find`, `rg`, `git`, `ps`, `kubectl`, and custom scripts.

The limitation is the terminal model. Users need to be comfortable with shells and pipes. More visual navigation often requires configuration.