v0.73.0

CaviraOSS/LongMemoryv0.73.0May 23, 2026by junegunn

AI Summary

Major feature release introducing Nushell integration, idle time tracking, and advanced preview window positioning.

Key Highlights

  • Added Nushell integration via `fzf --nushell` and the installer.
  • Introduced `$FZF_IDLE_TIME` environment variables and timer-driven `every(N)` events for idle-based behavior.
  • Added new `--preview-window=next` position to place the preview adjacent to the input section.
  • Added `$FZF_CURRENT_ITEM` export for shells where quoting `{}` is awkward.

New Features

  • Nushell integration support
  • Idle time tracking with auto-accept/auto-quit capabilities
  • Preview window repositioning options
  • Timer-driven event bindings

Full Release Notes

_Release highlights: https://junegunn.github.io/fzf/releases/0.73.0/_

- Nushell integration via `fzf --nushell` and the installer (#4630) (@sim590)
- New `--preview-window=next` position 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`, where `N` is 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)
      ```sh
      # 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'
      ```
- Added `$FZF_CURRENT_ITEM` for 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-window` no longer resets `wrap` / `wrap-word` state set via `toggle-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 `FuzzyMatchV2` on 32-bit builds (Michal Majchrowicz, Marcin Wyczechowski, AFINE Team)
    - Fixed `bg-transform` `reload` / `exclude` payloads being dropped
    - Fixed rendering glitch with preview window on the left combined with footer