by Sasiscka
Sync a vault in real time across devices with live multi-user editing, three-way merge, file history, folder scope and presence. Runs on desktop and mobile.
Unison
Real-time collaborative sync for Obsidian. Several people connect the same vault through a small self-hosted WebSocket server: edits merge live, text and binary files stay in sync, and every file keeps server-side version history. It runs on Obsidian desktop (Windows, macOS, Linux) and mobile (iOS and Android).
Features
- Desktop and mobile - works on Obsidian for Windows, macOS, Linux, iOS and Android, from the same vault and the same server.
- Live collaboration - updates, deletes and renames go to everyone in the room within milliseconds.
- Three-way merge - concurrent typing merges in place, never silently overwrites or duplicates.
- Text and binary - text as UTF-8, everything else (images, PDFs, audio) as base64.
- Presence - participant panel, remote carets and selections (drawn as overlays, the note text is never touched), file-tree badges, typing.
- File history - the server keeps the last N versions per file; restore any of them from the command palette.
- Scope control - whole vault or selected folders, optional text-only mode, exclude patterns.
- Quick connect - share server, room and key as one paste-able code.
- Self-update - installs new versions from GitHub releases.
- Self-hosting - run
server/server.json any machine and point the plugin at it (seedocs/server-setup.md).
Install the plugin
BRAT (easiest)
- Install and enable BRAT.
- BRAT -> Add beta plugin ->
iluha067/Unison. - Enable Unison in Settings -> Community plugins.
Manual
- Copy
manifest.json,main.jsandstyles.cssinto<vault>/.obsidian/plugins/unison/. - Enable Unison in Settings -> Community plugins.
- Open Settings -> Unison and fill in server URL, API key and room.
Run a server
Step-by-step guide from a clean server:
docs/server-setup.md.
Minimal start:
cd server
API_KEY="$(head -c32 /dev/urandom | base64)" PORT=3000 DATA_DIR=./data node server.js
Then in the plugin set Server ws://your-host:3000, the same API key,
and pick a shared Room name.
Plans
- Free - up to 5 devices per room.
- Pro ($3 / month) - unlimited devices per room.
The only difference is how many devices can join a room. See
docs/plans.md.
Documentation
docs/server-setup.md- deploy the server from scratchdocs/protocol.md- WebSocket message referencedocs/plans.md- Free and Pro plans, license keysdocs/updates.md- how plugin updates workSECURITY.md- threat model and hardeningCHANGELOG.md- version history
Development
# plugin merge-engine tests (loads main.js with an obsidian stub)
npm test
# server tests (node:test + ws)
cd server && npm install && npm test
License
MIT (c) Unison
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.