Free & Open Source — v0.74.3

Fuzzy Find AnythingFrom Your Terminal

fzf is a fast command-line fuzzy finder. Filter files, shell history and git branches by typing a few letters. Free, open source and cross-platform.

$0
Free forever
81.9K
GitHub stars
MIT
Open license
3
Mac · Linux · Win

One tool, a faster whole terminal

fzf filters any list you throw at it, then hands the pick back to your shell, editor or script.

Fuzzy search any list

Pipe files, processes, git branches or hostnames into fzf and filter by typing a few letters. The fuzzy match finds it even with characters skipped.

any STDIN list

Shell key bindings

CTRL-T finds files, CTRL-R searches history and ALT-C jumps into a folder. The fzf zsh, bash and fish integration wires them up in one line.

CTRL-T · CTRL-R · ALT-C

Find files instantly

Use fzf to find files in a huge tree without typing a path. Pair it with fd or ripgrep and even a giant repo opens in a keystroke.

fzf find files

Search your history

Hit CTRL-R and fuzzy search every command you have run. No more mashing the up arrow to find that long docker line from last week.

CTRL-R history

Vim and Neovim integration

The fzf.vim plugin drops the same finder into your editor. Jump to files, buffers and grep hits without leaving the keyboard.

fzf.vim

Written in Go, MIT licensed

fzf is a single portable binary written in Go, so it filters millions of items fast with zero dependencies. Open source and free on every platform.

Go · MIT

Install fzf on Mac in one command

Install the binary with Homebrew, then add one line to your shell config for the key bindings.

macOS & Linux · Homebrew
$ brew install fzf
Shell integration · zsh
$ source <(fzf --zsh)
01

Open Terminal on Mac

Press +Space, type Terminal, then hit Return. A fresh window opens ready for the command above.

02

Install and wire up your shell

Run the brew line, then add the integration line to ~/.zshrc and reload. CTRL-T and CTRL-R start working right away.

On Windows use choco, scoop or winget. Linux distros ship fzf in apt, dnf and pacman too.

Download Binary

Fuzzy finding in three steps

Install once, then filter anything from your keyboard.

1

Install and source it

Run brew install fzf, then add the shell integration line so the key bindings load with every new terminal.

2

Trigger the finder

Press CTRL-T for files or CTRL-R for history. You can also pipe any command output straight into fzf.

3

Type and pick

Type a few letters to narrow the list, use the arrows to move, then press Enter. Your pick drops back onto the command line.

This is fzf finding a file

Type a rough pattern, watch the list narrow live, then hit Enter. The match count and highlights update on every keystroke.

zsh · bash · fish Vim + Neovim tmux popup single Go binary

Trusted by developers everywhere

Notes from people who put fzf in their dotfiles and never looked back.

★★★★★

fzf changed how I use the terminal. CTRL-R for history and CTRL-T for files, I never type a full path anymore. Fastest tool on my Mac.

Marcus T.
★★★★★

Set up fzf in zsh in about a minute and my whole shell got smarter. The fuzzy history search alone is worth the install.

Priya N.
★★★★★

I pipe everything into fzf now. Git branches, docker containers, kubectl pods. One tiny binary filters any list I throw at it.

Daniel R.
★★★★★

The fzf Vim plugin is glued to my editor. Files and grep across a huge repo return instantly. I could not code without it now.

Aisha K.
★★★★

Took me a day to learn the keybindings, and the docs assume some shell knowledge. Once it clicked though, fzf is unbeatable.

Tom H.
★★★★★

Installed with one brew line on Mac and it just worked. No config needed to start finding files fast. Exactly what a tool should be.

Kenji S.
★★★★★

Millions of lines and fzf still filters instantly. Written in Go and it shows. This is the gold standard for a fuzzy finder.

Elena V.
★★★★★

Open source, MIT, single binary, zero dependencies. I drop fzf on every server I touch. It belongs in everyone's dotfiles.

Owen B.
★★★★★

CTRL-R replaced my messy reverse-search habit overnight. fzf makes my shell history actually usable for the first time.

Grace L.

fzf questions people ask

Everything worth knowing before you install fzf.

What is fzf? +
fzf is a general-purpose command-line fuzzy finder. It reads any list, such as files, command history or git branches, and lets you filter it interactively by typing a rough pattern. Written in Go, it runs as a single fast binary.
What is fzf used for? +
People use fzf to find files, search shell history, switch git branches, kill processes and pick from any list in the terminal. Anything you can pipe into it, fzf can filter, so it becomes a finder for your whole workflow.
How do I install fzf using Homebrew? +
Run brew install fzf in the Terminal. Homebrew works on both macOS and Linux. After that, add the shell integration line so the CTRL-T and CTRL-R key bindings load automatically.
Can I use fzf on a Mac? +
Yes. fzf runs natively on macOS, including Apple Silicon. The quickest route is brew install fzf, and the shell integration works the same in the default zsh shell on modern Macs.
How do I use fzf in the terminal? +
Type fzf to filter files under the current folder, or pipe a command into it like history | fzf. With shell integration on, press CTRL-T for files or CTRL-R for history from any prompt.
How do I use fzf to find files? +
Press CTRL-T to open the file finder, then type part of the name. fzf shows matches as you type, so you pick a deeply nested file in a couple of keystrokes. Pair it with fd for even faster listings.
What is fzf in zsh? +
fzf zsh means the shell integration for the zsh shell. Add source <(fzf --zsh) to your ~/.zshrc and it wires up the CTRL-T, CTRL-R and ALT-C key bindings plus fuzzy tab completion.
How do I configure fzf? +
Set the FZF_DEFAULT_OPTS environment variable for layout, colors and key bindings, and FZF_DEFAULT_COMMAND for the default source. Drop these in your shell config so every fzf session uses them.
What programming language is fzf written in? +
fzf is written in Go. That is why it ships as one portable binary with no runtime dependencies and stays fast even when filtering millions of items.
Can I use fzf with Vim? +
Yes. The fzf.vim plugin brings the finder into Vim and Neovim for files, buffers and grep results. Neovim users who prefer Lua can also reach for fzf-lua, which builds on the same engine.

Make your terminal fast

Install fzf free and find any file, command or branch by typing a few letters. Mac, Linux and Windows, one small binary.

v0.74.3 · MIT · Go · Mac · Linux · Win · ★ 4.9 / 1,890 ratings