nvim-tree / nvim-tree.lua
git clone https://github.com/nvim-tree/nvim-tree.lua.git
nvim-tree-v1.18.0 · 3mo ago
🔥 on GitHub Trending today
A file explorer tree for neovim written in lua
+2
stars, 24h · #505
—
stars, 7 days
—
stars, 30 days
8.7k
★ total
642
forks · 109 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageLua
License—
Created2020-02-04 (6y ago)
Last pushtoday
Watchers25
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #6 daily in lua · +2 ★
GitHub topics
Links
README excerpt
# A File Explorer For Neovim Written In Lua
Automatic updates
File type icons
Git integration
Diagnostics integration: LSP and COC
(Live) filtering
Rename, delete, create
Cut, copy, paste locally and between instances
Highly customisable
Take a look at the wiki for Showcases, Tips, Recipes and more.
Questions and general support: Discussions
- Requirements
- Installing
- Quick Start
* Setup
* Help
* Custom Mappings
* Highlight Groups
- Commands
- Roadmap
- API
- Contributing
- Screenshots
- Team
# Requirements
Nvim >= 0.10. At least `n - 0.1` stable Nvim compatibility is guaranteed. You may use a `compat-nvim-0.X` tag for earlier Nvim versions, however they will receive no updates or support.
nvim-web-devicons is optional and used to display file icons. It requires a patched font. Your terminal emulator must be configured to use that font, usually "Hack Nerd Font"
# Installing
Please install via your preferred package manager. See Installation for some specific package manager instructions.
Major or minor versions may be specified via tags: `v ` e.g. `v1` or `v . ` e.g. `v1.23`
# Quick Start
Install the plugins via your package manager:
`"nvim-tree/nvim-tree.lua"`
`"nvim-tree/nvim-web-devicons"`
Disabling netrw is strongly advised, see :help nvim-tree-netrw
## Setup
Setup the plugin in your `init.lua`.
See :help nvim-tree-setup and :help nvim-tree-config-default
[code]
## Help
Open the tree: `:NvimTreeOpen`
Show the mappings: `g?`
## Custom Mappings
:help nvim-tree-mappings-default are applied by default however you may customise via :help nvim_tree.config `{on_attach}` e.g.
[code]
## Highlight Groups
See :help nvim-tree-highlight-groups
Run `:NvimTreeHiTest` to show all the highlights that nvim-tree uses.
They can be customised before or after setup is called and will be immediately
applied at runtime. e.g.
[code]
# Commands
See :help nvim-tree-commands
Some commands may be executed with a bang `!` or take a `path` string argument.
All commands execute public API.
Some basic commands:
`:NvimTreeFocus` :help nvim_tree.api.tree.open()
[code]
`:NvimTreeToggle` :help nvim_tree.api.tree.toggle()
[code]
`:NvimTreeFindFile` :help nvim_tree.api.tree.find_file()
[code]
`:NvimTreeCollapse` :help nvim_tree.api.tree.collapse_all()
[code]
# Roadmap
nvim-tree is stable and new major features will not be added. The focus is on existing user experience.
Users are encouraged to add their own custom features via the public API.
Development is focused on:
- Bug fixes
- Performance
- Quality of Life improvements
- API / Events
- Enhancements to existing features
- Multi-instance capabilities
# API
nvim-tree exposes a public API. This is non breaking, with additions made as necessary. See :help nvim-tree-api
See wiki Recipes and Tips for ideas and inspiration.
Please raise a feature request if the API is insufficient for your needs. Contributions are always welcome, see below.
You may also subscribe to events that nvim-tree will dispatch