teamtype/teamtype: Peer-to-peer, editor-agnostic collaborative editing of local text files. - teamtype/teamtype

github.com · 2026-07-15 · by Long Nguyen ·github
Peer-to-peer, editor-agnostic collaborative editing of local text files. - teamtype/teamtype

teamtype/teamtype

Peer-to-peer, editor-agnostic collaborative editing of local text files. - teamtype/teamtype

1.9k stars · 50 forks · Rust Topics: plugin, synchronization, peer-to-peer, collaboration, crdt, collaborative-editing, automerge, local-first

README

Multiplayer mode for your text editor! For complete end-user documentation see the Teamtype Documentation site. NoteUntil October 2025, this project was known as "Ethersync". The motivation for the rename was explained in this PR.

Teamtype enables real-time peer-to-peer collaborative editing of local files using your own text editor or other tools. For example, you can use it for pair programming sessions, brainstorming, or note-taking. It's the missing real-time complement to Git and other version control systems!

Features

👥 Edit files concurrently by multiple users using different text editors 📍 See your peers' cursors, selections, and edits in real time 🗃️ Collaborate on entire directories, not just single files 🔒 Rest easy with encrypted peer-to-peer connections, no need for a server ✒️ Maintain full access with a local-first model that retains all content on disk even if you go offline 🧩 Write new editor plugins using a simple JSON-RPC protocol

We also maintain a list of other collaborative text-editing software. What Teamtype is not We are not a company and do not have anything to sell. We do not require you to create an account. We do not have access to your data, and do not use it to train AI algorithms. We do not serve you ads or track you in any way. We are just a bunch of people building something we want to use ourselves and share with others. 🚦 Project status We're currently maintaining Teamtype in our free time. We're often using it for pair programming ourselves, but there's still some bugs to be aware of. 📥 Installation 1. Install the teamtype command Teamtype works on Linux, macOS, Android, and on the Windows Subsystem for Linux.

Binary releases The releases on GitHub come with precompiled static binaries. Download the asset archive for your platform, extract the teamtype binary file from the archive, and put it somewhere in your shell's PATH:

x86_64-linux-static for Linux universal-apple-darwin for macOS aarch64-aarch64-linux-static for Android (use a terminal emulator like Termux)

Arch Linux sudo pacman -S teamtype

Homebrew brew install teamtype

Nix To put teamtype in your PATH temporarily, run: nix shell nixpkgs#teamtype Make sure to also have it in your PATH when you run the editors, or install it to your environment in your preferred way.

Via Cargo cargo install --locked teamtype To save some compilation time, you can use cargo-binstall, which will install a precompiled binary attached to our latest release: cargo binstall teamtype

2. Install an editor plugin

Neovim VS Code/Codium: Install the "Teamtype" extension from the marketplace

📖 Basic usage In the directory you want to share: $ teamtype share

To connect to you, another person can run:

teamtype join 5-hamburger-endorse

Peer connected: adfa90edd932732ddf242f24dc2dcd6156779e69966d432fcb3b9fe3ae9831ab Another person, in a separate directory (also works on the same computer): $ teamtype join 5-hamburger-endorse

Derived peer from join code. Storing in config (overwriting previous config). Storing peer's address in .teamtype/config. Connected to peer: 5e6b787fff79074735eb9b56939269100de1e37bc7f7a4d29c277cc24f7ee53d The directories are now connected, and changes will be synced instantly. You can open text files (using editors with a Teamtype plugin), and start collaborating in real time! ✨ 🎓 Learn more

Learn more about Teamtype in the documentation. Watch a 10-minute talk given at FOSDEM 2025. Watch a (German) 1-hour talk given at MRMCD 2024.

🏘️ Community projects Plugins:

@schrieveslaach is maintaining a plugin for Jetbrains IDEs TeXstudio has a Teamtype integration

Work-in-progress plugins:

@sohalt's Emacs plugin @hvergara's Obsidian plugin @winniehell's web editor Emacs plugin @thwischm's Kakoune plugin

Bridges:

Hedgedoc bridge prototype @dglittle's Braid bridge LSP bridge @3timeslazy's LSP bridge (see this discussion)

🔨 Contributing We'd love to receive your patches and other contributions! Small patches are very welcome as PRs. Before starting to implement a new big feature, please briefly check in with us so we can discuss how it fits in with our ideas for the project. We have a CONTRIBUTING.md file that gives more guidance. Please take note of our strict no-LLM policy. If you're interested in building new editor plugins, read the editor plugin development guide. For more information about Teamtype's design, refer to the list of decision records. If you find bugs, please open an issue on Github! ☎️ Contact Feel free to join us on Zulip to ask us anything! Other good channels:

Mastodon: @teamtype@fosstodon.org Email: teamtype@zormit.de

💚 Thanks Teamtype received funding from NLNet's NGI0 Core Fund throughout 2024. Thanks to the Prototype Fund and the Federal Ministry of Research, Technology and Space for funding this project in 2025.

        

       

  

Teamtype is based on Automerge, Iroh, and Magic Wormhole. And finally, thanks to everyone who helped us beta-test, or reported issues! 📜 License This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This project is REUSE compliant, see the headers of each file for licensing information.

source

github.com · 6 images · 168 links

Comments (0)

No comments yet