← Package directory
Available on winget

Install fzf

A general-purpose command-line fuzzy finder

Install with winget
winget install --id junegunn.fzf
Upgrade
winget upgrade --id junegunn.fzf
Uninstall
winget uninstall --id junegunn.fzf

About fzf

A general-purpose command-line fuzzy finder

What's new in 0.72.0

Release highlights: https://junegunn.github.io/fzf/releases/0.72.0/ - --header-border, --header-lines-border, and --footer-border now accept a new inline style that embeds the section inside the list frame, separated from the list content by a horizontal line. When the list border has side segments, the separator joins them as T-junctions. - Requires a --list-border shape that has both top and bottom segments (rounded, sharp, bold, double, block, thinblock, or horizontal); falls back to line otherwise. horizontal has no side borders, so the separator is drawn without T-junction endpoints. - Sections stack. Example combining all three: ps -ef | fzf --reverse --style full \ --header 'Select a process' --header-lines 1 \ --bind 'load:transform-footer:echo $FZF_TOTAL_COUNT processes' \ --header-border dashed --header-first \ --header-lines-border inline --footer-border inline - --header-label and --footer-label render on their respective separator row. - The separator inherits --color list-border when the section's own border color is not explicitly set. - inline takes precedence over --header-first: the inline section stays inside the list frame. --header-border=inline requires --header-lines-border to be inline or unset. - New dashed border style with dashed edges (╶ / ┆) and rounded corners. - --border=dashed, --list-border=dashed, etc. - Works with inline sections (T-junctions render correctly). - [vim] Move and resize popup window when detecting VimResized event (#4778) (@Vulcalien) - Bug fixes - Fixed gutter display in --style=minimal - Fixed arrow keys / Home / End witho...

Read release notes

Version history

Version Updated Notes
0.72.0 Unknown Release highlights: https://junegunn.github.io/fzf/releases/0.72.0/ - --header-border, --header-lines-border, and --footer-border now accept a new inline style that embeds the section inside the list frame, separated fro...
0.71.0 Unknown Release highlights: https://junegunn.github.io/fzf/releases/0.71.0/ - Added --popup as a new name for --tmux with Zellij support - --popup starts fzf in a tmux popup or a Zellij floating pane - --tmux is now an alias for...
0.70.0 Unknown - Added change-with-nth action for dynamically changing the --with-nth option. - Requires --with-nth to be set initially. - Multiple options separated by | can be given to cycle through. echo -e "a b c\nd e f\ng h i" | f...
0.68.0 Unknown - Implemented word wrapping in the list section - Added --wrap=word (or --wrap-word) option and toggle-wrap-word action for word-level line wrapping in the list section - Changed default binding of ctrl-/ and alt-/ from...
0.67.0 Unknown - Added --freeze-left=N option to keep the leftmost N columns always visible. # Keep the file name column fixed and always visible git grep --line-number --color=always -- '' | fzf --ansi --delimiter : --freeze-left 1 #...
0.66.0 Unknown Quick summary This version introduces many new features centered around the new "raw" mode. ───────────┬───────┬─────────────────┬────────────────────────────────────────────────── Type │Class │Name │Description ────────...
0.65.1 Unknown - Fixed incorrect $FZF_CLICK_HEADER_WORD and $FZF_CLICK_FOOTER_WORD when the header or footer contains ANSI escape sequences and tab characters. - Fixed a bug where you cannot unset the default --nth using change-nth act...
0.65.0 Unknown - Added click-footer event that is triggered when the footer section is clicked. When the event is triggered, the following environment variables are set: - $FZF_CLICK_FOOTER_COLUMN - clicked column (1-based) - $FZF_CLIC...
0.64.0 Unknown - Added multi event that is triggered when the multi-selection has changed. fzf --multi \ --bind 'ctrl-a:select-all,ctrl-d:deselect-all' \ --bind 'multi:transform-footer:(( FZF_SELECT_COUNT )) && echo "Selected $FZF_SELE...
0.63.0 Unknown Release highlights: https://junegunn.github.io/fzf/releases/0.63.0/ - Added footer. The default border style for footer is line, which draws a single separator line. fzf --reverse --footer "fzf: friend zone forever" - Op...
0.62.0 Unknown - Relaxed the --color option syntax to allow whitespace-separated entries (in addition to commas), making multi-line definitions easier to write and read # seoul256-light fzf --style full --color=' fg:#616161 fg+:#616161...
0.61.3 Unknown - Reverted #4351 as it caused tmux run-shell 'fzf --tmux' to fail (#4559 #4560) - More environment variables for child processes (#4356)
0.61.2 Unknown - Fixed panic when using header border without pointer/marker (@phanen) - Fixed --tmux option when already inside a tmux popup (@peikk0) - Bug fixes and improvements in CTRL-T binding of fish (#4334) (@bitraid) - Added -...
0.61.1 Unknown - Disable bracketed-paste mode on exit. This fixes issue where pasting breaks after running fzf on old bash versions that don't support the mode.
0.61.0 Unknown - Added --ghost=TEXT to display a ghost text when the input is empty # Display "Type to search" when the input is empty fzf --ghost "Type to search" - Added change-ghost and transform-ghost actions for dynamically changi...
0.60.3 Unknown - Bug fixes and improvements - [fish] Enable multiple history commands insertion (#4280) (@bitraid) - [walker] Append '/' to directory entries on MSYS2 (#4281) - Trim trailing whitespaces after processing ANSI sequences...
0.60.2 Unknown - Template for --with-nth and --accept-nth now supports {n} which evaluates to the zero-based ordinal index of the item - Fixed a regression that caused the last field in the "nth" expression to be trimmed when a regular...
0.60.1 Unknown - Bug fixes and minor improvements - Built-in walker now prints directory entries with a trailing slash - Fixed a bug causing unexpected behavior with fzf-tab. Please upgrade if you use it. - Thanks to @alexeisersun, @bi...
0.60.0 Unknown Release highlights: https://junegunn.github.io/fzf/releases/0.60.0/ - Added --accept-nth for choosing output fields ps -ef | fzf --multi --header-lines 1 | awk '{print $2}' # Becomes ps -ef | fzf --multi --header-lines 1...
0.59.0 Unknown Release highlights: https://junegunn.github.io/fzf/releases/0.59.0/ - Prioritizing file name matches (#4192) - Added a new tiebreak option pathname for prioritizing file name matches - --scheme=path now sets --tiebreak=p...