
nvim-server
is a web frontend for Neovim designed around
allowing the user to run Neovim anywhere you have a browser.
Note this project was vibe coded over a two day period, and I'm at the point in which I believe I have a minimal viable product. Next steps include addressing roadmap items and trying to refactor / understand parts of the code I had the AI generate. Right now I'd consider nvim-server an MVP based on my personal requirements.
- One server can connect to multiple clients.
- Full clipboard integration using a custom clipboard provider.
- GPU acceleration.
First spawn the server:
$ ./nvim-server --address 0.0.0.0:9998
Then you can go to http://localhost:9998
and enter the location of a remote
neovim instance. You can optionally pass in the server address as a query
string (e.g. http://localhost:9998/?server=localhost:9000
) to automatically
connect to your Neovim instance.
Optionally, you can create a systemd unit to automate this entire process:
[Unit]
Description=nvim-server
[Service]
ExecStart=nvim-server --address 0.0.0.0:9998
Restart=always
[Install]
WantedBy=default.target
Note that if your nvim-server and nvim are on different LANs you may want to use a secure tunnel to encrypt your neovim RPC traffic.
Clipboard Support requires the user to have nvim-server running behind HTTPS as browsers block clipboard sharing for HTTP connections.
Before starting this project I wrote a couple of blog posts about Neovim being a terminal emulator / multiplexer replacement. I may write future posts in the future elaborating on why Neovim in the browser was my eventual conclusion for creating an optimal development workflow.
- Better font rendering support.
- Code Server - VSCode in the Browser
- Glowing Bear - WeeChat in the Browser
- Neovide - An amazing Neovim GUI that I've been using since 2020.