SkillAgentSearch skills...

Fzf

:cherry_blossom: A command-line fuzzy finder

Install / Use

/learn @junegunn/Fzf
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <img src="https://raw.githubusercontent.com/junegunn/i/master/fzf-color.png" alt="fzf - a command-line fuzzy finder"> <a href="https://github.com/junegunn/fzf/actions"><img src="https://github.com/junegunn/fzf/actions/workflows/linux.yml/badge.svg?branch=master" alt="Build Status"></a> <a href="http://github.com/junegunn/fzf/releases"><img src="https://img.shields.io/github/v/tag/junegunn/fzf" alt="Version"></a> <a href="https://github.com/junegunn/fzf?tab=MIT-1-ov-file#readme"><img src="https://img.shields.io/github/license/junegunn/fzf" alt="License"></a> <a href="https://github.com/junegunn/fzf/graphs/contributors"><img src="https://img.shields.io/github/contributors/junegunn/fzf" alt="Contributors"></a> <a href="https://github.com/sponsors/junegunn"><img src="https://img.shields.io/github/sponsors/junegunn" alt="Sponsors"></a> <a href="https://github.com/junegunn/fzf/stargazers"><img src="https://img.shields.io/github/stars/junegunn/fzf?style=flat" alt="Stars"></a> </div>

fzf is a general-purpose command-line fuzzy finder.

<img src="https://raw.githubusercontent.com/junegunn/i/master/fzf-preview.png" width=640>

It's an interactive filter program for any kind of list; files, command history, processes, hostnames, bookmarks, git commits, etc. It implements a "fuzzy" matching algorithm, so you can quickly type in patterns with omitted characters and still get the results you want.

Highlights

  • Portable — Distributed as a single binary for easy installation
  • Fast — Optimized to process millions of items instantly
  • Versatile — Fully customizable through an event-action binding mechanism
  • All-inclusive — Comes with integrations for Bash, Zsh, Fish, Vim, and Neovim

Table of Contents

<!-- vim-markdown-toc GFM --> <!-- vim-markdown-toc -->

Installation

Using Homebrew

You can use Homebrew (on macOS or Linux) to install fzf.

brew install fzf

[!IMPORTANT] To set up shell integration (key bindings and fuzzy completion), see the instructions below.

fzf is also available via MacPorts: sudo port install fzf

Using Mise

You can use mise to install fzf.

mise use -g fzf@latest

Linux packages

| Package Manager | Linux Distribution | Command | | --------------- | ----------------------- | ---------------------------------- | | APK | Alpine Linux | sudo apk add fzf | | APT | Debian 9+/Ubuntu 19.10+ | sudo apt install fzf | | Conda | | conda install -c conda-forge fzf | | DNF | Fedora | sudo dnf install fzf | | Nix | NixOS, etc. | nix-env -iA nixpkgs.fzf | | Pacman | Arch Linux | sudo pacman -S fzf | | pkg | FreeBSD | pkg install fzf | | pkgin | NetBSD | pkgin install fzf | | pkg_add | OpenBSD | pkg_add fzf | | Portage | Gentoo | emerge --ask app-shells/fzf | | Spack | | spack install fzf | | XBPS | Void Linux | sudo xbps-install -S fzf | | Zypper | openSUSE | sudo zypper install fzf |

[!IMPORTANT] To set up shell integration (key bindings and fuzzy completion), see the instructions below.

Packaging status

Windows packages

On Windows, fzf is available via Chocolatey, Scoop, Winget, and MSYS2:

| Package manager | Command | | --------------- | ------------------------------------- | | Chocolatey | choco install fzf | | Scoop | scoop install fzf | | Winget | winget install fzf | | MSYS2 (pacman) | pacman -S $MINGW_PACKAGE_PREFIX-fzf |

Using git

Alternatively, you can "git clone" this repository to any directory and run install script.

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

The install script will add lines to your shell configuration file to modify $PATH and set up shell integration.

Binary releases

You can download the official fzf binaries from the releases page.

  • https://github.com/junegunn/fzf/releases

Setting up shell integration

Add the following line to your shell configuration file.

  • bash
    # Set up fzf key bindings and fuzzy completion
    eval "$(fzf --bash)"
    
  • zsh
    # Set up fzf key bindings and fuzzy completion
    source <(fzf --zsh)
    
  • fish
    # Set up fzf key bindings
    fzf --fish | source
    

[!NOTE] --bash, --zsh, and --fish options are only available in fzf 0.48.0 or later. If you have an older version of fzf, or want finer control, you can source individual script files in the /shell directory. The location of the files may vary depending on the package manager you use. Please refer to the package documentation for more information. (e.g. apt show fzf)

[!TIP] You can disable CTRL-T, CTRL-R, or ALT-C bindings by setting the corresponding *_COMMAND variable to an empty string when sourcing the script. For example, to disable CTRL-R and ALT-C:

  • bash: FZF_CTRL_R_COMMAND= FZF_ALT_C_COMMAND= eval "$(fzf --bash)"
  • zsh: FZF_CTRL_R_COMMAND= FZF_ALT_C_COMMAND= source <(fzf --zsh)
  • fish: fzf --fish | FZF_CTRL_R_COMMAND= FZF_ALT_C_COMMAND= source

Setting the variables after sourcing the script will have no effect.

Vim/Neovim plugin

If you use vim-plug, add this to your Vim configuration file:

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
  • junegunn/fzf provides the basic library functions
    • fzf#install() makes sure that you have the latest binary
  • junegunn/fzf.vim is a separate project that provides a variety of useful commands

To learn more about the Vim integration, see README-VIM.md.

[!TIP] If you use Neovim and prefer Lua-based plugins, check out fzf-lua.

Upgrading fzf

fzf is being actively developed, and you might want to upgrade it once in a while. Please follow t

View on GitHub
GitHub Stars78.9k
CategoryDevelopment
Updated43m ago
Forks2.7k

Languages

Go

Security Score

100/100

Audited on Mar 24, 2026

No findings