MemVector Knowledge Engine

approved

by Kevin Mike Kaupert

Local-first 2D vector-space graph, SQLite graph engine, and hybrid GraphRAG AI co-pilot for Obsidian — powered by Ollama, Anthropic Claude, OpenAI, or DeepSeek. - This plugin has not been manually reviewed by Obsidian staff.

1 stars60 downloadsUpdated 9d agoMIT

MemVector Knowledge Engine

Version License Obsidian Platform TypeScript Tests

A 100% local-first, privacy-focused 2D Vector Space Visualizer, SQLite Graph Engine & Hybrid GraphRAG AI Co-Pilot for Obsidian.

It turns your Markdown vault into an explorable 2D semantic map with real vector distances, lets you establish typed relationships between notes, and synthesizes structured knowledge from note selections using any OpenAI-compatible LLM.

The local storage layer is genuinely zero-setup: all embeddings and graph edges live in a bundled SQLite backend (sql.js) inside your vault - no Docker, no database server, no network call for storage itself. Computing embeddings and running AI synthesis, however, need a configured embedding/LLM provider: either a local Ollama instance you run yourself, or a cloud provider (Anthropic Claude, OpenAI, DeepSeek, OpenRouter, custom endpoint) - in the cloud-provider case, the selected note content leaves your device as part of that request.

Bildschirmfoto 2026-09-10 um 20 54 57

Status: Early-Stage (Pre-1.0)

This plugin is at version 0.1.x and under active development. The version number stays below 1.0.0 on purpose - it has not yet reached the stability and API stability that number implies. Expect rough edges, and check the open issues before relying on it for anything critical. Several issues found by functional review have partial fixes with a documented residual gap rather than a full resolution; those are tracked openly rather than closed prematurely. In particular, changing an existing relation's type to one already connecting the same note pair can silently overwrite the existing relation file (#14). In addition, vault exclusion patterns currently apply only to vector indexing, so notes excluded from vector search can still appear as graph neighbors and be forwarded to cloud LLMs during GraphRAG synthesis (#10).


Documentation

Detailed documentation is available in the docs/ directory:


Key Features (v0.1.0)

  • 100% Local-First & Zero-Setup (SQLite via WASM): All note embeddings and graph edges are stored locally in .obsidian/plugins/memvector-knowledge-engine/memvector-local.sqlite. No Docker, no database servers, no network setup needed.
  • GraphVektor 2D Canvas: Real physical force simulation combining genuine cosine vector similarity, WikiLinks, and typed relationship edges.
  • Active Note Mini-Radar (Sidebar): Renders polar distance rings centered on the active note where radial distance directly reflects true vector cosine distance $(1 - \text{similarity})$.
  • Hybrid GraphRAG Knowledge Synthesis: Multi-hop graph traversal and semantic vector retrieval loaded directly into the AI synthesis prompt.
  • Typed Relation Builder: Cmd-click or lasso-select notes to establish structured semantic relationships with custom vocabularies (wiki/relation-types.json).
  • Flexible LLM & Embedding Providers: Connect to local Ollama or cloud providers (Anthropic Claude, OpenAI, DeepSeek, OpenRouter, Custom REST) with secure key storage in Obsidian Secret Storage.

Installation & Quickstart

  1. Build or copy main.js, manifest.json, styles.css, and sql-wasm.wasm into <your-vault>/.obsidian/plugins/memvector-knowledge-engine/.
  2. Enable MemVector Knowledge Engine in Obsidian SettingsCommunity Plugins.
  3. In Plugin Settings, choose your Embedding and LLM provider (Ollama works out of the box with bge-m3).
  4. Click "Gesamtes Vault lokal indizieren" to compute embeddings and graph topology.
  5. Open the 2D Graph from the ribbon icon or command palette.

License

Distributed under the MIT License.

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.