github.com/junegunn/fzf
v0.74.3
#12 most downloaded on Go modules
junegunn/fzf
What this package is like to depend on
Last release 3 days ago
21 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 39 of 39 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
1082 releases · first in 2015
75 releases in the last 12 months
see the full history below
Release timeline
1082 releases · Jan 2015 to Aug 2026Releases
latest 60 of 1082-
v0.74.4-0.20260821042814-956562daaa8221 Aug 2026 pre-releaseNothing published for this version
-
v0.74.317 Aug 2026Release notes
Open source →- Performance optimizations for non-ASCII input
- ASCII queries are up to 16x faster
- Non-ASCII queries are up to 12x faster
- Reading accented Latin input is up to 37% faster
- Reading CJK input reduces memory use by up to 29%
- ASCII input is unaffected
- Fixed an image from a preview command being torn apart when its rows are separated by IND instead of newlines, as
chafadoes under tmux (#4885) - Fixed
replace-querycorrupting the item text when the query is edited afterwards - fzf no longer turns bracketed paste mode off on exit when the terminal already had it on, which broke pasting in shells that run fzf from a line editor widget (#4887)
- Fixed startup blocking on terminals that never answer escape sequences, such as FreeBSD virtual terminals. fzf waited for a reply until a key was pressed, then dropped that keystroke (#2860, #976)
Release notes
Open source →- Performance optimizations for non-ASCII input
- ASCII queries are up to 16x faster
- Non-ASCII queries are up to 12x faster
- Reading accented Latin input is up to 37% faster
- Reading CJK input reduces memory use by up to 29%
- ASCII input is unaffected
- Fixed an image from a preview command being torn apart when its rows are separated by IND instead of newlines, as
chafadoes under tmux (#4885) - Fixed
replace-querycorrupting the item text when the query is edited afterwards - fzf no longer turns bracketed paste mode off on exit when the terminal already had it on, which broke pasting in shells that run fzf from a line editor widget (#4887)
- Fixed startup blocking on terminals that never answer escape sequences, such as FreeBSD virtual terminals. fzf waited for a reply until a key was pressed, then dropped that keystroke (#2860, #976)
- Performance optimizations for non-ASCII input
-
v0.74.3-0.20260814101631-bd4efa277b4914 Aug 2026 pre-releaseNothing published for this version
-
v0.74.3-0.20260811144209-ca4c1b80e33011 Aug 2026 pre-releaseNothing published for this version
-
v0.74.201 Aug 2026Release notes
Open source →- Performance optimizations for short queries
- Short queries scan the largest candidate sets, and the first keystroke scans the whole input
- Single-character queries are up to 2.4x faster
- Two-character queries are up to 1.4x faster
- Faster sorting of search results, skipping redundant radix passes
change-border-labelandtransform-border-labelnow work on the native border of a tmux or Zellij floating pane- Fixed Kitty graphics sequences from a preview command being taken by tmux as pane title requests
- Fixed an image at the top of the preview being torn by
--preview-window ~N - Fixed nondeterministic match highlight positions
- Fixed signal and resize handlers persisting after
Run()returns when fzf is used as a library - fzf now detects terminal resize on Windows in
--heightmode (#4790) (@Cyrus580529) - fish: fixed history command being affected by user initialization scripts, and improved timestamp colors in CTRL-R (#4862) (@bitraid)
- zsh: fixed CTRL-R not propagating the exit status of fzf when perl is available (#4871) (@LangLangBart, @Toliak)
- zsh: fixed
chpwdhook functions being called twice by ALT-C (#4879) (@LangLangBart, @lucc)
Release notes
Open source →- Performance optimizations for short queries
- Short queries scan the largest candidate sets, and the first keystroke scans the whole input
- Single-character queries are up to 2.4x faster
- Two-character queries are up to 1.4x faster
- Faster sorting of search results, skipping redundant radix passes
change-border-labelandtransform-border-labelnow work on the native border of a tmux or Zellij floating pane- Fixed Kitty graphics sequences from a preview command being taken by tmux as pane title requests
- Fixed an image at the top of the preview being torn by
--preview-window ~N - Fixed nondeterministic match highlight positions
- Fixed signal and resize handlers persisting after
Run()returns when fzf is used as a library - fzf now detects terminal resize on Windows in
--heightmode (#4790) (@Cyrus580529) - fish: fixed history command being affected by user initialization scripts, and improved timestamp colors in CTRL-R (#4862) (@bitraid)
- zsh: fixed CTRL-R not propagating the exit status of fzf when perl is available (#4871) (@LangLangBart, @Toliak)
- zsh: fixed
chpwdhook functions being called twice by ALT-C (#4879) (@LangLangBart, @lucc)
- Performance optimizations for short queries
-
v0.74.2-0.20260730163232-e36576429dbd30 Jul 2026 pre-releaseNothing published for this version
-
v0.74.2-0.20260724123818-0efef298d2a424 Jul 2026 pre-releaseNothing published for this version
-
v0.74.2-0.20260720041212-235a726fae8920 Jul 2026 pre-releaseNothing published for this version
-
v0.74.2-0.20260719073831-b163463079e619 Jul 2026 pre-releaseNothing published for this version
-
v0.74.118 Jul 2026Release notes
Open source →- The default separator on the info line is no longer shown when the input section is already visually separated from the list section by a border line
# No separator shown below the header border fzf --style full --input-border none --header foo # Separator shown; no border separates the input section from the list section fzf --style full --input-border none --header foo --no-header-border # No separator below the border of the preview window at 'next' position fzf --preview : --preview-window next # Conversely, separator is now shown when the input border does not draw # a line facing the list section fzf --input-border bottom
- Rendering improvements
- Each frame is now wrapped in synchronized update mode (mode 2026) to reduce flickering on supported terminals
- Reduced rendering output by 10-23% by skipping redundant SGR sequences
- Fixed ghost characters and misplaced colors inside Zellij by using CHA instead of CR + CUF for horizontal cursor movement (#4858, zellij-org/zellij#5370)
- Fixed cursor restoration on exit with
--height --no-clearinside Neovim terminal by using DECSC/DECRC instead ofCSI s/CSI u
- nushell: fixed deprecation error of
str downcaseon nushell 0.114.0 or above (#4857) (@sim590) - Each release now includes
.debpackages for easy installation on Debian-based distros (#4859)
Release notes
Open source →- The default separator on the info line is no longer shown when the input section is already visually separated from the list section by a border line
# No separator shown below the header border fzf --style full --input-border none --header foo # Separator shown; no border separates the input section from the list section fzf --style full --input-border none --header foo --no-header-border # No separator below the border of the preview window at 'next' position fzf --preview : --preview-window next # Conversely, separator is now shown when the input border does not draw # a line facing the list section fzf --input-border bottom - Rendering improvements
- Each frame is now wrapped in synchronized update mode (mode 2026) to reduce flickering on supported terminals
- Reduced rendering output by 10-23% by skipping redundant SGR sequences
- Fixed ghost characters and misplaced colors inside Zellij by using CHA instead of CR + CUF for horizontal cursor movement (#4858, zellij-org/zellij#5370)
- Fixed cursor restoration on exit with
--height --no-clearinside Neovim terminal by using DECSC/DECRC instead ofCSI s/CSI u
- nushell: fixed deprecation error of
str downcaseon nushell 0.114.0 or above (#4857) (@sim590) - Each release now includes
.debpackages for easy installation on Debian-based distros (#4859)
- The default separator on the info line is no longer shown when the input section is already visually separated from the list section by a border line
-
v0.74.1-0.20260715093017-1462f1358de515 Jul 2026 pre-releaseNothing published for this version
-
v0.74.1-0.20260710044947-24832e97ef9610 Jul 2026 pre-releaseNothing published for this version
-
v0.74.006 Jul 2026Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.74.0/
- On tmux 3.7 or above,
--popupstarts fzf in a floating pane instead of a popup (#4850)- Unlike a popup, a floating pane is not modal; you can switch to other panes and windows while fzf is running, move and resize the pane with the mouse, zoom it to fullscreen, and use copy-mode in it
- A floating pane always has a native border, which is what makes the pane movable and resizable, so
border-nativeis implied - A popup is used instead when a border style is explicitly specified with
--border, so that the fzf-drawn border is the only border shown (noneandlineare treated as no border)fzf --popup --border
--border-labelis set as the title of the floating pane, and is displayed on the border ifpane-border-statusis enabled in tmuxfzf --popup --border-label ' fzf '
- On Zellij,
--popupuses the native border by default, consistent with tmux, so that the pane can be moved and resized with the mouse; fzf draws its own border when a border style is explicitly specified with--border--border-labelis set as the name of the pane, displayed on the native border
- Added
result-finalevent, a variant ofresultthat is not triggered while the input stream is still open (#4835)- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
# 'result' fires per intermediate snapshot (header keeps updating during load); # 'result-final' fires once after the stream closes (footer shows the final count) (seq 100; sleep 1; seq 100) | fzf --query 1 \ --bind 'result:transform-header(echo result: $FZF_MATCH_COUNT),result-final:transform-footer(echo final: $FZF_MATCH_COUNT)'
- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
- Added
waitaction to block subsequent actions until search completes (#4825)- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
# Wait for search to complete before moving to the best match fzf --bind 'start:change-query(foo)+wait+best'
- The initial loading of the input is also considered a search in progress, so
start:waitcan be used to wait until the input is fully loaded# Move to the last item after the input is fully loaded (seq 1000; sleep 1; seq 1001 2000) | fzf --bind 'start:wait+last'
- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
- Bound
alt-lefttobackward-wordandalt-righttoforward-wordby default (#4833) - Bug fixes and improvements
- Skip
$FZF_CURRENT_ITEMexport when the item is larger than 64 KB; a huge item can overflowARG_MAXand break preview and other child commands withE2BIG(#4806) transformandbg-transformnow allow a bareputaction in the output to insert the key that triggered the action# Insert the typed key ('a') into the query fzf --bind 'a:transform:echo put'
ALT-Cin zsh no longer resolves symbolic links when changing the directory, consistent with thecdbuiltin (#4816) (@silverneko)- Fixed horizontal mouse wheel events being treated as vertical scrolling (#4848) (@jason5122)
- Fixed
bwtheme not inheriting overridden colors - fish:
CTRL-Rnow works when$fish_color_normalor$fish_color_commentis empty or invalid (#4831) (@bitraid) - Fixed empty-shell detection in the install script (#4813)
- Fixed the install script writing nushell source lines into the config files of other shells (#4812)
- Skip
Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.74.0/
- On tmux 3.7 or above,
--popupstarts fzf in a floating pane instead of a popup (#4850)- Unlike a popup, a floating pane is not modal; you can switch to other panes and windows while fzf is running, move and resize the pane with the mouse, zoom it to fullscreen, and use copy-mode in it
- A floating pane always has a native border, which is what makes the pane movable and resizable, so
border-nativeis implied - A popup is used instead when a border style is explicitly specified with
--border, so that the fzf-drawn border is the only border shown (noneandlineare treated as no border)fzf --popup --border --border-labelis set as the title of the floating pane, and is displayed on the border ifpane-border-statusis enabled in tmuxfzf --popup --border-label ' fzf '
- On Zellij,
--popupuses the native border by default, consistent with tmux, so that the pane can be moved and resized with the mouse; fzf draws its own border when a border style is explicitly specified with--border--border-labelis set as the name of the pane, displayed on the native border
- Added
result-finalevent, a variant ofresultthat is not triggered while the input stream is still open (#4835)- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
# 'result' fires per intermediate snapshot (header keeps updating during load); # 'result-final' fires once after the stream closes (footer shows the final count) (seq 100; sleep 1; seq 100) | fzf --query 1 \ --bind 'result:transform-header(echo result: $FZF_MATCH_COUNT),result-final:transform-footer(echo final: $FZF_MATCH_COUNT)'
- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
- Added
waitaction to block subsequent actions until search completes (#4825)- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
# Wait for search to complete before moving to the best match fzf --bind 'start:change-query(foo)+wait+best' - The initial loading of the input is also considered a search in progress, so
start:waitcan be used to wait until the input is fully loaded# Move to the last item after the input is fully loaded (seq 1000; sleep 1; seq 1001 2000) | fzf --bind 'start:wait+last'
- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
- Bound
alt-lefttobackward-wordandalt-righttoforward-wordby default (#4833) - Bug fixes and improvements
- Skip
$FZF_CURRENT_ITEMexport when the item is larger than 64 KB; a huge item can overflowARG_MAXand break preview and other child commands withE2BIG(#4806) transformandbg-transformnow allow a bareputaction in the output to insert the key that triggered the action# Insert the typed key ('a') into the query fzf --bind 'a:transform:echo put'ALT-Cin zsh no longer resolves symbolic links when changing the directory, consistent with thecdbuiltin (#4816) (@silverneko)- Fixed horizontal mouse wheel events being treated as vertical scrolling (#4848) (@jason5122)
- Fixed
bwtheme not inheriting overridden colors - fish:
CTRL-Rnow works when$fish_color_normalor$fish_color_commentis empty or invalid (#4831) (@bitraid) - Fixed empty-shell detection in the install script (#4813)
- Fixed the install script writing nushell source lines into the config files of other shells (#4812)
- Skip
- On tmux 3.7 or above,
-
v0.73.2-0.20260706120627-c110aec3c4e306 Jul 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260628131503-9e2856559d5028 Jun 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260623115012-f2e451596c5d23 Jun 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260614145245-3c9965a61a8414 Jun 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260602112323-838ac7554bdb02 Jun 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260528140234-a50619388d7628 May 2026 pre-releaseNothing published for this version
-
v0.73.2-0.20260525053905-07c5cd41852625 May 2026 pre-releaseNothing published for this version
-
v0.73.125 May 2026Release notes
Open source →- Bug fixes
- Skip
$FZF_CURRENT_ITEMexport when the item contains a NUL byte;exec(2)rejects the env, breaking preview and other child commands (#4806) - Fixed O(n^2) HTTP body accumulation in
--listen; a single ~390 KB request could block the single-threaded server for ~8 s (Michal Majchrowicz, Marcin Wyczechowski, AFINE Team)
- Skip
Release notes
Open source →- Bug fixes
- Skip
$FZF_CURRENT_ITEMexport when the item contains a NUL byte;exec(2)rejects the env, breaking preview and other child commands (#4806) - Fixed O(n^2) HTTP body accumulation in
--listen; a single ~390 KB request could block the single-threaded server for ~8 s (Michal Majchrowicz, Marcin Wyczechowski, AFINE Team)
- Skip
- Bug fixes
-
v0.73.1-0.20260523161901-3953d1c649f523 May 2026 pre-releaseNothing published for this version
-
v0.73.023 May 2026Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.73.0/
- Nushell integration via
fzf --nushelland the installer (#4630) (@sim590) - New
--preview-window=nextposition that places the preview adjacent to the input section, on the list side: above the input in the default layout, below it in--layout=reverse(#4798) - Timer-driven
every(N)event for--bind, whereNis seconds - Added
$FZF_IDLE_TIME(whole seconds) and$FZF_IDLE_TIME_MS(milliseconds), holding the elapsed time since the last user activity- Pair with
every(N)to build idle-based behavior such as auto-accept or auto-quit (#1211)# Live process list; --track --id-nth 2 keeps the cursor on the same PID across reloads fzf --header-lines 1 --track --id-nth 2 --bind 'start,every(2):reload-sync:ps -ef' # Auto-accept after 10 seconds of inactivity, with a countdown in the footer after 5s fzf --bind 'every(1):bg-transform: if [[ $FZF_IDLE_TIME -lt 5 ]]; then echo change-footer: elif [[ $FZF_IDLE_TIME -lt 10 ]]; then echo "change-footer:auto-accept in $((10 - FZF_IDLE_TIME))s" else echo accept fi'
- Pair with
- Added
$FZF_CURRENT_ITEMfor shells where quoting{}is awkward (#4802) - Bug fixes
- Scoring: non-word characters at the start of input or after a delimiter now receive the same boundary bonus as word characters (#4795)
change-preview-windowno longer resetswrap/wrap-wordstate set viatoggle-preview-wrap/toggle-preview-wrap-word(#4791)- Stripped UTF-8-encoded C1 control characters from rendered items to prevent terminal control-sequence injection
- Fixed integer-overflow panic in
FuzzyMatchV2on 32-bit builds (Michal Majchrowicz, Marcin Wyczechowski, AFINE Team) - Fixed
bg-transformreload/excludepayloads being dropped - Fixed rendering glitch with preview window on the left combined with footer
Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.73.0/
- Nushell integration via
fzf --nushelland the installer (#4630) (@sim590) - New
--preview-window=nextposition that places the preview adjacent to the input section, on the list side: above the input in the default layout, below it in--layout=reverse(#4798) - Timer-driven
every(N)event for--bind, whereNis seconds - Added
$FZF_IDLE_TIME(whole seconds) and$FZF_IDLE_TIME_MS(milliseconds), holding the elapsed time since the last user activity- Pair with
every(N)to build idle-based behavior such as auto-accept or auto-quit (#1211)# Live process list; --track --id-nth 2 keeps the cursor on the same PID across reloads fzf --header-lines 1 --track --id-nth 2 --bind 'start,every(2):reload-sync:ps -ef' # Auto-accept after 10 seconds of inactivity, with a countdown in the footer after 5s fzf --bind 'every(1):bg-transform: if [[ $FZF_IDLE_TIME -lt 5 ]]; then echo change-footer: elif [[ $FZF_IDLE_TIME -lt 10 ]]; then echo "change-footer:auto-accept in $((10 - FZF_IDLE_TIME))s" else echo accept fi'
- Pair with
- Added
$FZF_CURRENT_ITEMfor shells where quoting{}is awkward (#4802) - Bug fixes
- Scoring: non-word characters at the start of input or after a delimiter now receive the same boundary bonus as word characters (#4795)
change-preview-windowno longer resetswrap/wrap-wordstate set viatoggle-preview-wrap/toggle-preview-wrap-word(#4791)- Stripped UTF-8-encoded C1 control characters from rendered items to prevent terminal control-sequence injection
- Fixed integer-overflow panic in
FuzzyMatchV2on 32-bit builds (Michal Majchrowicz, Marcin Wyczechowski, AFINE Team) - Fixed
bg-transformreload/excludepayloads being dropped - Fixed rendering glitch with preview window on the left combined with footer
- Nushell integration via
-
v0.72.1-0.20260514154636-e0d081906fd714 May 2026 pre-releaseNothing published for this version
-
v0.72.1-0.20260505005659-263eb4732fc605 May 2026 pre-releaseNothing published for this version
-
v0.72.026 Apr 2026Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.72.0/
--header-border,--header-lines-border, and--footer-bordernow accept a newinlinestyle 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-bordershape that has both top and bottom segments (rounded,sharp,bold,double,block,thinblock, orhorizontal); falls back tolineotherwise.horizontalhas 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-labeland--footer-labelrender on their respective separator row.- The separator inherits
--color list-borderwhen the section's own border color is not explicitly set. inlinetakes precedence over--header-first: the inline section stays inside the list frame.--header-border=inlinerequires--header-lines-borderto beinlineor unset.
- Requires a
- New
dashedborder 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
VimResizedevent (#4778) (@Vulcalien) - Bug fixes
Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.72.0/
--header-border,--header-lines-border, and--footer-bordernow accept a newinlinestyle 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-bordershape that has both top and bottom segments (rounded,sharp,bold,double,block,thinblock, orhorizontal); falls back tolineotherwise.horizontalhas 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-labeland--footer-labelrender on their respective separator row.- The separator inherits
--color list-borderwhen the section's own border color is not explicitly set. inlinetakes precedence over--header-first: the inline section stays inside the list frame.--header-border=inlinerequires--header-lines-borderto beinlineor unset.
- Requires a
- New
dashedborder 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
VimResizedevent (#4778) (@Vulcalien) - Bug fixes
- Fixed gutter display in
--style=minimal - Fixed arrow keys / Home / End without modifiers being ignored under the kitty keyboard protocol (#4776) (@TymekDev)
- bash: Persist history deletion when
histappendis on (#4764)
- Fixed gutter display in
-
v0.71.1-0.20260421094800-27dab2422e5f21 Apr 2026 pre-releaseNothing published for this version
-
v0.71.004 Apr 2026Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.71.0/
- Added
--popupas a new name for--tmuxwith Zellij support--popupstarts fzf in a tmux popup or a Zellij floating pane--tmuxis now an alias for--popup- Requires tmux 3.3+ or Zellij 0.44+
- Cross-reload item identity with
--id-nth- Added
--id-nth=NTHto define item identity fields for cross-reload operations - When a
reloadis triggered with tracking enabled, fzf searches for the tracked item by its identity fields in the new list.--track --id-nth ..tracks by the entire line--track --id-nth 1tracks by the first field--trackwithout--id-nthretains the existing index-based tracking behavior- The UI is temporarily blocked (prompt dimmed, input disabled) until the item is found or loading completes.
- Press
EscapeorCtrl-Cto cancel the blocked state without quitting - Info line shows
+T*/+t*while searching
- Press
- With
--multi, selected items are preserved acrossreload-syncby matching their identity fields
- Added
- Performance improvements
- The search performance now scales linearly with the number of CPU cores, as we dropped static partitioning to allow better load balancing across threads.
=== query: 'linux' === [all] baseline: 21.95ms current: 17.47ms (1.26x) matches: 179966 (12.79%) [1T] baseline: 179.63ms current: 180.53ms (1.00x) matches: 179966 (12.79%) [2T] baseline: 97.38ms current: 90.05ms (1.08x) matches: 179966 (12.79%) [4T] baseline: 53.83ms current: 44.77ms (1.20x) matches: 179966 (12.79%) [8T] baseline: 41.66ms current: 22.58ms (1.84x) matches: 179966 (12.79%) - Improved the cache structure, reducing memory footprint per entry by 86x.
- With the reduced per-entry cost, the cache now has broader coverage.
- The search performance now scales linearly with the number of CPU cores, as we dropped static partitioning to allow better load balancing across threads.
- Shell integration improvements
GET /HTTP endpoint now includespositionsfield in each match entry, providing the indices of matched characters for external highlighting (#4726)- Allow adaptive height with negative value (
--height=~-HEIGHT) (#4682) - Bug fixes
--walker=followno longer follows symlinks whose target is an ancestor of the walker root, avoiding severe resource exhaustion when a symlink points outside the tree (e.g. Wine'sz:→/) (#4710)- Fixed AWK tokenizer not treating a new line character as whitespace
- Fixed
--{accept,with}-nthremoving trailing whitespaces with a non-default--delimiter - Fixed OSC8 hyperlinks being mangled when the URL contains unicode characters (#4707)
- Fixed
--with-shellnot handling quoted arguments correctly (#4709) - Fixed child processes not being terminated on Windows (#4723) (@pjeby)
- Fixed preview scrollbar not rendered after
toggle-preview - Fixed preview follow/scroll with long wrapped lines
- Fixed tab width when
--frozen-leftis used - Fixed preview mouse events being processed when no preview window exists
- zsh: Fixed history widget when
sh_globoption is on (#4714) (@EvanHahn)
Release notes
Open source →Release highlights: https://junegunn.github.io/fzf/releases/0.71.0/
- Added
--popupas a new name for--tmuxwith Zellij support--popupstarts fzf in a tmux popup or a Zellij floating pane--tmuxis now an alias for--popup- Requires tmux 3.3+ or Zellij 0.44+
- Cross-reload item identity with
--id-nth- Added
--id-nth=NTHto define item identity fields for cross-reload operations - When a
reloadis triggered with tracking enabled, fzf searches for the tracked item by its identity fields in the new list.--track --id-nth ..tracks by the entire line--track --id-nth 1tracks by the first field--trackwithout--id-nthretains the existing index-based tracking behavior- The UI is temporarily blocked (prompt dimmed, input disabled) until the item is found or loading completes.
- Press
EscapeorCtrl-Cto cancel the blocked state without quitting - Info line shows
+T*/+t*while searching
- Press
- With
--multi, selected items are preserved acrossreload-syncby matching their identity fields
- Added
- Performance improvements
- The search performance now scales linearly with the number of CPU cores, as we dropped static partitioning to allow better load balancing across threads.
=== query: 'linux' === [all] baseline: 21.95ms current: 17.47ms (1.26x) matches: 179966 (12.79%) [1T] baseline: 179.63ms current: 180.53ms (1.00x) matches: 179966 (12.79%) [2T] baseline: 97.38ms current: 90.05ms (1.08x) matches: 179966 (12.79%) [4T] baseline: 53.83ms current: 44.77ms (1.20x) matches: 179966 (12.79%) [8T] baseline: 41.66ms current: 22.58ms (1.84x) matches: 179966 (12.79%) - Improved the cache structure, reducing memory footprint per entry by 86x.
- With the reduced per-entry cost, the cache now has broader coverage.
- The search performance now scales linearly with the number of CPU cores, as we dropped static partitioning to allow better load balancing across threads.
- Shell integration improvements
- bash: CTRL-R now supports multi-select and
shift-deleteto delete history entries (#4715) - fish:
- Improved command history (CTRL-R) (#4703) (@bitraid)
- Rewrite completion script (SHIFT-TAB) (#4731) (@bitraid)
- Increase minimum fish version requirement to 3.4.0 (#4731) (@bitraid)
- bash: CTRL-R now supports multi-select and
GET /HTTP endpoint now includespositionsfield in each match entry, providing the indices of matched characters for external highlighting (#4726)- Allow adaptive height with negative value (
--height=~-HEIGHT) (#4682) - Bug fixes
--walker=followno longer follows symlinks whose target is an ancestor of the walker root, avoiding severe resource exhaustion when a symlink points outside the tree (e.g. Wine'sz:→/) (#4710)- Fixed AWK tokenizer not treating a new line character as whitespace
- Fixed
--{accept,with}-nthremoving trailing whitespaces with a non-default--delimiter - Fixed OSC8 hyperlinks being mangled when the URL contains unicode characters (#4707)
- Fixed
--with-shellnot handling quoted arguments correctly (#4709) - Fixed child processes not being terminated on Windows (#4723) (@pjeby)
- Fixed preview scrollbar not rendered after
toggle-preview - Fixed preview follow/scroll with long wrapped lines
- Fixed tab width when
--frozen-leftis used - Fixed preview mouse events being processed when no preview window exists
- zsh: Fixed history widget when
sh_globoption is on (#4714) (@EvanHahn)
- Added
-
v0.70.1-0.20260403095857-b7138e67a60603 Apr 2026 pre-releaseNothing published for this version
-
v0.70.1-0.20260322011817-22024817058b22 Mar 2026 pre-releaseNothing published for this version
-
v0.70.1-0.20260321124122-a00df93e132821 Mar 2026 pre-releaseNothing published for this version
-
v0.70.1-0.20260309130936-b59f27ef5aba09 Mar 2026 pre-releaseNothing published for this version
-
v0.70.1-0.20260307150215-9249ea17398d07 Mar 2026 pre-releaseNothing published for this version
-
v0.70.002 Mar 2026Release notes
Open source →Demo:
change-with-nth.mp4change-with-nthSummary
- Added
change-with-nthaction for dynamically changing the--with-nthoption.- Requires
--with-nthto be set initially. - Multiple options separated by
|can be given to cycle through.
echo -e "a b c\nd e f\ng h i" | fzf --with-nth .. \ --bind 'space:change-with-nth(1|2|3|1,3|2,3|)'
- Requires
- Added
change-header-linesaction for dynamically changing the--header-linesoption - Performance improvements (1.3x to 1.9x faster filtering depending on query)
=== query: 'l' === [all] baseline: 168.87ms current: 95.21ms (1.77x) matches: 5069891 (94.78%) [1T] baseline: 1652.22ms current: 841.40ms (1.96x) matches: 5069891 (94.78%) === query: 'lin' === [all] baseline: 343.27ms current: 252.59ms (1.36x) matches: 3516507 (65.74%) [1T] baseline: 3199.89ms current: 2230.64ms (1.43x) matches: 3516507 (65.74%) === query: 'linux' === [all] baseline: 85.47ms current: 63.72ms (1.34x) matches: 307229 (5.74%) [1T] baseline: 774.64ms current: 589.32ms (1.31x) matches: 307229 (5.74%) === query: 'linuxlinux' === [all] baseline: 55.13ms current: 35.67ms (1.55x) matches: 12230 (0.23%) [1T] baseline: 461.99ms current: 332.38ms (1.39x) matches: 12230 (0.23%) === query: 'linuxlinuxlinux' === [all] baseline: 51.77ms current: 32.53ms (1.59x) matches: 865 (0.02%) [1T] baseline: 409.99ms current: 296.33ms (1.38x) matches: 865 (0.02%) - Fixed
nthattribute merge order to respect precedence hierarchy (#4697) - bash: Replaced
printfwith builtinprintfto bypass local indirections (#4684) (@DarrenBishop)
Release notes
Open source →- Added
change-with-nthaction for dynamically changing the--with-nthoption.- Requires
--with-nthto be set initially. - Multiple options separated by
|can be given to cycle through.
echo -e "a b c\nd e f\ng h i" | fzf --with-nth .. \ --bind 'space:change-with-nth(1|2|3|1,3|2,3|)' - Requires
- Added
change-header-linesaction for dynamically changing the--header-linesoption - Performance improvements (1.3x to 1.9x faster filtering depending on query)
=== query: 'l' === [all] baseline: 168.87ms current: 95.21ms (1.77x) matches: 5069891 (94.78%) [1T] baseline: 1652.22ms current: 841.40ms (1.96x) matches: 5069891 (94.78%) === query: 'lin' === [all] baseline: 343.27ms current: 252.59ms (1.36x) matches: 3516507 (65.74%) [1T] baseline: 3199.89ms current: 2230.64ms (1.43x) matches: 3516507 (65.74%) === query: 'linux' === [all] baseline: 85.47ms current: 63.72ms (1.34x) matches: 307229 (5.74%) [1T] baseline: 774.64ms current: 589.32ms (1.31x) matches: 307229 (5.74%) === query: 'linuxlinux' === [all] baseline: 55.13ms current: 35.67ms (1.55x) matches: 12230 (0.23%) [1T] baseline: 461.99ms current: 332.38ms (1.39x) matches: 12230 (0.23%) === query: 'linuxlinuxlinux' === [all] baseline: 51.77ms current: 32.53ms (1.59x) matches: 865 (0.02%) [1T] baseline: 409.99ms current: 296.33ms (1.38x) matches: 865 (0.02%) - Fixed
nthattribute merge order to respect precedence hierarchy (#4697) - bash: Replaced
printfwith builtinprintfto bypass local indirections (#4684) (@DarrenBishop)
- Added
-
v0.68.1-0.20260301065739-5887edc6bae101 Mar 2026 pre-releaseNothing published for this version
-
v0.68.020 Feb 2026Release notes
preview-wrap-word.mp4Open source →- Implemented word wrapping in the list section
- Added
--wrap=word(or--wrap-word) option andtoggle-wrap-wordaction for word-level line wrapping in the list section - Changed default binding of
ctrl-/andalt-/fromtoggle-wraptotoggle-wrap-word
fzf --wrap=word
- Added
- Implemented word wrapping in the preview window
- Added
wrap-wordflag for--preview-windowto enable word-level wrapping - Added
toggle-preview-wrap-wordaction
fzf --preview 'bat --style=plain --color=always {}' \ --preview-window wrap-word \ --bind space:toggle-preview-wrap-word - Added
- Added support for underline style variants in
--color:underline-double,underline-curly,underline-dotted,underline-dashedfzf --color 'fg:underline-curly,current-fg:underline-dashed' - Added support for underline styles (
4:N) and underline colors (SGR 58/59)# In the list section printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n' | fzf --ansi # In the preview window fzf --preview "printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n'"
- Added
--preview-wrap-signto set a different wrap indicator for the preview window - Added
alt-guttercolor option (#4602) (@hedgieinsocks) - Added
$FZF_WRAPenvironment variable to child processes (charorwordwhen wrapping is enabled) (#4672) (@bitraid) - fish: Improved command history (CTRL-R) (#4672) (@bitraid)
- Enabled syntax highlighting in the list on fish 4.3.3+
- Added syntax-highlighted preview window that auto-shows for long or multi-line commands
- Added
ALT-ENTERto reformat and insert selected commands - Improved handling of bulk deletion of selected history entries (
SHIFT-DELETE)
- Added fish completion support (#4605) (@lalvarezt)
- zsh: Handle multi-line history selection (#4595) (@LangLangBart)
- Bug fixes
- Fixed
_fzf_compgen_{path,dir}to respectFZF_COMPLETION_{PATH,DIR}_OPTS(#4592) (@shtse8, @LangLangBart) - Fixed
--preview-window follownot working correctly with wrapping (#3243, #4258) - Fixed symlinks to directories being returned as files (#4676) (@skk64)
- Fixed SIGHUP signal handling (#4668) (@LangLangBart)
- Fixed preview process not killed on exit (#4667)
- Fixed coloring of items with zero-width characters (#4620)
- Fixed
track-currentunset after a combined movement action (#4649) - Fixed
--accept-nthbeing ignored in filter mode (#4636) (@charemma) - Fixed display width calculation with
maxWidth(#4596) (@LangLangBart) - Fixed clearing of the rest of the current line on start (#4652)
- Fixed
x-api-keyheader not required for GET requests (#4627) - Fixed key reading not cancelled when
executetriggered via a server request (#4653) - Fixed rebind of readline command
redraw-current-line(#4635) (@jameslazo) - Fixed
fzf-tmuxTERMquoting and addedmktempusage (#4664) (@Goofygiraffe06) - Do not allow very long queries in
FuzzyMatchV2(#4608)
- Fixed
Release notes
Open source →- Implemented word wrapping in the list section
- Added
--wrap=word(or--wrap-word) option andtoggle-wrap-wordaction for word-level line wrapping in the list section - Changed default binding of
ctrl-/andalt-/fromtoggle-wraptotoggle-wrap-word
fzf --wrap=word - Added
- Implemented word wrapping in the preview window
- Added
wrap-wordflag for--preview-windowto enable word-level wrapping - Added
toggle-preview-wrap-wordaction
fzf --preview 'bat --style=plain --color=always {}' \ --preview-window wrap-word \ --bind space:toggle-preview-wrap-word - Added
- Added support for underline style variants in
--color:underline-double,underline-curly,underline-dotted,underline-dashedfzf --color 'fg:underline-curly,current-fg:underline-dashed' - Added support for underline styles (
4:N) and underline colors (SGR 58/59)# In the list section printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n' | fzf --ansi # In the preview window fzf --preview "printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n'" - Added
--preview-wrap-signto set a different wrap indicator for the preview window - Added
alt-guttercolor option (#4602) (@hedgieinsocks) - Added
$FZF_WRAPenvironment variable to child processes (charorwordwhen wrapping is enabled) (#4672) (@bitraid) - fish: Improved command history (CTRL-R) (#4672) (@bitraid)
- Enabled syntax highlighting in the list on fish 4.3.3+
- Added syntax-highlighted preview window that auto-shows for long or multi-line commands
- Added
ALT-ENTERto reformat and insert selected commands - Improved handling of bulk deletion of selected history entries (
SHIFT-DELETE)
- Added fish completion support (#4605) (@lalvarezt)
- zsh: Handle multi-line history selection (#4595) (@LangLangBart)
- Bug fixes
- Fixed
_fzf_compgen_{path,dir}to respectFZF_COMPLETION_{PATH,DIR}_OPTS(#4592) (@shtse8, @LangLangBart) - Fixed
--preview-window follownot working correctly with wrapping (#3243, #4258) - Fixed symlinks to directories being returned as files (#4676) (@skk64)
- Fixed SIGHUP signal handling (#4668) (@LangLangBart)
- Fixed preview process not killed on exit (#4667)
- Fixed coloring of items with zero-width characters (#4620)
- Fixed
track-currentunset after a combined movement action (#4649) - Fixed
--accept-nthbeing ignored in filter mode (#4636) (@charemma) - Fixed display width calculation with
maxWidth(#4596) (@LangLangBart) - Fixed clearing of the rest of the current line on start (#4652)
- Fixed
x-api-keyheader not required for GET requests (#4627) - Fixed key reading not cancelled when
executetriggered via a server request (#4653) - Fixed rebind of readline command
redraw-current-line(#4635) (@jameslazo) - Fixed
fzf-tmuxTERMquoting and addedmktempusage (#4664) (@Goofygiraffe06) - Do not allow very long queries in
FuzzyMatchV2(#4608)
- Fixed
- Implemented word wrapping in the list section
-
v0.67.1-0.20260218152009-4522868fc0d318 Feb 2026 pre-releaseNothing published for this version
-
v0.67.1-0.20260214160646-b56d614ba2f914 Feb 2026 pre-releaseNothing published for this version
-
v0.67.1-0.20260126130030-b389616030a726 Jan 2026 pre-releaseNothing published for this version
-
v0.67.1-0.20251214000225-b3b221854b2314 Dec 2025 pre-releaseNothing published for this version
-
v0.67.1-0.20251123000224-1d5e87f5e48d23 Nov 2025 pre-releaseNothing published for this version
-
v0.67.016 Nov 2025Release notes
Open source →- Added
--freeze-left=Noption 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 # Can be used with --keep-right git grep --line-number --color=always -- '' | fzf --ansi --delimiter : --freeze-left 1 --keep-right - Also added
--freeze-right=Noption to keep the rightmost N columns always visible.# Stronger version of --keep-right that always keeps the right-end visible fd | fzf --freeze-right 1 # Keep the base name always visible fd | fzf --freeze-right 1 --delimiter / # Keep both leftmost and rightmost components visible fd | fzf --freeze-left 1 --freeze-right 1 --delimiter / - Updated
--info=inlineto print the spinner (load indicator). - Bug fixes
- Added
-
v0.66.2-0.20251113140032-3f499f055ee013 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251113014843-535b610a6b0813 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251112130517-91fab3b3c21012 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251110101201-ead534a1be2c10 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251109063607-8a05083503d209 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251109014427-e659b46ff57d09 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251108085025-991c36453c5e08 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251102000216-4d563c6dfaf802 Nov 2025 pre-releaseNothing published for this version
-
v0.66.2-0.20251031121441-5cb695744fb931 Oct 2025 pre-releaseNothing published for this version
-
v0.66.126 Oct 2025Release notes
Open source →- Bug fixes
- Fixed a bug preventing 'ctrl-h' from being bound to an action (#4556)
- Fixed
--no-color/NO_COLORtheme (#4561)
- Bug fixes
-
v0.66.1-0.20251026000216-1a0371e2c70d26 Oct 2025 pre-releaseNothing published for this version
-
v0.66.1-0.20251021104943-aa259fdc191021 Oct 2025 pre-releaseNothing published for this version
-
v0.66.1-0.20251019000219-b852dc8a56de19 Oct 2025 pre-releaseNothing published for this version
-
v0.66.012 Oct 2025Release notes
Open source →Quick summary
This version introduces many new features centered around the new "raw" mode.
Type Class Name Description New Option --rawEnable raw mode by default New Option --gutter CHARSet the gutter column character New Option --gutter-raw CHARSet the gutter column character in raw mode Enhancement Option --listen SOCKETAdded support for Unix domain sockets New Action toggle-rawToggle raw mode New Action enable-rawEnable raw mode New Action disable-rawDisable raw mode New Action up-matchMove up to the matching item New Action down-matchMove down to the matching item New Action bestMove to the matching item with the best score New Color nomatchColor for non-matching items in raw mode New Env Var FZF_RAWMatching status in raw mode (0, 1, or undefined) New Env Var FZF_DIRECTIONupordowndepending on the layoutNew Env Var FZF_SOCKPath to the Unix domain socket fzf is listening on Enhancement Key CTRL-Ndown->down-matchEnhancement Key CTRL-Pup->up-matchEnhancement Shell CTRL-RbindingToggle raw mode with ALT-REnhancement Shell CTRL-RbindingOpt-out with an empty FZF_CTRL_R_COMMAND1. Introducing "raw" mode
This version introduces a new "raw" mode (named so because it shows the list "unfiltered"). In raw mode, non-matching items stay in their original positions, but appear dimmed. This allows you to see the surrounding items of a match and better understand the context of it. You can enable raw mode by default with
--raw, but it's often more useful when toggled dynamically with thetoggle-rawaction.tree | fzf --reverse --bind alt-r:toggle-rawWhile non-matching items are displayed in a dimmed color, they are treated just like matching items, so you place the cursor on them and perform any action. If you prefer to navigate only through matching items, use the
down-matchandup-matchactions, which are from now on bound toCTRL-NandCTRL-Prespectively, and also toALT-DOWNandALT-UP.Key Action With --historydowndownupupctrl-jdownctrl-kupctrl-ndown-matchnext-historyctrl-pup-matchprev-historyalt-downdown-matchalt-upup-match[!NOTE]
CTRL-NandCTRL-Pare bound tonext-historyandprev-historywhen--historyoption is enabled, so in that case, you'll need to manually bind them, or useALT-DOWNandALT-UPinstead.[!TIP]
up-matchanddown-matchare equivalent toupanddownwhen not in raw mode, so you can safely bind them toupandarrowkeys if you prefer.fzf --bind up:up-match,down:down-matchCustomizing the behavior
In raw mode, the input list is presented in its original order, unfiltered, and your cursor will not move to the matching item automatically. Here are ways to customize the behavior.
# When the result list is updated, move the cursor to the item with the best score # (assuming sorting is not disabled) fzf --raw --bind result:best # Move to the first matching item in the original list # - $FZF_RAW is set to 0 when raw mode is enabled and the current item is a non-match # - $FZF_DIRECTION is set to either 'up' or 'down' depending on the layout direction fzf --raw --bind 'result:first+transform:[[ $FZF_RAW = 0 ]] && echo $FZF_DIRECTION-match'Customizing the look
Gutter
To make the mode visually distinct, the gutter column is rendered in a dashed line using
▖character. But you can customize it with the--gutter-raw CHARoption.# Use a thinner gutter instead of the default dashed line fzf --bind alt-r:toggle-raw --gutter-raw ▎Color and style of non-matching items
Non-matching items are displayed in a dimmed color by default, but you can change it with the
--color nomatch:...option.fzf --raw --color nomatch:red fzf --raw --color nomatch:red:dim fzf --raw --color nomatch:red:dim:strikethrough fzf --raw --color nomatch:red:dim:strikethrough:italicFor colored input, dimming alone may not be enough, and you may prefer to remove colors entirely. For that case, a new special style attribute
striphas been added.fd --color always | fzf --ansi --raw --color nomatch:dim:strip:strikethroughConditional actions for raw mode
You may want to perform different actions depending on whether the current item is a match or not. For that, fzf now exports
$FZF_RAWenvironment variable.It's:
- Undefined if raw mode is disabled
1if the current item is a match0otherwise
# Do not allow selecting non-matching items fzf --raw --bind 'enter:transform:[[ ${FZF_RAW-1} = 1 ]] && echo accept || echo bell'Leveraging raw mode in shell integration
The
CTRL-Rbinding (command history) now lets you toggle raw mode withALT-R.2. Style changes
The screenshot on the right shows the updated gutter style:
This version includes a few minor updates to fzf's classic visual style:
- The gutter column is now narrower, rendered with the left-half block character (
▌). - Markers no longer use background colors.
- The
--color base16theme (alias:16) has been updated for better compatibility with both dark and light themes.
3.
--listennow supports Unix domain socketsIf an argument to
--listenends with.sock, fzf will listen on a Unix domain socket at the specified path.fzf --listen /tmp/fzf.sock --no-tmux # GET curl --unix-socket /tmp/fzf.sock http # POST curl --unix-socket /tmp/fzf.sock http -d upNote that any existing file at the given path will be removed before creating the socket, so avoid using an important file path.
4. Added options
--gutter CHARThe gutter column can now be customized using
--gutter CHARand styled with--color gutter:.... Examples:# Right-aligned gutter fzf --gutter '▐' # Even thinner gutter fzf --gutter '▎' # Yellow checker pattern fzf --gutter '▚' --color gutter:yellow # Classic style fzf --gutter ' ' --color gutter:reverse--gutter-raw CHARAs noted above, the
--gutter-raw CHARoption was also added for customizing the gutter column in raw mode.5. Added actions
The following actions were introduced to support working with raw mode:
Action Description toggle-rawToggle raw mode enable-rawEnable raw mode disable-rawDisable raw mode up-matchMove up to the matching item; identical to upif raw mode is disableddown-matchMove down to the matching item; identical to downif raw mode is disabledbestMove to the matching item with the best score; identical to firstif raw mode is disabled6. Added environment variables
$FZF_DIRECTION$FZF_DIRECTIONis now exported to child processes, indicating the list direction of the current layout:upfor the default layoutdownforreverseorreverse-list
This simplifies writing transform actions involving layout-dependent actions like
{up,down}-match,{up,down}-selected, andtoggle+{up,down}.fzf --raw --bind 'result:first+transform:[[ $FZF_RAW = 0 ]] && echo $FZF_DIRECTION-match'$FZF_SOCKWhen fzf is listening on a Unix domain socket using
--listen, the path to the socket is exported as$FZF_SOCK, analogous to$FZF_PORTfor TCP sockets.$FZF_RAWAs described above,
$FZF_RAWis now exported to child processes in raw mode, indicating whether the current item is a match (1) or not (0). It is not defined when not in raw mode.$FZF_CTRL_R_COMMANDYou can opt-out
CTRL-Rbinding from the shell integration by settingFZF_CTRL_R_COMMANDto an empty string. Setting it to any other value is not supported and will result in a warning.# Disable the CTRL-R binding from the shell integration FZF_CTRL_R_COMMAND= eval "$(fzf --bash)"7. Added key support for
--bindPull request #3996 added support for many additional keys for
--bindoption, such asctrl-backspace.8. Breaking changes
Hiding the gutter column
In the previous versions, the recommended way to hide the gutter column was to set
--color gutter:-1. That's because the gutter column was just a space character, reversed. But now that it's using a visible character (▌), applying the default color is no longer enough to hide it. Instead, you can set it to a space character.# Hide the gutter column fzf --gutter ' ' # Classic style fzf --gutter ' ' --color gutter:reverse--coloroptionIn the previous versions, some elements had default style attributes applied and you would have to explicitly unset them with
regularattribute if you wanted to reset them. This is no longer needed now, as the default style attributes are applied only when you do not specify any color or style for that element.# No 'dim', just red and italic. fzf --ghost 'Type to search' --color ghost:red:italicCompatibility changes
Starting with this release, fzf is built with Go 1.23. Support for some old OS versions has been dropped.
See https://go.dev/wiki/MinimumRequirements.
-
v0.65.3-0.20251005000216-b51bc6b50e9005 Oct 2025 pre-releaseNothing published for this version
-
v0.65.3-0.20250928145651-9bdacc8df24a28 Sep 2025 pre-releaseNothing published for this version
-
v0.65.3-0.20250928000215-8e936ecfa76828 Sep 2025 pre-releaseNothing published for this version
-
v0.65.3-0.20250921121949-9cad2686e90421 Sep 2025 pre-releaseNothing published for this version