whatisgithub

What is lazy.nvim?

folke/lazy.nvim — explained in plain English

Analysis updated 2026-06-21

20,873LuaAudience · developerComplexity · 2/5Setup · easy

In one sentence

lazy.nvim is a fast Neovim plugin manager that only loads plugins when they are actually needed, keeping startup time short even with many plugins installed. It includes a visual UI, automatic installs, and version locking.

Mindmap

mindmap
  root((lazy.nvim))
    What it does
      Plugin installation
      Lazy loading
      Version locking
      Profiling tools
    Tech Stack
      Lua
      Neovim LuaJIT
      Git partial clones
    Use Cases
      Fast Neovim startup
      Plugin management
      Reproducible config
    Audience
      Neovim users
      Vim power users
      Developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Speed up Neovim startup by lazy-loading plugins so they only activate when a specific file type or command is used.

USE CASE 2

Lock your plugin versions with lazy-lock.json so your editor configuration stays reproducible across machines.

USE CASE 3

Automatically install missing Neovim plugins on first launch without any manual steps.

USE CASE 4

Profile your Neovim setup to find which plugins are slowing it down using built-in profiling tools.

What is it built with?

LuaNeovimLuaJITGit

How does it compare?

folke/lazy.nvimnvim-telescope/telescope.nvimlunarvim/lunarvim
Stars20,87319,41819,268
LanguageLuaLuaLua
Setup difficultyeasymoderatemoderate
Complexity2/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Requires Neovim 0.8.0 or newer built with LuaJIT and Git 2.19.0 or newer for partial clone support.

The explanation does not specify a license.

So what is it?

lazy.nvim is a modern plugin manager for Neovim, the terminal-based text editor. It handles installing, updating, and loading the add-ons (called plugins) that extend Neovim's functionality. Written in Lua, it is designed to be fast and efficient. The key feature that gives it its name is "lazy loading", plugins are only loaded when actually needed, such as when you open a specific type of file, run a certain command, or press a mapped key combination. This keeps Neovim's startup time fast even with many plugins installed. It also uses automatic caching and Lua bytecode compilation to further speed things up. Other notable features include a visual UI for managing plugins, automatic installation of missing plugins at startup, a lockfile called lazy-lock.json to record exactly which version of each plugin is installed, async execution so operations don't block your editor, correct dependency ordering when multiple plugins depend on each other, and profiling tools to help diagnose slowdowns. It requires Neovim 0.8.0 or newer built with LuaJIT, and Git 2.19.0 or newer for partial clone support.

Copy-paste prompts

Prompt 1
Write a lazy.nvim config that sets up LSP support for Python and TypeScript with lazy loading only when those file types are opened.
Prompt 2
I want to migrate my Neovim setup from packer.nvim to lazy.nvim. Show me how to convert my existing plugin list and preserve version locking.
Prompt 3
Create a lazy.nvim configuration that loads telescope.nvim only when I press leader-ff and loads treesitter only for specific file types.
Prompt 4
Help me debug why my Neovim startup is slow using lazy.nvim built-in profiling tools and interpret the output.
Prompt 5
Show me how to pin all my Neovim plugins to exact versions using lazy-lock.json so my config does not break when plugins update.

Frequently asked questions

What is lazy.nvim?

lazy.nvim is a fast Neovim plugin manager that only loads plugins when they are actually needed, keeping startup time short even with many plugins installed. It includes a visual UI, automatic installs, and version locking.

What language is lazy.nvim written in?

Mainly Lua. The stack also includes Lua, Neovim, LuaJIT.

What license does lazy.nvim use?

The explanation does not specify a license.

How hard is lazy.nvim to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is lazy.nvim for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.