CLI tool
mikavilpas/yazi.nvim avatar
mikavilpas/yazi.nvim

yazi.nvim: A Floating File Manager That Stays in Sync With Your Buffers

A Neovim Plugin for the yazi terminal file manager. This plugin allows you to open yazi in a floating window in Neovim.

1,863 stars58 forksLuaMIT

At a glance

What is it?
yazi.nvim wraps the yazi terminal file manager in a Neovim floating window, syncing file operations with open buffers and LSP servers. It is a solid choice for Neovim users who want a fast, keyboard-driven file manager without leaving the editor.
Who is it for?
Adopt yazi.nvim if you use Neovim and yazi and want a file manager that respects your window layout and keeps buffers and LSP in sync. Skip it if you prefer a minimal setup or rely on netrw for simple browsing, and note the Windows 11 minimum and the need for recent yazi versions.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Lua, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Problem Does yazi.nvim Solve?

Neovim has no built-in file manager with a modern terminal UI. Netrw is functional but clunky, and most users reach for a plugin like telescope or nvim-tree. yazi.nvim targets a specific gap: it brings the yazi terminal file manager into a floating window inside Neovim, so you can navigate files without leaving the editor. The intended user is someone who already knows yazi or wants a fast, keyboard-driven file manager that feels like a terminal app. The plugin also solves a real pain point: when you rename, move, or delete files in yazi, open buffers in Neovim are kept in sync. That is not a trivial feature, and it is the core value proposition beyond the floating window itself.

How It Works: Tabs, Hover Highlighting, and Buffer Sync

The plugin opens yazi in a floating window. All visible Neovim splits are opened as yazi tabs, so you can jump between them quickly. Files hovered in yazi are highlighted in Neovim, giving you a visual anchor for where you are relative to your open splits. The buffer sync mechanism is the most interesting part. When you rename, move, or delete files inside yazi, the plugin updates open buffers and also notifies running LSP servers. The README points to a technical explanation in documentation/for-developers/lsp-renaming.md, but the key idea is that file operations are not just reflected in the file system; they are propagated to Neovim's internal state and to language servers that might cache file paths. This is a deep integration that most file manager plugins do not attempt. The plugin also bundles a version of snacks.bufdelete to close buffers and preserve window layout when files are deleted. That means deleting a file in yazi will close its buffer in Neovim without collapsing your window arrangement.

Getting It Running: Installation and Configuration

Installation is straightforward with lazy.nvim, which is the preferred method. The README gives a lazy.nvim spec that includes the plugin, a version pin of "*", an event trigger of "VeryLazy", and a dependency on plenary.nvim. You also define keymaps in the keys section. The example maps <leader>- to <cmd>Yazi<cr> to open at the current file, and <leader>cw to open in the current working directory. Without a package manager, you can call require("yazi").yazi() and optionally set open_for_directories = true in a setup call. The README recommends setting vim.g.loaded_netrwPlugin = 1 if you use that option. The plugin requires Neovim stable or nightly, a recent yazi version, and on Windows, Windows 11 is the minimum. You can run :checkhealth yazi to verify compatibility. The setup is minimal, and the plugin lazy loads dependencies automatically when using lazy.nvim, which keeps startup time down.

Keybindings and Plugin Integrations

Default keybindings are sensible for a file manager. <c-v>, <c-x>, <c-t>, and <c-q> open selected files in vertical splits, horizontal splits, new tabs, or the quickfix list. <f1> shows a help menu. There are also integrations with telescope.nvim, fzf-lua, and snacks.picker for searching in the current yazi directory. If you have multiple files selected, the search is limited to those files. Similarly, <c-g> integrates with grug-far.nvim for search and replace. Another integration copies relative paths to the clipboard using realpath on Linux and Windows, or grealpath on macOS. These integrations are optional; you need to install the other plugins separately. The plugin also supports sending custom commands to yazi, which is documented in emitting-commands-to-yazi.md. This makes the plugin extensible for users who want to automate yazi actions from Neovim.

Limitations and Cases Where It Is the Wrong Tool

The most obvious limitation is the dependency on yazi itself. If you do not already use yazi, this plugin adds a second tool to learn. The README notes that opting into new features might require a recent yazi version, possibly built from source. That is a maintenance burden. Another limitation is Windows support: only Windows 11 is supported, so Windows 10 users are out. The buffer sync and LSP renaming features are complex, and while the README claims they work, there is no guarantee they work flawlessly in every edge case. The plugin also replaces netrw only if you opt in with open_for_directories = true, and that requires careful setup to avoid conflicts. If you prefer a simpler file manager like nvim-tree, or if you rarely rename or delete files from a file manager, this plugin may be overkill. The floating window approach also means you are visually detached from the file system in a way that a full-screen file manager is not.

Alternatives: nvim-tree and telescope file_browser

The main alternative is nvim-tree.lua, a file explorer that renders as a sidebar tree in Neovim. It does not use a floating window and does not integrate with yazi. Its approach is to show the file system as a tree, which some users find more intuitive than a terminal file manager. nvim-tree also handles buffer deletion and renaming, but it does not sync with LSP servers in the same way. Another alternative is telescope.nvim's built-in file_browser, which uses fuzzy finding over file paths. That is a different paradigm: you search for files rather than browse directories. yazi.nvim is closer to a traditional file manager, while telescope is a picker. The choice depends on whether you prefer a visual tree, a fuzzy search, or a terminal-style file manager with tabs. yazi.nvim's LSP sync is a differentiator that neither nvim-tree nor telescope offers out of the box.

Maintenance and License Implications

The repository is actively maintained, with releases as recent as v14.0.0 in August 2026. The project uses semantic versioning, and the README mentions a lazy.lua file that lists dependencies, suggesting a clean structure. The license is MIT, which means you can use, modify, and distribute the plugin freely, including in commercial projects, as long as you preserve the copyright notice. There is no indication of a contributor license agreement or any restrictions beyond the MIT terms. The maintenance cost for you is mostly keeping yazi up to date, since the plugin relies on yazi's features. The plugin itself has a typecheck workflow, which suggests a focus on code quality. You should check the documentation for developers if you plan to extend the plugin, but for most users, the maintenance is limited to updating the plugin via your package manager.

Editorial conclusion

Adopt yazi.nvim if you use Neovim and yazi and want a file manager that respects your window layout and keeps buffers and LSP in sync. Skip it if you prefer a minimal setup or rely on netrw for simple browsing, and note the Windows 11 minimum and the need for recent yazi versions. Before adopting, verify your Neovim version, install yazi from source if you need bleeding-edge features, and test the buffer deletion behavior with your own workflow.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Community notes

Community notes