gitwtfhub

wtf is lazy.nvim?

folke/lazy.nvim — explained in plain English

Analysis updated 2026-06-21

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

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

LuaNeovimLuaJITGit

How it stacks up

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 spin it up?

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.

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.