OpenViking Sync
unlistedby macgaf
Mirror OpenViking memories into your vault and submit controlled corrections.
OpenViking Sync
🌐 README: 🇺🇸 English | 🇨🇳 简体中文 | 🇹🇼 繁體中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇪🇸 Español | 🇫🇷 Français | 🇩🇪 Deutsch | 🇮🇹 Italiano | 🇧🇷 Português (Brasil) | 🇷🇺 Русский | 🇸🇦 العربية | 🇮🇳 हिन्दी
Desktop-only Obsidian community plugin for mirroring OpenViking memory data into an Obsidian vault and sending controlled corrections back to OpenViking.
Features
- Auto-discovers real OpenViking memory roots such as
viking://user/{space}/memories - Mirrors directory summaries to
_dir.abstract.mdand_dir.overview.md - Mirrors leaf memory files such as
mem_*.mdandprofile.md - Adds a generated, one-way
OpenViking Abstractsection to each leaf file - Restores the generated abstract section immediately if edited
- Detects local drafts for leaf files only
- Submits corrections through OpenViking session extraction and links the correction URI
- Supports multilingual UI through locale resource files under
src/locales/
Structure
src/
i18n.ts
locales/
main.ts
settings.ts
ov-client.ts
store.ts
projector.ts
sync-engine.ts
correction-engine.ts
tests/
docs/
Installation
npm install
npm run build
Copy main.js and manifest.json into:
<Vault>/.obsidian/plugins/openviking-sync/
Then reload Obsidian and enable the plugin.

Configuration
Recommended local defaults:
OpenViking base URL:http://127.0.0.1:1933API key: your OpenViking API keyUI language:Autoor a specific supported localeAuto-discover memory roots: enabledVault folder:OpenVikingPolling interval:60

Disclosures
- This plugin sends network requests only to the OpenViking base URL you configure.
- If you configure an API key, the plugin sends it to OpenViking in the
X-API-Keyrequest header and stores it locally in Obsidian plugin data. - The plugin stores settings, sync state, projection metadata, and revision history in local plugin data on your device.
- The plugin writes managed projection files only inside the vault folder you configure.
- Submitting corrections or confirming deletions requires explicit user commands. Correction submission sends the original and edited memory content to OpenViking and creates a temporary OpenViking session during extraction.
- This plugin does not include telemetry, analytics, advertising, or calls to third-party services beyond the OpenViking endpoint you configure.
Development
npm run typecheck
npm test
npm run build
Current Model Notes

- Directory
L0/L1are official OpenViking summaries - Leaf memory files expose a usable
abstract(L0) - Leaf memory files do not have a stable public leaf-level
L1 - The generated
OpenViking Abstractsection is strictly one-way: OpenViking -> Obsidian
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.