ethersync 0.7.0

Enables real-time co-editing of local text files.
Documentation

🍃 Ethersync

Multiplayer mode for your text editor!

Ethersync enables real-time collaborative editing of local text files. You can use it for pair programming or note-taking, for example. It's the missing real-time complement to Git!

Features

  • 👥 Edit files at the same time, across different text editors
  • 📍 See your peers' cursors and selections
  • 🗃️ Work on entire projects, the way you're used to
  • 🔒 Encrypted peer-to-peer connections, no need for a server
  • ✒️ Local-first: You always have full access, even offline
  • 🧩 Simple JSON-RPC protocol for writing new editor plugins

🚦 Project status

The project is under active development right now. We use it every day, but there's still some bugs to be aware of.

📥 Installation

1. Install the ethersync command

Ethersync works on Linux, macOS, and on the Windows Subsystem for Linux.

The releases on GitHub come with precompiled static binaries for Linux and macOS. Download one and put it somewhere in your shell's PATH.

yay -S ethersync-bin

This repository provides a Nix flake. To put ethersync in your PATH temporarily, run:

nix shell github:ethersync/ethersync

Make sure to also have it in your PATH when you run the editors.

cargo install ethersync

2. Install an editor plugin

📖 Basic usage

In one directory:

$ ethersync share

    To connect to you, another person can run:

    ethersync join 5-hamburger-endorse

Peer connected: adfa90edd932732ddf242f24dc2dcd6156779e69966d432fcb3b9fe3ae9831ab

In another directory (this can be on another computer!):

$ ethersync join 5-hamburger-endorse

Derived peer from join code. Storing in config (overwriting previous config).
Storing peer's address in .ethersync/config.
Connected to peer: 5e6b787fff79074735eb9b56939269100de1e37bc7f7a4d29c277cc24f7ee53d

The directories are now connected, and changes will be synced instantly. You can open text files (using editors with an Ethersync plugin), and start collaborating in real time! :sparkles:

🎓 Learn more

🚧 Community projects

(These are all work-in-progress!)

🔨 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.

If you're interested in building new editor plugins, read the editor plugin development guide. For more information about Ethersync's design, refer to the list of decision records.

If you find bugs, please open an issue on Github!

☎️ Contact

Feel free to open a discussion on Github to ask us anything! Other good channels:

💚 Funded by

Ethersync 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.

                   

📜 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.