SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Lua Plugin Projects
-
It's documented here (with migration steps):
https://github.com/neovim/nvim-lspconfig#important-%EF%B8%8F
and in a pinned issue.
and nvim-lspconfig :help has a migration guide:
https://github.com/neovim/nvim-lspconfig/blob/16812abf0e8d81...
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Project mention: Agent Client Protocol (ACP): Connect Any AI Agent to Any Editor | dev.to | 2026-06-04
Neovim support comes through community plugins like CodeCompanion.nvim and avante.nvim. The config follows the same pattern: a command path, args, and environment variables. Neovim spawns the agent as a subprocess and pipes JSON-RPC over stdio, same as the other editors.
-
-
-
Comment.nvim
:brain: :muscle: // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more
-
Project mention: Agent-shell: A native Emacs buffer to interact with LLM agents powered by ACP | news.ycombinator.com | 2026-01-29
https://github.com/nickjvandyke/opencode.nvim
I find myself spending much more time in OpenCode than in nvim these days. With mcp-neovim-server, it's super easy to keep vim open & ask OpenCode to show me, to open files, go to lines. This didn't require any nvim tweaking at all, it's just giving the LLM access to my nvim. It is absolutely wild how good glm-4.7 has been at opening friendly splits, at debugging really gnarly wild nvim configuration problems that have plagued me for years. It knows way way way more nvim than I do, and that somehow surprised me.
-
-
rustaceanvim
🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim
- It's not at the top level namespace, it's usually in the `vim.g` or `vim.b` namespace. There's no more namespacing than with a Lua module + function.
- global configuration variables don't have to be tables. They can be a union of `table | fun():table`, which enables laziness. [rustaceanvim does this, for example](https://github.com/mrcjkb/rustaceanvim/blob/12504405821c0587...).
- lazy.nvim's heuristics to auto-detect and invoke `setup` functions and pass "config objects" are a hack that could just as easily have been implemented around global config variables. This is a symptom of the problem, not a solution.
- If you don't need any code to require the plugin, there's also no need to keep the configuration and the code to require it in the same place.
- If a plugin is implemented correctly (by not making lazy loading the responsibility of the user), there's no need to worry about the user setting the global variable before the plugin is loaded.
- Most plugins' `setup` functions are idempotent. If you want to provide the ability to reconfigure your plugin at runtime, you can provide a `reload(opts)` function that sets the global config variable and then reinitialises the plugin. Or, you could add a metatable to the config variable that triggers a reload if the plugin has already been initialised. There's hardly ever a valid reason to force the coupling of configuration and initialisation on your plugin's users.
-
Project mention: Keifu – A TUI for navigating commit graphs with color and clarity | news.ycombinator.com | 2026-01-16
Serves a bit of a different purpose - but for working with git in the terminal I'm a big LazyGit fan - https://github.com/jesseduffield/lazygit
I use it in neovim with https://github.com/kdheepak/lazygit.nvim
-
cellular-automaton.nvim
A useless plugin that might help you cope with stubbornly broken tests or overall lack of sense in life. It lets you execute aesthetically pleasing, cellular automaton animations based on the content of neovim buffer.
-
-
Project mention: Claude-code.nvim: Seamless integration between Claude Code and Neovim | news.ycombinator.com | 2025-09-16
-
yazi.nvim provides deep bidirectional integration. Files hovered in Yazi are highlighted in Neovim, and you can open files as buffers, splits, or tabs directly from Yazi.
-
nvim-ts-context-commentstring
Neovim treesitter plugin for setting the commentstring based on the cursor location in a file.
-
-
-
-
-
-
-
simpleui.koplugin
A highly customizable UI plugin for KOReader that features a home screen, bottom navigation bar, top bar and desktop modules/widgets.
Project mention: SimpleUI – a user-friendly homescreen for KOReader | news.ycombinator.com | 2026-05-21 -
-
Lua Plugin discussion
Lua Plugin related posts
-
Docker Networking Explained: Bridge, Host, Overlay, and DNS
-
Grok Build Agent Dashboard: Run 8 Parallel Coding Agents From One Screen
-
GLM-5.2: Z.ai Ships 1M-Token Coding Model With Zero Benchmarks
-
Exact vs semantic caching for LLMs: when each wins, measured
-
6 Signs Your In-House AI Agents Need an MCP Runtime
-
We thought we caught every scam token. A dev.to post showed us a blind spot.
-
Terraform State Explained: What It Is, How It Works, and Why It Breaks
-
A note from our sponsor - SaaSHub
www.saashub.com | 22 Jun 2026
Index
What are some of the best open-source Plugin projects in Lua? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | nvim-lspconfig | 13,740 |
| 2 | codecompanion.nvim | 6,678 |
| 3 | toggleterm.nvim | 5,527 |
| 4 | neo-tree.nvim | 5,505 |
| 5 | Comment.nvim | 4,648 |
| 6 | opencode.nvim | 3,582 |
| 7 | z.lua | 3,134 |
| 8 | rustaceanvim | 3,024 |
| 9 | lazygit.nvim | 2,307 |
| 10 | cellular-automaton.nvim | 2,092 |
| 11 | leetcode.nvim | 2,091 |
| 12 | claude-code.nvim | 2,076 |
| 13 | yazi.nvim | 1,771 |
| 14 | nvim-ts-context-commentstring | 1,301 |
| 15 | nvim-scrollbar | 1,052 |
| 16 | rocks.nvim | 1,045 |
| 17 | nvim-highlight-colors | 1,034 |
| 18 | no-neck-pain.nvim | 957 |
| 19 | codesnap.nvim | 931 |
| 20 | FTerm.nvim | 808 |
| 21 | simpleui.koplugin | 806 |
| 22 | parrot.nvim | 794 |
| 23 | grapple.nvim | 692 |