v0.74.4
antgroup/echomimicv0.74.4Sep 12, 2026by junegunn
Upgrading?
AI Summary
This release improves the fzf Vim plugin to be non-blocking and fixes terminal handling issues, escape sequences, and status payloads across various shells.
Key Highlights
- Non-blocking fzf vim plugin for live previews
- Fixed escape sequence parsing and status payload bugs
- Added nushell key bindings for Helix editing modes
- Improved Zellij popup layout support
New Features
- Non-blocking Vim integration (requires new sink/exit callbacks)
- Zellij floating pane support
- Nushell Helix key bindings
- Optimized completion alignment in fish
Full Release Notes
### Demo: Non-blocking fzf vim plugin on tmux floating pane
https://github.com/user-attachments/assets/77f3e303-e230-4669-ae05-08a19fa84ea3
---
- Fixed an escape sequence split across reads being parsed as a fragment, which leaked the rest into the query (#4899)
- e.g. A terminal answering the startup `DECRQM` query late left `?2004;2$y`, CTRL-UP left `5A`, and SGR mouse input left `0;1;1M`
- Fixed `--tiebreak=pathname` not detecting the last path separator when the line contains a non-ASCII character before it (#4902)
- Fixed `progress` in the `--listen` status payload staying at 100 while a new search was running, which made a snapshot with a new query and the previous result set look complete (#4903)
- It is now reset when a search starts and reaches 100 on the final result, so `progress` of 100 means the matches belong to the query reported next to them
- Fixed adaptive height not reserving a line for the divider of an inline header or footer border, so the list came up one line short for each of them (#4904)
- e.g. `seq 10 | fzf --height=~100% --list-border --header-lines=1 --header-lines-border=inline`
- Fixed fzf erasing the line the prompt was on when it exits, which made the last line of the prompt flicker in fish, bash, and nushell (#4913)
- Fixed fzf exiting with status 2 while waiting for a key, when `--listen` is used and 100+ signals interrupt the wait (#4917)
- Vim plugin
- fzf no longer blocks the editor, so live previews keep working while fzf is open
- `fzf#run` returns an empty list when it runs fzf asynchronously. Use `sink`, `sinklist`, or `exit` to get the result
- The popup layout now works under Zellij
- Added `popup` as a synonym of the `tmux` layout key
```vim
let g:fzf_layout = { 'popup': '90%,70%' }
```
- fzf now opens in a tmux or Zellij floating pane by default, so the window it was started from stays visible and can be used while fzf is running
- Requires tmux 3.7+ or Zellij 0.44+
- Set `g:fzf_layout` to pick a different layout
- fish
- Fixed custom CTRL-T command not using the prefixed target directory in some cases (#4498) (@bitraid)
- Optimized description alignment of completion items (#4910) (@bitraid)
- nushell
- Added key bindings for Helix editing modes, on nushell 0.115.0 or above (#4914) (@sim590)
- Fixed CTRL-T inserting the selected paths unquoted
- p4p3r (@P4P3R-HAK) reported the security vulnerability and suggested the fix
Related Repositories
public-apis/public-apis★ 491,149
A collective list of free APIs
NousResearch/hermes-agent★ 255,992
The agent that grows with you
yt-dlp/yt-dlp★ 200,099
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,501
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,704
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.