The Fastest Nvim Tree File Explorer for Neovim
Nvim Tree is a high-performance, Lua-native file explorer that renders your project directory as an interactive sidebar tree. It provides git status integration, live filtering, file operations, and deep customization — all without the overhead of legacy Vimscript plugins.
A Complete File Explorer Built for Neovim
Nvim Tree replaces the need for external terminal file managers or legacy Vim plugins by delivering a fast, integrated tree view directly inside your Neovim editor. Written entirely in Lua, it leverages Neovim's async APIs and LuaJIT to scan, render, and update your project filesystem with minimal latency.
Unlike general-purpose file managers, Nvim Tree is purpose-built for the editing workflow. It understands git repositories, respects your project structure, and provides keybindings that feel native to Neovim's modal editing paradigm. The tree view opens as a sidebar buffer that coexists with your editing windows, letting you navigate files without leaving your keyboard.
What Nvim Tree Gives You
- Interactive sidebar file tree with real-time updates
- Git status indicators on every file and folder
- Create, rename, delete, move, and copy files from the tree
- Live filtering with instant search as you type
- Full keybinding customization with Lua API
- Nerd Font icon support via nvim-web-devicons
Everything You Need,
Nothing You Don't
Nvim Tree packs powerful features into a lean, fast package. No bloat, no unnecessary dependencies — just the tools that matter for navigating code.
Three Steps to a Better Workflow
Benefits Over Traditional File Explorers
Nvim Tree isn't just another file tree — it's engineered specifically for the Neovim ecosystem with advantages that compound over time.
Built for Real-World Workflows
Full-Stack Web Development
Navigate between frontend components, backend routes, and config files across monorepo structures with hundreds of directories.
Systems & Embedded Programming
Browse C/C++ project trees with nested headers, source directories, and build system files. Git indicators show which files need attention.
Dotfile & Config Management
Manage Neovim, tmux, zsh, and other dotfiles from a single tree view. Quickly jump between plugin configs and shared modules.
Get Started in Minutes
Install with lazy.nvim (Recommended)
Add to your plugin spec. Set lazy=false so it loads at startup, and add nvim-web-devicons as a dependency for file icons.
Or Install with packer.nvim
If you're still on packer, use the use function with the same setup. Note: packer is in maintenance mode — consider migrating to lazy.nvim.
Or Download ZIP for Manual Install
Download the source archive and extract it into your Neovim packages directory under pack/*/start/ for automatic loading.
Download Nvim Tree Source
Get the complete source code as a ZIP archive from the official GitHub repository.
After downloading, place the extracted folder in your Neovim runtime path and add the setup call to your init.lua.
**Read the Full Guide**
Master Nvim Tree Step by Step
Our comprehensive guide covers everything from basic setup to advanced Lua API usage. Each topic includes working configuration examples you can copy directly into your init.lua.
- Installation with lazy.nvim, packer.nvim, and manual methods
- Complete setup configuration reference
- Keybinding customization and custom actions
- Git integration deep dive and status indicators
- Filter system — dotfiles, custom functions, live filtering
- Renderer customization — icons, highlights, grouping
- Lua API reference for programmatic control
- Troubleshooting common issues and error fixes
Why Read the Guide?
Most users only scratch the surface of Nvim Tree's capabilities. The guide walks you through every configuration option, explains the reasoning behind defaults, and shows you how to build a file explorer setup that matches your exact workflow. Whether you're a Neovim beginner or an experienced Lua developer, there's something valuable in every section.
What You Need Before Installing
How Nvim Tree Fits Your Editing Flow
Open the Tree
Toggle Nvim Tree with your configured keybinding or the :NvimTreeToggle command. The tree opens as a sidebar buffer without disrupting your current layout.
Browse and Filter
Navigate with j/k keys, expand directories with Enter or l, and press / to activate live filtering. Git status colors help you spot modified and new files instantly.
Open and Edit
Press Enter on a file to open it in the adjacent window. The tree can auto-close, stay open, or focus the new file — configure this behavior in actions.open_file.
Manage Files
Create new files with a, rename with r, delete with d — all from the tree. Changes reflect immediately without manual refresh. Use the trash option for safe deletion.
Avoid These Setup Pitfalls
Installing the plugin but forgetting to add require('nvim-tree').setup{} in init.lua. The plugin loads but uses all defaults and may not behave as expected.
Icons appear as broken squares or question marks because the terminal doesn't have a font with the required glyph coverage for nvim-web-devicons.
Having NERDTree, telescope-file-browser, and Nvim Tree all active simultaneously causes keybinding conflicts and unpredictable buffer behavior.
Placing the plugin in the wrong runtimepath directory during manual install means Neovim can't find or load it on startup.
Quick Fixes for Common Issues
Cause: Plugin not in the correct runtimepath, setup call missing, or plugin not loaded by your plugin manager.
Cause: nvim-web-devicons not installed, not loaded before Nvim Tree, or no Nerd Font configured in your terminal.
Cause: Scanning thousands of files with git status checks and no filters. node_modules, .git, and build directories add massive overhead.
Cause: Another plugin or your global keymaps use the same keys. Nvim Tree keybindings are buffer-local but can still conflict within the tree buffer.
Get the Most Out of Nvim Tree
Power User Techniques
Frequently Asked Questions
Ready to Transform Your Neovim Workflow?
Download Nvim Tree now and experience the fastest file explorer built for Neovim. Free, open source, and actively maintained.