Obsidian Vault Sync
Overview
Section titled “Overview”There are two ways to get an Obsidian vault into Schift:
| Path | Best for | Direction |
|---|---|---|
| Desktop plugin (this guide) | A live vault you keep editing | Push — the plugin sends changes as you save |
| SchiftIndex CLI | Scripted, repeatable one-off syncs (CI, backups) | Pull-on-demand — you run a command |
Obsidian is a local desktop app, so Schift Cloud cannot reach your vault directly. The desktop plugin solves this by pushing note changes to your bucket instead of Schift pulling from your machine.
1. Install the plugin
Section titled “1. Install the plugin”Download the plugin from your Connections page (the “Obsidian” card under Documents & Storage), or directly:
curl -LO https://schift.io/downloads/schift-for-obsidian.zipUnzip it into your vault’s plugin folder so you end up with a schift/ directory:
<your-vault>/.obsidian/plugins/schift/ main.js manifest.json versions.jsonIn Obsidian, go to Settings -> Community plugins and enable Schift. (The plugin is desktop-only — it opens a local browser callback during connect, which mobile Obsidian doesn’t support.)
2. Connect your account
Section titled “2. Connect your account”Open the command palette (Cmd/Ctrl+P) and run Connect Schift in browser, or
use the Connect Schift button in the plugin’s settings tab.
This opens a Schift approval page in your browser. If you’re already signed in to the console (any login method — email, SSO, whatever you use), you’ll see a single 연결 승인 / Approve connection screen — no separate Obsidian-specific login. Approve it, and the plugin receives an API key automatically. The key is stored in your OS keychain (Obsidian’s SecretStorage), not in a plaintext settings file.
3. Point it at a bucket
Section titled “3. Point it at a bucket”By default the plugin syncs into your org’s default bucket, which is created
automatically on first sync. To use a different bucket, set Target bucket ID
in the plugin settings before your first sync.
From here, sync is automatic: creating, editing, renaming, or deleting a note in Obsidian pushes that change to Schift within a few seconds (debounced). You can also trigger a full sync manually with the Sync vault to Schift now command.
What syncs
Section titled “What syncs”- Markdown note content and frontmatter
[[wikilinks]]— resolved into relations between the actual linked notes (not just stored as text), so backlinks and forward links both feed search- File renames and deletes (the old path is retired, not left as a stale entry)
Hidden paths are always skipped: .obsidian/, .git/, .schift/. Add more
exclusions with Excluded path prefixes in settings.
Wikilinks and search
Section titled “Wikilinks and search”Notes linked with [[wikilinks]] aren’t just plain text to Schift — the plugin’s
sync builds a relation graph between your notes. When a search hits one of your
notes, Schift can pull in directly linked notes and notes that link back to it, so
answers can draw on the surrounding context you built in Obsidian, not just the
single best-matching note.
Settings reference
Section titled “Settings reference”| Setting | Default | Notes |
|---|---|---|
| API base URL | https://api.schift.io | Change only for BYOC/on-prem deployments |
| Target bucket ID | default | Auto-created on first sync |
| Vault name | current vault name | Used to scope sync state per vault |
| Max chunk characters | 6000 | Upper bound per chunk before embedding |
| Live sync enabled | on | Pause/resume without losing the pending queue |
| Sync on startup | on | Queues a full scan when Obsidian opens |
| Excluded path prefixes | (hidden paths only) | One prefix per line or comma-separated |
Disconnecting
Section titled “Disconnecting”Turning off Live sync or disabling the plugin stops new changes from being sent. Notes already synced stay searchable in your bucket — disconnecting the plugin doesn’t delete anything on the Schift side.
Does this work with a shared/team vault?
Section titled “Does this work with a shared/team vault?”Yes — point multiple vaults at the same bucket, or use separate buckets per vault/team the same way you would for any other source.
Is this the same as file upload?
Section titled “Is this the same as file upload?”No. File upload is for one-off documents. This plugin keeps a live vault in sync continuously, the same way the SchiftIndex CLI does for scripted use, but without you needing to run a command.
What if my Obsidian vault is huge?
Section titled “What if my Obsidian vault is huge?”The first sync processes your whole vault, then only changed notes sync afterward (content-hash based, so re-syncing unchanged notes is free). For very large initial imports, expect the first sync to take longer than incremental ones.