osfeed.dev
Projects/folke / lazy.nvim

lazy.nvim

A plugin manager for Neovim

Get it on GitHub
Unclaimed

Written by @iluxav from the project's code and releases, not by its maintainers. Last updated for v11.17.5 (2025-11-06), so it may lag behind newer releases.

Are you @folke?Claim it, and your coding agent keeps it current with each release
v11.17.5 · 15 things you can do 3 changes to know before upgrading
Follow GitHub

Install, update, lazy-load, and restore Neovim plugins from a saved set of versions.

What you can do with lazy.nvim

Install, update, and remove Neovim plugins through the plugin manager interface.

Present at v11.14.2
Good to know

Requires Neovim with LuaJIT and Git; fetching plugins requires access to their Git hosts.

Load plugins when a Lua module, event, command, filetype, key mapping, or colorscheme needs them.

Present at v11.14.2
Good to know

Loading triggers must match the plugin's needs.

Restore the same plugin revisions across machines using a lockfile.

Present at v11.14.2
Good to know

Keep `lazy-lock.json`; `:Lazy restore` uses its recorded revisions.

Choose plugin revisions by commit, branch, tag, or semantic version range.

Present at v11.14.2
Good to know

Semantic version selection depends on the plugin's release tags.

Use local plugin directories while developing or customizing plugins.

Present at v11.14.2
Good to know

Local plugin directories are managed by the user; configure `dir` or `dev`.

Split plugin settings across files and conditionally include plugins and their dependencies.

Present at v11.14.2
Good to know

Optional specs need a matching non-optional plugin declaration.

Inspect why plugins load and how long they take to load.

Present at v11.14.2
Good to know

Reports plugin loading costs; startup CPU-time statistics are documented for Linux and macOS.

Check for plugin updates and show the pending count in a statusline.

Present at v11.14.2
Good to know

Enable `checker.enabled` for the statusline update count.

Show all 15

Build plugins and their dependencies from rockspec packages.

Present at v11.14.2
Good to know

Rockspec support must be enabled; used for packages without a Lua directory, with complex builds, or with dependencies other than Lua.

Read generated help tags from plugin README headings when vimdocs are absent.

Present at v11.14.2
Good to know

README help generation skips plugins with docs by default.

Synchronize plugins from a headless Neovim session.

Present at v11.14.2
Good to know

Requires a valid plugin configuration and access to needed plugin sources.

Run configuration hooks through virtual plugin entries without installing plugin files.

Since v11.16.2
Good to know

Set `virtual = true` and provide configuration; virtual entries are not added to the runtime path.

Choose the icon shown beside lazy-loading handlers in the debug view.

Since v11.17.1
Good to know

Set `ui.icons.debug`; the default remains a dot followed by a space.

View lazy.nvim notifications with filetype-aware rendering in Snacks notifier.

Since v11.17.1
Good to know

Requires a notifier that handles the notification's `ft` option.

Skip automatic plugin updates when starting a test setup through lazy.minit.

Since v11.17.2
Good to know

Use `--offline` or `LAZY_OFFLINE=1` or `true`; this only skips the update step, so required plugins must already be installed.

Before you upgrade lazy.nvim

Newest first
v11.17.5

The default `rocks.server` changes from `https://nvim-neorocks.github.io/rocks-binaries/` to `https://lumen-oss.github.io/rocks-binaries/`. Explicit overrides remain unchanged.

Behavior changedInferredAffects: Users installing rock packages with the default binary server.
Read the evidence
v11.16.2

Make sure each configured local `dir` or resolved `dev` directory exists, or correct the path; missing local plugins are no longer assumed installed and now produce an explicit error.

Action requiredInferredAffects: Configurations pointing to nonexistent local plugin directories.
Read the evidence
lazy.nvim release history 5
v11.17.5
with v11.17.3, v11.17.4

Resolve rockspec dependency names when version constraints directly follow the name.

Details

Rockspec dependency parsing separates names from comparison operators and leading whitespace. `rocks.server` defaults to the lumen-oss endpoint; spec modules returning multiple values receive an explicit error.

