$npx skillfedfor your agent

pynvim

Python client for Neovim

Worth itPyPI TerminalsReleased Sep 2025424.1K downloads / moApachePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — pynvim-0.6.0-py3-none-any.whl
v0.6.0 · released 2025-09-07 · Python >=3.7 · 3 runtime deps: msgpack, greenlet, typing-extensions

Yes. Pynvim is actively maintained, has no known vulnerabilities, and low install friction. Install it if you need to write Python plugins for Neovim, automate the editor from Python, or embed Neovim in a Python application. The permissive Apache 2.0 license poses no restrictions. The main gotcha is understanding the socket/child-process connection model and the dictionary copy behavior documented in the known issues.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires a running Neovim instance accessible via socket or child process; start Neovim with `nvim --listen /tmp/nvim.sock` before connecting.
  • Low install friction with a pure-Python wheel distribution.
  • The package is actively maintained with recent commits and no known vulnerabilities.

License · maintenance · safety

Apache (permissive) — Licensed under Apache License 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.

last release 2025-09-07 (341 days) · last repo commit 2026-04-10 · 1,703 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 424,135 downloads/mo, #6,766 on PyPI

Verify before relying

import pynvim
nvim = pynvim.attach('socket', path='/tmp/nvim.sock')
buffer = nvim.current.buffer
buffer[0] = 'replace first line'
  • Whether the package's async/thread-safety features are production-ready for concurrent plugin workloads.
  • Performance characteristics when handling large buffers or frequent API calls across the msgpack-rpc boundary.
Same gist for agents: .md · .json

What it is and what it does

Pynvim bridges Python and Neovim by providing a client library that connects to Neovim instances via msgpack-rpc. It enables two main use patterns: writing remote plugins that handle Neovim function calls asynchronously without blocking the editor, and scripting Neovim from Python code (either embedded or via a socket connection). The library exposes Neovim's API through Python objects representing buffers, windows, and the editor state, and adds extensions like access to vimL functions via `nvim.funcs`, Lua integration, and thread-safe async requests.

The package depends on msgpack for serialization, greenlet for async support, and typing-extensions for type hints. It supports both connecting to running Neovim instances and embedding Neovim as a subprocess within a Python application. A known limitation is that Vimscript dictionaries are returned as copies rather than references, requiring the entire dictionary to be reassigned after modification.

Use it for

  • Write asynchronous Python remote plugins for Neovim that respond to editor events without blocking.
  • Automate Neovim from Python scripts or applications by connecting to a running editor instance.
  • Embed Neovim as a headless subprocess within a Python application for programmatic text editing.
  • Access and manipulate Neovim buffers, windows, and settings from Python code via the msgpack-rpc API.
  • Call vimL and Lua functions from Python plugins using the extended API.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Pynvim is actively maintained, has no known vulnerabilities, and low install friction. Install it if you need to write Python plugins for Neovim, automate the editor from Python, or embed Neovim in a Python application. The permissive Apache 2.0 license poses no restrictions. The main gotcha is understanding the socket/child-process connection model and the dictionary copy behavior documented in the known issues.

Install

pynvim on PyPI

Before you install

Low install friction with a pure-Python wheel distribution. The package is actively maintained with recent commits and no known vulnerabilities. Requires Python 3.7 or later, though the description notes 3.10+ support.

Requires a running Neovim instance accessible via socket or child process; start Neovim with `nvim --listen /tmp/nvim.sock` before connecting.

License in practice

Licensed under Apache License 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.

Quickstart

import pynvim
nvim = pynvim.attach('socket', path='/tmp/nvim.sock')
buffer = nvim.current.buffer
buffer[0] = 'replace first line'

Verify before relying

  • Whether the package's async/thread-safety features are production-ready for concurrent plugin workloads.
  • Performance characteristics when handling large buffers or frequent API calls across the msgpack-rpc boundary.

Package facts

LicenseApache permissive
Python supportSupports the current Python release >=3.7
Install frictionLow. Pure-Python wheel
Runtime dependencies
3 packages
msgpackgreenlettyping-extensions
MaintenanceActively maintained 341 days since the last release
Last repo commit
First released
Downloads424,135 / month, #6,766 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14

Evidence: pynvim-0.6.0-py3-none-any.whl

Tags

Capabilities
neovim python clientpython plugins for nvimneovim scripting librarymsgpack-rpc neovimnvim remote plugins pythonpython neovim automationneovim python api
Topics
neovim-integrationeditor-scripting

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “python plugins for nvim”

  • pynvimPynvim is a Python client library that enables Python plugins for…
  • neovimA Python client library that enables Python plugins in Neovim and…
  • mdit-py-pluginsExtends markdown-it-py with a collection of core plugins for…

Give your agent the search over MCP, or paste the wish link into any chat.

More Terminals packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
rich Worth it
PyPI · Terminals · released Apr 2026

Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.

MITpure Python · 3.9.0+
613.9Mdownloads / mo
colorama Worth it
PyPI · Terminals · released Oct 2022

Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.

Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…

BSD-3-Clausepure Python
431.0Mdownloads / mo
wcwidth Worth it
PyPI · Libraries · released Jun 2026

Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.

Install it if your application formats text for terminals and handles non-ASCII characters.

MITpure Python · 3.8+
306.5Mdownloads / mo
ptyprocess With conditions
PyPI · Terminals · released Dec 2020

Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.

However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…

ISCpure Pythonaging
205.2Mdownloads / mo
pexpect With conditions
PyPI · Software Development · released Nov 2023

Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.

ISCpure Pythonaging
200.8Mdownloads / mo

See also neovim · tclint · virtualenv-clone · yacman · ruff-lsp · pyvim · release-tag · Paver · ydb · pipx