Repo of the Day
Aloxaf/fzf-tab: Replace zsh's default completion selection menu with fzf!
Published: Aug 30, 2026
Open repository ↗Replace zsh's default completion selection menu with fzf! - Aloxaf/fzf-tab
Summary
fzf-tab is a zsh plugin that replaces zsh's default completion selection menu with the fzf fuzzy finder, so pressing Tab opens an fzf prompt over zsh's completion candidates. It does not generate completions itself; it only changes how candidates are displayed, so most existing zsh completion configuration still applies. The project is MIT-licensed and runs on zsh with fzf installed separately.
What it is useful for
The plugin is useful for zsh users who want to search and filter completion candidates rather than stepping through them one at a time. Because it sits on top of zsh's compsys, the fuzzy menu appears for files, directories, git branches, environment variables, function names, in-word completion, and the directory stack, not only filenames. fzf muscle memory carries over: Ctrl+Space for multi-select, F1/F2 to switch groups, and / to trigger continuous completion. For tmux 3.2+ users, a popup mode is provided through the ftb-tmux-popup script.
How engineers can use it
The README requires fzf to be installed, completions to be configured before compinit, and fzf-tab to be sourced after compinit but before plugins that wrap widgets, such as zsh-autosuggestions or fast-syntax-highlighting. It also must be the last plugin to bind Tab (^I).
Five install paths are documented. A manual install:
git clone https://github.com/Aloxaf/fzf-tab ~/somewhere
Then in ~/.zshrc:
autoload -U compinit; compinit
source ~/somewhere/fzf-tab.plugin.zsh
Other options include zinit light Aloxaf/fzf-tab for Zinit, antigen bundle Aloxaf/fzf-tab for Antigen, and cloning into the Oh-My-Zsh custom directory and adding fzf-tab to the plugin list. After setup, Tab triggers fzf.
Configuration uses zstyle. The README shows: zstyle ':completion:*:git-checkout:*' sort false to disable sort for git checkout; zstyle ':completion:*:descriptions' format '[%d]' to enable group support; zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} for filename colors; and zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath' to preview cd candidates. The README warns that fzf-tab does not follow FZF_DEFAULT_OPTS by default; enabling it can cause issues, with examples flagged in issue #455.
For many files, a binary module built with build-fzf-tab-module speeds up color parsing; otherwise a pure-zsh parser is used. The commands disable-fzf-tab, enable-fzf-tab, and toggle-fzf-tab switch behavior at runtime.