# OmegaVault Sync (Obsidian plugin) Pulls your [OmegaVault](https://omegavault.app) memories into an Obsidian vault as frontmattered markdown. **One-way** for v1: OmegaVault is the source of truth, so edits made here are overwritten on the next pull. ## How it works The plugin polls `GET /api/connectors/obsidian/pull?since=` with your API token as a bearer credential. Each changed memory comes back as a ready-to-write `.md` file (frontmatter + body); deletions come back as tombstones. Files are keyed by `omegavault_id`, so title changes rename the file and deletions remove it. Each note looks like: ```markdown --- omegavault_id: "665f…" title: "Interstellar" collection: "Movies to Watch" category: "Movies" tags: ["sci-fi", "movie"] source_ai: "chatgpt" created: "2026-07-01T12:00:00.000Z" updated: "2026-07-01T12:00:00.000Z" --- Recommended sci-fi film to watch. ``` ## Install (developer / BRAT) 1. Build the plugin: ```bash npm install npm run build # emits main.js ``` 2. Copy `manifest.json`, `main.js` (and `styles.css` if present) into `/.obsidian/plugins/omegavault-sync/`. 3. Enable **OmegaVault Sync** in Obsidian → Settings → Community plugins. 4. Or install via [BRAT](https://github.com/TfTHacker/obsidian42-brat) by pointing it at this repo. ## Configure In Obsidian → Settings → OmegaVault Sync: - **Server URL** — your OmegaVault instance (usually `https://app.omegavault.app`). - **API token** — create one in OmegaVault → Settings → API tokens (`ovk_…`). - **Vault folder** — where notes are written (default `OmegaVault`). - **Poll interval** — minutes between automatic pulls (default `5`). Use **Sync now** to pull immediately, or **Full resync** to reset the cursor and re-pull everything.