Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. plenary.nvim

plenary.nvim

MITLua

A comprehensive Lua library for Neovim providing async utilities, job control, file operations, testing, and more.

GitHubGitHub
3.5k stars340 forks0 contributors

What is plenary.nvim?

plenary.nvim is a comprehensive Lua utility library for Neovim, designed to provide plugin developers with a shared set of common functions. It solves the problem of repeatedly writing boilerplate code for tasks like asynchronous operations, file system interactions, process management, and testing.

Target Audience

Neovim plugin developers who need reliable, reusable utilities for building complex plugins without reinventing basic functionality.

Value Proposition

Developers choose plenary.nvim because it offers a cohesive, well-integrated suite of utilities specifically for Neovim's Lua environment, reducing development time and ensuring consistency across plugins.

Overview

plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice.

Use Cases

Best For

  • Writing asynchronous Neovim plugins using coroutines
  • Managing system processes from within Neovim
  • Performing recursive file scans and path manipulations
  • Running isolated tests for Neovim plugins
  • Detecting filetypes programmatically
  • Creating floating windows and popup interfaces

Not Ideal For

  • Standalone Lua projects without Neovim integration
  • Production plugins requiring long-term API stability
  • Minimalist plugins where lightweight dependencies are preferred
  • Developers who only need simple, synchronous file operations

Pros & Cons

Pros

Async Programming Simplified

Coroutine-based utilities eliminate callback hell by transforming nested libuv calls into linear code, as shown in the README's file reading example.

Comprehensive Utility Suite

Bundles modules for jobs, paths, testing, and more, reducing the need to source multiple libraries for common plugin tasks.

Ecosystem Adoption

Used by popular plugins like Telescope and Neogit, proving its reliability and integration within the Neovim community.

Built-in Testing Framework

Offers a busted-style test harness that runs specs in isolated Neovim instances, essential for robust plugin development.

Cons

Unstable Pre-Alpha Status

The README explicitly warns it's 'very much in pre-alpha' with expected API changes, making it risky for production code.

Incomplete Documentation

Documentation is sparse, relying on future generators, which can hinder learning and troubleshooting for new users.

Neovim-Exclusive Dependency

Useless outside Neovim due to reliance on its functions, limiting use to plugin development only.

Heavy Test Environment

The test harness requires spawning separate Neovim instances, which can be resource-intensive and complex to set up correctly.

Frequently Asked Questions

Quick Stats

Stars3,483
Forks340
Contributors0
Open Issues113
Last commit3 months ago
CreatedSince 2020

Tags

#coroutines#async#plugin-development#utility-library#testing#file-operations#neovim#lua#process-management

Built With

l
libuv
N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 6 hours ago

Related Projects

nui.nvimnui.nvim

UI Component Library for Neovim.

Stars2,092
Forks79
Last commit1 year ago
lazydev.nvimlazydev.nvim

Faster LuaLS setup for Neovim

Stars1,553
Forks50
Last commit4 months ago
sqlite.luasqlite.lua

SQLite LuaJIT binding with a very simple api.

Stars575
Forks34
Last commit1 year ago
one-small-step-for-vimkindone-small-step-for-vimkind

Debug adapter for Neovim plugins

Stars545
Forks18
Last commit6 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub