The problem
Syncing an Obsidian vault across machines usually means Obsidian Sync (paid, closed), a generic cloud drive (no client-side encryption), or a git repo (never really designed for a vault's binary attachments). None of them combine self-hosting with real end-to-end encryption.
The approach
Potok encrypts a vault locally with AES before anything leaves the device, so the server only ever stores encrypted blobs - it never sees a password or plaintext content. Encryption passwords and API keys live in the OS keyring (Secret Service, Keychain, or Credential Manager) rather than in a config file. The CLI can register multiple vaults, push and pull them individually, and run a long-lived sync command that watches a folder and pushes changes automatically.
The result
A working end-to-end encrypted sync tool: vault registration, encrypted push and pull, folder watching for automatic sync, and a doctor command for diagnosing setup issues. It's still under active development - conflict detection, version history, and a web dashboard are on the roadmap.