junhewk3k downloadsBuild a knowledge graph from your notes using LLM-powered entity extraction. Supports Claude, OpenAI, Gemini, and Ollama.
This plugin builds a lightweight knowledge graph from users' Obsidian notes using LLM-powered entity extraction with a simple yet expressive ontology model to provide knowledge extraction, exploration, and RAG search. Since Obsidian provides wonderful links between notes, implementing ontology model would meet users' (especially researchers') needs.

See Literature search. Earlier releases are in the changelog.
Latest patch: 0.10.1 includes the Obsidian review fixes and adds strict lint checks to release CI.
Traditional knowledge graphs often require complex schemas with dozens of entity and relationship types, making them difficult to maintain and query. Simple Graph Builder uses 10 fixed entity types (PERSON, ORGANIZATION, CONCEPT, PROJECT, TOOL, EVENT, PLACE, DOCUMENT, METHOD, TOPIC), free-form relationship verbs ("develops", "uses", "causes", "cites"), and a detail on each relationship for nuance without schema explosion. See the data model.
junhewk/simple-graph-buildermain.js, styles.css, and manifest.json from the latest releaseVaultFolder/.obsidian/plugins/simple-graph-builder/With an already prepared graph, start at step 3. Explore a concept or path and choose Find more literature…; literature retrieval does not require model configuration or another graph analysis.
| Command | Description |
|---|---|
Analyze current note |
Extract entities from the active note |
Search graph and notes |
Advanced search over notes and entities (no API calls) |
Open graph view |
Show the knowledge graph |
Find more literature… |
Search PubMed/OpenAlex from the active graph selection; also available in the inspector and path view |
Open note neighborhood panel |
Show the current note's connections in the sidebar |
Remove current note from graph |
Remove the active note from the graph |
Rebuild note layer |
Recreate note nodes and their links from existing data (no API calls) |
Write graph links into notes |
Apply the graph to your vault as Obsidian links (no API calls) |
Remove graph links from notes |
Take the link property back out of every note |
Import or update med-lit project |
Import a med-lit-mcp review into the vault, or update one imported before (no API calls) |
Clear all graph data |
Reset the entire graph |
The ribbon icon offers Analyze current note and Open graph view. The status bar shows node counts by type.
| Guide | Covers |
|---|---|
| Graph View | Searching, inspecting and arranging the graph; display, forces, clusters and layout |
| Search | The search command, and how results are ranked |
| Literature Search | Graph origins, editable PubMed/OpenAlex queries, results, abstracts and external article links |
| Settings | Providers, analysis, exclusions, entity resolution, vault write-back |
| Agent Access (MCP) | Connecting Claude Code, Claude Desktop or Codex, the tools they get, and what they can see |
| Importing med-lit Projects | Importing, updating and removing literature reviews |
| Data Model | Entity types, relationships, entity resolution, and where data is stored |
| Changelog | What changed in each release, and what upgrading does |
| Development | Building, testing and releasing |
Note analysis requires a model that can return structured output. Models that cannot are refused with a message rather than silently producing a lower-quality graph, and the settings panel flags them as you select them.
| Provider | Models |
|---|---|
| Claude | claude-sonnet-5, claude-haiku-4-5 |
| OpenAI | gpt-6-luna, gpt-5.4-mini |
| Gemini | gemini-3.6-flash, gemini-3.5-flash-lite |
| DeepSeek | deepseek-flash |
| Local | any model your server exposes — Ollama, or an OpenAI-compatible server such as llama.cpp's llama-server, LM Studio or vLLM |
Any other model can be typed into the Custom… field, for example deepseek-v4-pro.
DeepSeek offers JSON mode rather than schema-enforced output, so the plugin puts the schema in the prompt and still validates every reply against it. At the default Minimal reasoning effort, DeepSeek's thinking is switched off. At higher levels it stays on, and the output budget is raised to 32k tokens, because DeepSeek counts thinking against it.
Local graph/note search, graph exploration and agent access make no provider API calls. Find more literature makes explicit PubMed/OpenAlex retrieval requests, under their current usage allowances; optional literature keys are configured separately. Note analysis calls the configured model API. When an agent analyzes notes for you, it uses its own model, billed however that agent is.
If entity resolution is on, embeddings add a little:
text-embedding-3-smallgemini-embedding-001nomic-embed-text)Obsidian stores plugin settings — including extraction and embedding API keys — in
.obsidian/plugins/simple-graph-builder/data.json, together with the graph
itself. If your vault is a git repository, add this to your .gitignore:
.obsidian/plugins/simple-graph-builder/data.json
Pushing that file to a public repository publishes your keys in plaintext, and deleting it later does not help — git keeps the history. If it has already been pushed, revoke the key at your provider's console and issue a new one.
Literature keys use Obsidian secret storage where available and session memory
on older versions. They are not written to data.json or included in a copied
prepared vault.
This plugin's entity resolution approach is inspired by recent advances in knowledge graph construction:
Simple Graph Builder combines the simplicity of LightRAG with KGGen's hybrid resolution approach, adapted for Obsidian's local-first architecture. Search follows HippoRAG [6] in ranking by Personalized PageRank over the graph.
[1] Guo, Z., et al. (2024). "LightRAG: Simple and Fast Retrieval-Augmented Generation." https://github.com/HKUDS/LightRAG
[2] Edge, D., et al. (2024). "From Local to Global: A Graph RAG Approach to Query-Focused Summarization." arXiv:2404.16130. https://github.com/microsoft/graphrag
[3] Shu, Y., et al. (2025). "KGGen: Extracting Knowledge Graphs from Plain Text with Language Models." NeurIPS 2025. arXiv:2502.09956. https://github.com/stair-lab/kggen
[4] Neo4j, Inc. (2024). "Neo4j GraphRAG Package for Python." https://neo4j.com/docs/neo4j-graphrag-python/current/
[5] Veen, A. (2024). "pgvector: Open-source vector similarity search for Postgres." https://github.com/pgvector/pgvector
[6] Gutiérrez, B. J., et al. (2024). "HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models." NeurIPS 2024. arXiv:2405.14831. https://github.com/OSU-NLP-Group/HippoRAG
MIT License - see LICENSE for details.