Collaborative editing from Neovim to anything and everything using the Braid-HTTP protocol.
Add to your Neovim config:
vim.opt.rtp:prepend("~/path/to/braid-neovim")Or with lazy.nvim:
{ "braid-org/braid-neovim" }Syncs Neovim buffers with HTTP resources. Uses the simpleton merge algorithm. Implements HTTP with curl and reads/writes Braid-HTTP in Lua.
Open any braid-text resource:
:BraidOpen http://localhost:8888/text/notes
:BraidOpen https://dt.braid.org/foo
braid-neovim automatically connects and starts syncing.
Edits you make are pushed to the server immediately, and edits from other clients appear in real time. Close the buffer to disconnect.
braid-neovim includes Lua modules that can be used independently:
-
braid/http.lua-- a Braid-HTTP client library. Subscribe to any Braid resource and receive streaming updates (209 Multiresponse parsing, automatic reconnection). Send versioned PUTs with patches. -
braid/simpleton.lua-- a simpleton sync client. Connects to a braid-text resource and handles the full sync lifecycle: diffing, patching, version tracking, and digest verification. -
braid/cursors.lua-- collaborative cursor display. Subscribes to cursor updates, renders remote cursors as highlights, and broadcasts local cursor position.