ExcaliDash sync

approved

by SirEdvin

This plugin has not been manually reviewed by Obsidian staff. Sync Excalidraw drawings from vault frontmatter into ExcaliDash.

40 downloadsUpdated 7d agoMIT

ExcaliDash sync

vibe-coded

Sync the current Obsidian Excalidraw note to ExcaliDash by using frontmatter opt-in metadata.

It supports multiple different ExcaliDash instances, sync to collections, one-way (by default) or bidirectional sync.

How to use it?

  1. Install plugin via obsidian community plugins
  2. Enable it
  3. Configure access to your Excalidash instance, using username/password or api keys. Use the server root as the base URL; the plugin uses ExcaliDash's fixed /api routes internally.
  4. Use Excalidash Sync command to edit settings for one drawing or fall all drawings in specific folder.
  5. Hit manual sync command.

Api keys?

For now, ExcaliDash don't support any api keys, PR for this already opened, for now you can use docker images from my fork or use username/password and wait for PR to be merged.

Frontmatter format

excalidash-destination: home
excalidash-collection: My collection # optional id, name, or title
excalidash-sync: obsidian-to-excalidash # or bidirectional
excalidash-id: generated-after-first-sync
excalidash-version: 4
excalidash-last-hash: sha256-like-browser-hash
excalidash-last-synced: 2026-05-13T12:00:00.000Z

Conflict behavior

  • Existing remote drawings are fetched before update and written back with the latest remote version.
  • If excalidash-collection is set, the plugin fetches /collections, resolves id first and then exact name/title, and fails that drawing if no collection matches.
  • Collection changes are included in drawing create and update requests, so changing or clearing excalidash-collection can move an existing remote drawing.
  • A remote version change since the last sync is reported as a conflict for one-way sync.
  • Bidirectional sync pulls the remote scene into Obsidian only when the local scene hash still matches excalidash-last-hash.
  • If both local and remote changed, the plugin reports a conflict and leaves both copies untouched.
  • Bidirectional remote pulls into compressed-json Excalidraw notes are not supported; convert the note to plain JSON or use Obsidian-to-ExcaliDash sync for those files.

Future plans:

  • Advanced syncing (on save, periodical, etc)
  • Debug information in logs (disabled by default)
  • Maybe collection detection

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.