Teamtype: multiplayer mode for your text editor – towards a Collaborative Editing Protocol
K.3.201 | Day 2 | 13:00 - 13:20 | Speakers: blinry, Moritz Neeb
Abstract
Files on your hard drive are the ultimate local-first storage. But to allow real-time collaboration from within text editors, developers currently have to reinvent the wheel each time: Figure out how to hook into buffer changes correctly, implement displaying remote cursors, finding a way to get the required events in and out of the editor.
In addition, for each combination of editor and collaborative use-case, there needs to be a separate plugin: For example, there is a Vim plugin to connect to an Etherpad, or you need individual editor plugins when wanting to live-code music or visuals together.
Similar problems have already been solved by different editor-facing protocols: To integrate "language intelligence" tools (that provide autocompletion or refactorings), you can use the Language Server Protocol (LSP). Likewise, debugging support can be added via the Debug Adapter Protocol (DAP), and support for LLM tooling is now provided via the Model Context Protocol (MCP).
We think that there's a gap for a "Collaborative Editing Protocol" (CEP, working title) that allows text editors to talk to "collaboration servers", and thus provides them with collaboration functionality. Per editor, this protocol would only need to be implemented once, making the resulting software components interoperable. You'd have plugins for Neovim and for Emacs that speak CEP, and you'd have an Etherpad bridge that also speaks it, and you could use all of them together!
In this talk, we want to outline the requirements for a protocol like that. We'll discuss different approaches, and demonstrate the proof-of-concept protocol we built for our local-first peer-to-peer pair programming software "Teamtype". We're looking to form a group to iterate on a "collaboration protocol" together, and eventually standardize it!
Speakers
blinry is enthusiastic about many things, including computer science, programming, and design! They like free licenses, value autonomy, creativity and curiosity, and try to keep an open mind and heart. After doing research in the field of computational geometry for a while, they are now working as an independent programmer, artist, and game designer. They have attended a scientific workshop on Origami in the Caribbean, backpacked through Japan, and like collecting accidental art or drawing algorithm assembly instructions. They love their communities – Jugend Hackt, the Recurse Center, the Chaos community.
Moritz is a programmer, drummer and relationship nerd currently based in Berlin. In his free time, he is studying social sciences and helping out in local neighborhood projects. He has co-organized conferences on the joy of coding and is part of the Recurse Center community. He loves writing short paragraphs about himself in third person.
Links
External Links
Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.
