luolanaatud1k downloadsAnalyze your vault using graph algorithms with Rust WASM for high-performance insights into note structure and relationships.
Turns your Obsidian vault into a knowledge graph, computes real graph-theory metrics locally (degree, betweenness, closeness, eigenvector centrality), and feeds those metrics to AI (Google Gemini) to produce semantic analysis, structural analysis, evolution tracking, and one-click actionable suggestions.
Open the plugin by clicking the plugin icon in the left ribbon.

AI has made it dramatically faster to acquire knowledge — reading, summarizing, and searching are no longer bottlenecks. But acquisition was never the hard part. The step that can't be skipped is internalization: turning a large, fast-growing pile of notes into an actual structure you understand and can act on.
That step gets harder, not easier, as input volume grows. A vault of a few dozen notes can be understood by skimming. A vault of a few thousand notes, growing daily, cannot — no amount of reading speed fixes that, because the bottleneck isn't reading, it's seeing the shape of the whole.
This plugin's premise: making sense of a large, fast-growing vault requires graph structure and AI working together, not either one alone.
Pipeline: graph metrics (local WASM) → structured context → AI reasoning → concrete actions.
Good fit:
Not a fit:
The graph renders your vault as a network — notes are nodes, links are edges. Node size reflects degree centrality (more connections → larger node), and color can encode betweenness, closeness, or eigenvector centrality.
Open the Vault Analysis modal from the status bar or command palette. The plugin first computes graph metrics in WASM, then runs AI analysis via Google Gemini. Results are organized into four tabs — Semantic Analysis produces the base data, and the other three tabs build on it independently.
The foundation layer. The AI processes each note alongside its graph metrics and produces:
Results are searchable, paginated, and update incrementally — only changed or new notes are re-analyzed.
Reveals how your knowledge is organized by combining domain analysis with graph topology.
Tracks how your vault grows and shifts over time.
Turns analysis into concrete next steps.
[[links]] directly into your notesUnder Obsidian settings → Knowledge Graph Analysis:
| Setting | Description |
|---|---|
| Exclude Folders | Comma-separated paths (e.g. Archive, daily-notes). Real-time stats show excluded vs included counts. |
| Exclude Tags | Comma-separated tags without # (e.g. private, draft). |
| Gemini API Key | Required for vault AI analysis. Visit Google AI Studio to create a key, then paste it under "LLM Model Configuration". |
| Visualization | Graph appearance options in the graph view settings panel. |
| Item | Cost |
|---|---|
| Plugin itself | Free, open source (MIT License) |
| Google Gemini API | Requires your own key from Google AI Studio |
| Gemini free tier | 250K TPM, 500 requests/day per official docs — generally sufficient for summaries, keywords, and domain extraction |
| Beyond free tier | Billed at Google's standard Gemini rates; see Google AI pricing (subject to change) |
The plugin batches Tabs 2–4 into a single consolidated AI call, reducing token usage by ~75% — this materially affects whether a large vault stays within the free daily quota.
| Item | Detail |
|---|---|
| Obsidian version | 1.7.2+ |
| Platforms | Desktop only (Windows / macOS / Linux) — no mobile support |
| Install (recommended) | Settings → Community plugins → search "Knowledge Graph Analysis" |
| Install (manual) | Download from GitHub Releases → extract into .obsidian/plugins/ → enable in settings |
| Prerequisite for AI features | A Gemini API key; not required for local graph visualization |
The plugin makes no network calls on load. Requests only fire when you trigger Vault Analysis or a tab's AI action.
| Scenario | What leaves your device |
|---|---|
| Vault Analysis / tab AI actions | Note text and prompts sent to Google Gemini (generativelanguage.googleapis.com), using your own API key |
| Graph view / WASM metrics | Fully local — never leaves your device |
No plugin-owned backend server. All caches (semantic results, derived charts, tab analyses) live in Obsidian's local plugin data. HTTP requests go through Obsidian's own requestUrl API — no bundled Google SDK.
| Operation | Benchmark |
|---|---|
| Graph metrics computation (degree, betweenness, closeness, eigenvector centrality) | ~60ms for a 1,000-note vault, computed locally via Rust → WASM |
| AI semantic analysis (first run, full vault) | Bound by Gemini's free-tier daily request cap (500/day) rather than by graph computation — large vaults may need multiple days for a full first pass, or a paid tier |
| AI semantic analysis (subsequent runs) | Incremental — only changed/new notes are re-analyzed, so ongoing use is much lighter than the first pass |
(Note: the 60ms figure is an official benchmark measured at 1,000 notes. Performance at 5,000+ or 10,000+ notes has not been benchmarked — any expectation of similar speed at that scale is an inference, not a reported fact. Test on a subset before running full analysis on a very large vault.)
Prerequisites: Node.js, npm, Rust, and wasm-pack.
git clone https://github.com/luolanaaTUD/obsidian-graph-analysis.git
cd obsidian-graph-analysis
npm install
npm run build
npm run build runs three steps in order:
wasm-pack build --target webdist/, and embeds the WASM binary in main.jsTo install into a vault, copy dist/ contents into .obsidian/plugins/knowledge-graph-analysis/, or use npm run copy-to-vault if configured.
This project uses eslint-plugin-obsidianmd. Before submitting to the community plugin directory:
npm run lint:submission # errors only (recommended before release)
npm run lint # full report including UI sentence-case warnings
npm run lint:fix # auto-fix where supported
Contributions are welcome. Open issues or pull requests on github.com/luolanaaTUD/obsidian-graph-analysis.
MIT — see the LICENSE file for details.