Also: The default rock binary server moves to lumen-oss, and invalid spec modules receive a clearer error.

Install v11.17.5, covering v11.17.3–v11.17.5. Neovim >= 0.8.0 with LuaJIT and Git >= 2.19.0. LuaRocks support must be enabled for rockspec packages.

Now works / inferred: Build plugins and their dependencies from rockspec…Behavior changed / inferredNow works: Split plugin settings across files and conditionall…

Seeded by @iluxav with Codex

Read the evidence
v11.17.2

Load rockspec dependencies even when their plugin was loaded before its package was recognized.

Details

Late rockspec discovery now adds the plugin's Lua search paths. Local-plugin detection checks the directory boundary, and `lazy.minit` accepts `--offline` or `LAZY_OFFLINE` to skip its update step.

Also: Local directories sharing the install-root prefix are recognized correctly; test setups can skip the automatic update.

Install v11.17.2. Neovim >= 0.8.0 with LuaJIT and Git >= 2.19.0. LuaRocks support must be enabled for rockspec packages.

Now works / inferred: Build plugins and their dependencies from rockspec…Now works / inferred: Use local plugin directories while developing or cu…Added / inferred: Skip automatic plugin updates when starting a test…

Seeded by @iluxav with Codex

Read the evidence
v11.17.1
with v11.17.0

Disable top-level plugins without retaining their nested disabling rules.

Details

Top-level disabled specs are processed first and remaining specs are rebuilt after each removal. `ui.icons.debug` becomes configurable and manager diagnostics stop using virtual lines.

Also: Customize the debug icon, render notification filetypes, and bootstrap with older Neovim APIs.

Install v11.17.1, including v11.17.0. Neovim >= 0.8.0 with LuaJIT and Git >= 2.19.0.

Now works / inferred: Split plugin settings across files and conditionall…Now works / inferred: Install, update, and remove Neovim plugins through…Added / inferred: Choose the icon shown beside lazy-loading handlers…Added / inferred: View lazy.nvim notifications with filetype-aware re…Behavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v11.16.2
with v11.15.0, v11.16.0, v11.16.1

Run configuration through virtual plugin entries without installing a plugin directory.

Details

`virtual = true` skips installation and runtime-path loading while retaining configuration hooks. Local directories are checked, and optional disabled specs are deleted from the specification list.

Also: Missing local directories are reported, the Home key hint is corrected, and optional disabled specs are handled separately.

Install v11.16.2, covering v11.15.0–v11.16.2. Neovim >= 0.8.0 with LuaJIT and Git >= 2.19.0.

Added / inferred: Run configuration hooks through virtual plugin entr…Action required / inferred: Use local plugin directories while developing or cu…Now works: Install, update, and remove Neovim plugins through…Now works / inferred: Split plugin settings across files and conditionall…

Seeded by @iluxav with Codex

Read the evidence
v11.14.2
Starting point

Manage and restore your Neovim plugins from a saved set of versions.

Details

This baseline records capabilities available before the latest ten releases: plugin management with `:Lazy`, on-demand loading, and version restoration with `lazy-lock.json`.

Also: Load plugins on demand, develop against local copies, inspect startup costs, and install rockspec dependencies.

Install v11.14.2. Neovim >= 0.8.0 with LuaJIT and Git >= 2.19.0. LuaRocks is needed for rockspec packages.

Added: Install, update, and remove Neovim plugins through…Added: Load plugins when a Lua module, event, command, fil…Added: Restore the same plugin revisions across machines u…Added: Choose plugin revisions by commit, branch, tag, or…Added: Use local plugin directories while developing or cu…Added: Split plugin settings across files and conditionall…Added: Inspect why plugins load and how long they take to…Added: Check for plugin updates and show the pending count…Added: Build plugins and their dependencies from rockspec…Added: Read generated help tags from plugin README heading…Added: Synchronize plugins from a headless Neovim session.

Seeded by @iluxav with Codex

Read the evidence