README file from
GithubSpectacles Sync
Export your Obsidian vault as a JSON knowledge graph and sync it to a Spectacles AR Lens, where you can explore your notes as a 3D graph. Your vault is end-to-end encrypted with a password you choose — the backend only ever stores an unreadable blob.
How it works
- Open Settings → Spectacles Sync and choose a password.
- Run Sync vault to Spectacles from the command palette (or click the glasses ribbon icon). The plugin encrypts your vault locally and uploads the ciphertext.
- On the Spectacles Lens, enter the same password to decrypt and view your graph. The password is the only pairing secret — there is no separate code.
- Re-sync any time. Enable Auto-sync on save to re-upload about 30 seconds after you stop editing.
Privacy & network use
This plugin sends data over the network. Exactly what happens:
- Where: your vault is uploaded to a backend server (default
https://spectacles-sync-backend-production.up.railway.app, configurable under Settings → Advanced → Backend URL). You can self-host the backend and point the plugin at your own URL. - What: a single end-to-end encrypted blob. Before anything leaves your device it is encrypted with a key derived from your password (NaCl secretbox / XSalsa20-Poly1305). The server stores only the ciphertext plus a password-derived identifier — it cannot read your notes, and neither can anyone with access to the server.
- Plaintext contents (inside the encrypted blob): note titles, paths, a 280-character excerpt per note, tags, links, frontmatter, headings, word counts, and timestamps. Full note bodies are included only if you enable Sync full note body (off by default).
- What is never sent: your password. It never leaves your device.
- Excluding notes: use Excluded folders and Excluded tags in settings to keep notes out of every sync.
Deleting your data
Run Delete remote Spectacles data from the command palette, or click Delete remote data under Settings → Danger zone. This permanently removes your uploaded blob from the backend.
Because encryption is keyed to your password, the password cannot be recovered if lost — pick one you'll remember.
Development
npm install
npm run dev # esbuild watch, rebuilds main.js in place
npm run build # type-check + production build
Symlink this folder into a test vault's .obsidian/plugins/spectacles-sync/, then enable the plugin under Settings → Community plugins.