Mike Wilkerson writes here

binwheels-neovim: Easy cross-platform Neovim installation with uv or pipx

Today I am releasing binwheels-neovim, an unofficial package that allows you to quickly install Neovim on Windows, Linux, and macOS without admin privileges and without needing to compile anything. View the source at https://github.com/wilkystyle/binwheels-neovim.

Usage

# uv
uv tool install binwheels-neovim

# pipx
pipx install binwheels-neovim

After a successful installation, nvim will be available on your PATH. As of this blog post, I have only packaged Neovim 0.11.4. I version the Python package according to the version of Neovim it contains, so uv tool install binwheels-neovim==0.11.4 will always install Neovim 0.11.4.

About the packaging process

The general process is to download the official Neovim release for a given operating system/architecture and package it as data files in a Python wheel. When installing a Python package, all files are unpacked to the site-packages/ directory in your Python virtual environment.

The other key piece of this package is a main.py file that contains a function to launch the nvim executable. This is because Python packaging tooling doesn't have a mechanism for adding arbitrary files to your path, but it does have the concept of executable scripts: A Python function from your package can be installed in the virtual environment's bin/ path as an executable command. This is the magic that makes it work with tools like uv tool install and pipx install; those commands are designed to take any executable scripts from a package and install them into a location on your user PATH.

For full details check out the repo.

NOTE: For Windows and macOS builds, I simply download the pre-built Neovim releases from the official GitHub page and add them to the wheel. For Linux, I decided to compile from source. This is because I was working in a crappy Amazon Linux 2 environment where the GLIBC was too old (2.17) for the official prebuilt Neovim releases, and I wanted to make sure this package would also work in that environment.

Let me know what you think!

I built this project for me, but I would love to know if it helps you. I've been using it myself a ton already. Feel free to get in touch at wilkystyle@gmail.com.

#software