fzf + zsh: 3 integrations that change how you work
fzf is a fuzzy finder. You pipe a list of things into it, type a few characters, and it narrows down the matches instantly. That alone is useful โ but the real power is the three shell integrations that come built in. Once you enable them, they replace workflows you do dozens of times per day.
Install fzf (brew install fzf) and run the install script ($(brew --prefix)/opt/fzf/install) to enable the key bindings. Then restart your shell.
Ctrl-R โ fuzzy history search
Instead of pressing Ctrl-R and hoping your bash/zsh reverse search finds the right command, fzf gives you a real-time fuzzy search through your entire history.
Type any fragment โ part of a command, a filename, a flag โ and it filters instantly. No more pressing Ctrl-R fifteen times to skip past the wrong match.
Ctrl-T โ find and insert files
Press Ctrl-T mid-command and fzf opens a file finder. Navigate your project, fuzzy-search by filename, and the selected path gets inserted into your command line.
Instead of typing out src/components/config-editor/TmuxConfigEditor.tsx, you type Ctrl-T, then tmuxcon and hit Enter. Done.
Set FZF_CTRL_T_COMMAND to use fd instead of find for much faster results that respect .gitignore. Example: export FZF_CTRL_T_COMMAND='fd --type f --hidden --follow --exclude .git'
Alt-C โ jump to any directory
Press Alt-C and fzf lists all directories below your current location. Fuzzy-search, hit Enter, and you cd there instantly. No more cd ../../../somewhere/deep/nested.
On macOS, Alt might not work by default in your terminal. In iTerm2, go to Profiles โ Keys โ set "Left Option key" to "Esc+". In Ghostty and Alacritty, it works out of the box.
The pattern
All three follow the same idea: take something you already do (search history, find files, change directories), make it fuzzy and instant. You don't learn new commands โ your existing shortcuts just get dramatically better.
For the full reference, see our fzf cheatsheet and zsh cheatsheet.