Graph-based AI chat for your Obsidian vault.
Chat with your vault using a Knowledge Graph, not just keyword search. Neural Composer runs a local LightRAG server, builds a graph of your notes, and lets you ask questions that trace connections across your entire vault.
- π Finds relationships, not just matching words
- β‘ Manages the LightRAG server for you β no terminal juggling
- π 100% local when used with Ollama β your data never leaves your machine
Requirements: Python 3.10+ Β· pip install "lightrag-hku[api]" Β· Obsidian 1.7.2+
| β‘ Automated Server | Starts and stops the LightRAG Python process automatically. No terminal needed. |
| π§ Graph + Vector Search | Combines entity-relationship traversal with semantic vector search for deep, contextual answers. |
| π Vault Sync | Set a watched folder β notes are re-indexed on save. Status dots in the file explorer show each note's graph state: π’ processed Β· π‘ processing Β· π΄ failed Β· π΅ removed. |
| π Knowledge Graph View | Explore your graph visually in 2D or 3D. Overview mode renders all nodes; Explore mode does a BFS walk from any entity. |
| π Remote Server | Connect to a LightRAG instance on a NAS, VPS, or Docker container. |
| π€ MCP Tools | Expose your graph to any MCP-compatible client (Claude Desktop, etc.). |
| π Source Transparency | Every answer includes citations [1] linked to the exact notes and text chunks that were used. |
| π Local & Private | Use Ollama for a fully offline setup, or any hosted provider you prefer. |
Complete list of supported file formats
md txt docx pdf pptx xlsx rtf odt epub html htm xml json yaml yml csv tex log conf ini properties sql bat sh c cpp py java js ts swift go rb php css scss less
Standard vector search finds similar text. Graph RAG finds connected ideas.
| Standard Vector Search | Neural Composer (Graph RAG) | |
|---|---|---|
| How it works | Finds chunks that match your query semantically | Traverses relationships between entities in your notes |
| Best for | "What is X?" | "How does X influence Y across my research?" |
| Context quality | Often fragmented | Holistic β sees the whole picture |
| Multi-hop reasoning | β | β |
π Full documentation on the Wiki
# Recommended: use a virtual environment
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install "lightrag-hku[api]"Then find the path to the installed executable (you'll need it in Step 3):
which lightrag-server # macOS / Linux
where.exe lightrag-server # WindowsSearch for "Neural Composer" in Settings β Community Plugins β Browse and enable it.
Open Settings β Neural Composer. The panel has a sidebar with seven tabs:
- Providers β add your API keys (OpenAI, Anthropic, Gemini, Groq, Ollama, etc.)
- Models β select your chat, apply, and embedding models
- Graph & Vault β set the
lightrag-serverpath, choose a data directory, and optionally configure a Watched Folder for auto-sync - Toggle Auto-start on, then click Restart Server
A green dot in the status bar confirms the server is running. Right-click any folder in your vault to ingest notes and start chatting.
π οΈ Use Cases
- Researchers β synthesize arguments across hundreds of papers, surface consensus and contradictions that keyword search misses.
- Writers & Game Masters β track relationships between characters and lore; keep your world internally consistent without digging through folders.
- Journalers β connect entries from months ago to today, spotting patterns that aren't visible day-to-day.
- Project Managers β visualize dependencies between project notes that otherwise look like separate tasks.
π§© Advanced Options
| Feature | Where to configure |
|---|---|
| Watched Folder | Settings β Graph & Vault β Watched folder |
| Remote Server | Settings β Graph & Vault β Use remote server |
| Custom Ontology | Settings β Graph & Vault β Ontology section β teach the graph domain-specific entity types (e.g. "Experiment", "Theorem") |
| Reranking | Settings β Graph & Vault β Reranking β Jina AI, Cohere, or a custom local endpoint |
| MCP Servers | Settings β Tools (MCP) |
| Graph Visualization | Settings β Graph & Vault β Graph rendering engine β 2D (fast) or 3D (immersive) |
| Performance Tuning | Settings β Advanced β chunk size, overlap, async workers |
Custom .env overrides |
Settings β Advanced β raw .env editor with full LightRAG configuration access |
π Privacy & Security
Neural Composer is designed with privacy as a core principle.
| Destination | When | Why |
|---|---|---|
| Your AI provider (OpenAI, Anthropic, Gemini, Groq, etc.) | Every chat message or ingestion | To generate responses and embeddings. Only notes you explicitly ingest or attach are sent. |
Your local LightRAG server (localhost) |
Every query and ingestion | The plugin talks to a Python process on your own machine. No data leaves. |
| Your remote LightRAG server | Only if you configure a remote URL | Off by default. Opt-in only. |
Using Ollama + local LightRAG = zero data leaves your machine.
- The plugin does not send telemetry, analytics, or crash reports.
- The plugin does not contact
github.comor any external domain at runtime. Links in the UI are navigation-only β never fetched programmatically. - API keys are stored only in Obsidian's own
data.jsonin your local vault.
Why the Obsidian scanner flags certain capabilities
| Capability | Reason |
|---|---|
fs (filesystem) |
Writes the LightRAG .env config file to your chosen work directory, which may be outside the vault. |
child_process (shell) |
Starts and stops the local LightRAG Python server. The command is always the exact path you configure β no user input is interpolated into shell arguments. |
| Vault enumeration | Lists file paths for ingestion and the search index. File content is only read when you explicitly ingest a file. |
| Clipboard | Inherited from the Lexical rich-text editor in the chat input. Standard paste operations only. |
atob/btoa (Base64) |
Used by bundled deps: @modelcontextprotocol/sdk decodes JWT tokens for MCP OAuth; sigma/three-forcegraph encode WebGL shader data. No sensitive data is encoded this way. |
new Function |
Used by two bundled libraries: ngraph.forcelayout (3D physics) and ajv (JSON schema validation via MCP SDK). Neither executes user-provided code. |
π Changelog
- Mobile support (iOS / Android) β plugin loads on Obsidian mobile and chats against a remote LightRAG server over HTTP.
lightRagUseRemoteis forced on, local-server management settings are hidden, and the bundle ships aneventspolyfill plus arequireshim so node-only deps don't abort module evaluation on a non-Electron webview. - Graph view on mobile β the "desktop-only" notice is gone; the view renders via the same
/graphsHTTP endpoints. A right-anchored sidebar slides in/out via a new toolbar button and anxnext to the "Node manager" title. Node sizes shrunk for narrow viewports. Newer LightRAG versions (β₯1.4) now use thefile_pathproperty sent on each node, so the localkv_store_*.jsonreads aren't needed for citation filenames on either platform. - Fix:
AbstractJsonRepository.ensureDirectory()was fire-and-forget β on Androidadapter.list()raced ahead ofmkdirand crashed the template list. Every public method now awaits a shared directory-ready promise.
- Fix: removed all
!importantCSS declarations β replaced with higher-specificity selectors to comply with the Obsidian plugin linter.
- Settings UI redesign β new sidebar navigation with 7 tabs: Providers, Models, Chat, Graph & Vault, Tools (MCP), Advanced, Help.
- Document status tracking β colored dots in the file explorer for each note (π’ processed, π‘ processing, π΄ failed, π΅ removed). Watched folder shows an aggregate status dot.
- LightRAG version detection β the server version is displayed as a badge in Settings β Graph & Vault.
- Watched folder sync β notes are automatically re-indexed on save with a 5-second debounce.
- "Remove from graph" action β right-click context menu lets you remove individual notes from the graph without deleting the file.
- Tooltip improvements β status bar tooltip correctly distinguishes local vs. remote server offline state.
- Fix: correct LightRAG provider config for OpenRouter and Ollama (LLM_BINDING_HOST was missing, causing 401 errors).
- Fix: expose active embedding model selector in settings UI.
- Add: "Reprocess failed documents" button in Graph & Vault settings.
- Fix: stop server now correctly kills orphaned processes on macOS/Linux via port lookup.
- Knowledge Graph Visualization β 2D and 3D interactive graph view inside Obsidian.
- Overview mode (all nodes) and Explore mode (BFS from a selected entity).
- Real relevance scores for cited references (citation-frequency formula).
- Improved "Context used" panel β shows scores, snippets, and click-to-open for
.mdfiles. - Fix: single-click on isolated nodes now auto-explores and shows full entity details.
- Initial public release on the Obsidian Community Plugin marketplace.
- Local LightRAG server management (auto-start, restart, stop).
- Right-click folder ingestion with multi-format support.
- Chat with graph RAG, hybrid query modes, Jina/Cohere reranking.
- Custom ontology (entity types) and
.enveditor.
Built on the shoulders of giants:
- Forked from Smart Composer by glowingjade
- Powered by LightRAG
- Developed by Oscar Campo & Cora (AI)
- Mobile support (iOS / Android, remote LightRAG) by Arseniy Seroka (jagajaga)