About this project

Havemind is a self-hosted synchronization solution for Obsidian, designed for two or three people sharing one vault. It consists of an Obsidian plugin and a server you host yourself, with no cloud service to sign up for. The plugin runs on macOS, Windows, Linux, iOS, and Android, requiring Obsidian 1.11.4 or newer. Key features include: - Real-time sync across devices (changes land in about a second via long-polling) - Append-only history with full authorship tracking (who wrote what, with colors) - No silent overwrites: non-overlapping edits merge automatically; conflicting edits are preserved with copies in `Havemind Conflicts/` - Syncs notes, attachments (up to 25 MB), and appearance settings (themes, snippets, hotkeys, graph settings) - Device approval via a 6-digit code read aloud over a call (three attempts) - Multiple vaults per server, storage quotas, and per-device throttling - Optional encrypted backups (sealed with libsodium crypto_box_seal) Security relies on Tailscale (WireGuard) for network encryption and access control; the server is only reachable on your private tailnet. The vault is stored in plaintext on the server, so whoever controls the server can read it. End-to-end encryption is intentionally out of scope. The plugin never syncs `.obsidian/plugins/` (code, state, or secrets), and no telemetry or analytics are included. The server is a deliberately simple Fastify + SQLite application with a content-addressed blob store, running non-root with dropped capabilities. The plugin handles all the intelligence: watching the vault, durable outbox, three-way merges, conflict copies, and activity logging. For self-hosting, the guide covers Docker Compose + Tailscale setup, including creating a database key secret, running the server, and connecting devices. The repository includes documentation for using Havemind with AI agents (like Claude or MCP), a technical plan, and an MVP spec. Local verification requires Node.js 22 and npm 10; `npm run verify` runs lint, typecheck, tests, and build.