Introduction

Have you used software like Google Docs, Etherpad or Hedgedoc? It's a very direct way to collaborate – multiple people can type into a document at the same time, and you can see each other's cursors.

Ethersync enables a workflow like that, but for local text files, using your favorite text editors like Neovim or VS Code!

⚠️ Warning:

Ethersync is still in active development. At this point in time it is usable (we use it every day!) but has a lot of subtle things to know about and things that you might expect to work that do not yet work. Consider it as a proof of concept, and make sure to have backups.

A main reason we have written a lot of documentation is to give you the ability to learn about this system and with that allow you to use it smoothly despite the caveats.

Current Features

  • 👥 Real-time collaborative text editing
  • 📍 See other people's cursors
  • 🗃️ Work on entire projects
  • 🛠️ Sync changes done by text editors and external tools
  • ✒️ Local-first: You always have full access, even offline
  • 🇳 Fully-featured Neovim plugin
  • 🧩 Simple protocol for writing new editor plugins
  • 🌐 Peer-to-peer connections, no need for a server
  • 🔒 Encrypted connections secured by a shared password

Planned features

  • 🪟 VS Code plugin
  • 🔄 Individual undo/redo (we probably won't work on this soon)

Documentation overview

The main part of this documentation is aimed at users:

  • Getting started shows you how to install Ethersync, and how to make your first steps in it.
  • Concepts goes into the fundamentals of how Ethersync operates, which is important for using it effectively.
  • Features explains various things you can do with it (and some thing you can't do yet).
  • Ethersync in practice contains detailed advice for how to use Ethersync for certain workflows.
  • Related projects lists other software which have attempted to build similar systems.

There is also a section aimed at people who want to help improving Ethersync:

  • Writing new editor plugins specifies the protocol we use for communicating between the daemon and editors, and lists other things a plugin needs to do.
  • What to learn from us might be interesting to you if you want to build new software like this, especially if you find this after Ethersync has died. 💀