explaingit

folke/lazy.nvim

20,948LuaAudience · developerComplexity · 3/5MaintainedLicenseSetup · easy

TLDR

A fast plugin manager for Neovim that loads add-ons only when needed, keeping your editor snappy even with dozens of plugins installed.

Mindmap

mindmap
  root((lazy.nvim))
    What it does
      Installs plugins
      Updates plugins
      Lazy loads on demand
      Manages dependencies
    Key features
      Visual plugin UI
      Auto-install missing
      Lockfile tracking
      Profiling tools
    Performance
      Fast startup time
      Bytecode compilation
      Async operations
      Smart caching
    Tech stack
      Lua language
      Neovim editor
      LuaJIT runtime
      Git integration

Things people build with this

USE CASE 1

Speed up Neovim startup by lazy-loading plugins only when you actually use them.

USE CASE 2

Manage dozens of plugins with automatic dependency ordering and version tracking via lockfile.

USE CASE 3

Profile plugin load times to find and fix slowdowns in your editor configuration.

USE CASE 4

Automatically install missing plugins when you open Neovim with a new config.

Tech stack

LuaNeovimLuaJITGit

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

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
Show me how to set up lazy.nvim to lazy-load my LSP plugin only when I open a Python file.
Prompt 2
How do I use lazy.nvim's profiling tools to find which plugins are slowing down my Neovim startup?
Prompt 3
Write a lazy.nvim config that installs and manages my favorite plugins with correct dependency order.
Prompt 4
How do I pin specific plugin versions in lazy.nvim using the lockfile?
Prompt 5
Help me migrate my existing Neovim plugins from another plugin manager to lazy.nvim.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.