Obsidian stores notes as plain
.mdfiles in a folder on your disk (that folder is the "vault"). The upside: everything is local, yours, and nothing goes to the cloud. From there we feed that folder to your model so it answers from your knowledge rather than off the top of its head.
🧭 The big picture
What you end up with: a personal note base in Obsidian and an AI that answers from it — with references to specific notes instead of inventing things. This is called RAG (Retrieval-Augmented Generation): the model first finds the relevant pieces in your notes, then answers based on them.
Why this is powerful. A regular AI knows the general stuff and lies about the details of your project or life. AI + your base = a personal expert that remembers EXACTLY your decisions, notes and agreements — and backs the answer with a source.
Three approaches, from simple to serious:
- A — feed it into the chat (simple, no setup): attach the notes → ask. For a small base.
- B — locally via Ollama + RAG (private, for a large base): an index over all your notes, search + an answer from a local model.
- C — via MCP (the agent reads the vault itself): you hand the AI agent the folder as a tool.
💡 A "vault" is just a folder of
.mdfiles. There's no cloud inside: it all sits on your disk, and the base can be fed to a model in several different ways.
Step 1. Set up the base (the vault)
What we're doing: creating the note store and filling it.
- Download Obsidian (free): https://obsidian.md → Create new vault (pick the base folder).
- Fill it: by hand or by import. This service (AI Arsenal) can export the base as Obsidian-compatible markdown /
llms.txt/ a Knowledge Pack — drop the export straight into the vault. - A structure that's easy to search: short notes, meaningful headings, links between notes with
[[wiki-links]], tags like#topic.
How to tell it worked: Obsidian opens the vault, the notes are visible on the left, the link graph (View → Graph) shows nodes; in the folder on disk there are ordinary .md files.
Common mistakes:
- One giant note "for everything" → RAG will drag in irrelevant material and search blurs. Split it by topic.
- Headings like "Note 1", "new" → neither you nor the model will find anything. Name them by meaning.
Step 2. Approach A — feed it straight into the chat (fast, no setup)
What we're doing: putting the notes you need into a cloud model's context.
- In ChatGPT/Claude/Gemini — attach the
.mdfiles (or paste the text) and ask questions about them. - To collect the whole base into a single file for pasting (run this IN the vault folder):
find . -name "*.md" -exec cat {} + > knowledge.md
How to tell it worked: in its answer the model quotes or paraphrases exactly your notes, not "general words". Ask about a detail only you have — it should get it right.
Common mistakes:
- The base didn't fit into the context → the model "forgot" the beginning. Approach A is for a small or medium base; for a large one go to Approach B.
- You uploaded something private to the cloud (see the warnings). For sensitive material — local only.
💡 The
llms.txtexport from the service is exactly "the whole base in one file", made for feeding to a model. Handy when the base fits in the context.
Step 3. Approach B — local and private (Ollama + RAG over the vault)
What we're doing: when the base is large and privacy matters — running a local model and an index over the notes.
- Install Ollama and the models (see the "Running a local model" guide):
ollama pull qwen3 # the model that answers
ollama pull nomic-embed-text # the embedding model (for semantic search)
- Point a tool at the vault folder to index it. Ready-made options:
- Open WebUI — the Documents/Knowledge section: point it at the folder → ask questions about it (RAG out of the box), with your local Ollama as the model.
- Obsidian plugins with local AI (e.g. "Copilot for Obsidian", Smart Connections) — they connect to Ollama and search the vault without leaving the editor.
- Your own mini script (LangChain/LlamaIndex):
nomic-embed-textembeddings → a vector index → answers from a local model.
How to tell it worked: you ask a question and the model finds the relevant pieces in your notes and answers with a link to the source (the note's name) instead of making things up. It all works without internet.
Common mistakes:
- You forgot the embedding model → RAG can't build the index (you need
nomic-embed-textor an equivalent, not just a chat model). - Weak hardware → indexing/answers are slow. Take a lighter model or index in parts.
- You didn't re-index after adding notes → the model doesn't see the new material. Refresh the index.
Step 4. Approach C — via MCP (the agent reads the vault itself)
What we're doing: giving the AI agent direct access to the base folder as files — through the Filesystem MCP (see the "Connect MCP" guide).
npx -y @modelcontextprotocol/server-filesystem /path/to/Vault
Now in Claude/Cursor you can say: "Find everything in my base about
How to tell it worked: the agent lists real files from the vault and references specific notes in its answer; it can not only read but also append (if you granted write access).
Common mistakes:
- You pointed it at the wrong path → the agent sees nothing. The vault path must be exact and must exist.
- You granted write access and don't check the edits → the agent can overwrite a note. Start read-only / with a backup (see below).
🧠 For the senior
- Chunking and metadata: split by headings with overlap; put the source (file name, section) into the chunk — answers then carry precise citations. YAML frontmatter (
tags,aliases) improves filtering. - Hybrid search: vectors (
nomic-embed-text/mxbai-embed-large) + keyword (BM25) works noticeably better than embeddings alone, especially for terms and names. - The RAG stack: LlamaIndex/LangChain + a local vector database (Chroma/Qdrant/LanceDB); incremental re-indexing by file mtime; a reranker for the top-k.
- Freshness: the vault changes — set up automatic re-indexing (a watch on the folder) or a hook on save; otherwise the answers go stale.
- Quality evaluation: keep a small set of "question → expected note" pairs and run it after changing the index or the model — so nothing degrades silently.
⚠️ Warnings (privacy / irreversible)
- Approach A sends your notes to the provider's cloud. Don't put anything sensitive there (personal material, work under NDA, passwords). For private data — Approach B only (everything local, zero leakage).
- Before a mass import or overwrite of the vault — copy the folder. This is your knowledge; a backup is mandatory. An agent with write access or a botched import can wipe notes with no trash bin.
- MCP write access = the agent can change/delete notes. Start read-only; grant write deliberately and check the diff.
- Obsidian plugins are third-party code. Install only from trusted authors: a plugin with access to the vault and the network can exfiltrate your notes.
🆘 Rescue prompt
I have a note base in Obsidian (a folder of .md files). I want my model to answer FROM IT. Explain step by step.
BASE SIZE: <small / large>. PRIVACY: <cloud is fine / local only>.
MY TARGET APPROACH: <quickly into the chat / privately and locally via Ollama / an agent via MCP>.
MY HARDWARE: <OS, RAM, GPU>. I'M STUCK ON: <what doesn't work / the error>.
What to do:
1) Pick the approach that fits my goal and privacy needs.
2) Walk me through it: what to install, how to index the vault, how to ask questions.
3) How to verify the answers come FROM my notes (with source links) rather than being invented.
4) Warn me about cloud privacy and about backing up the vault before importing/writing.
💎 Depth and value
- Your knowledge stops gathering dust. Hundreds of notes you'll never re-read come alive: the AI instantly finds what's needed and ties scattered pieces into an answer — your memory becomes searchable and thinking.
- A private "second brain". Unlike cloud AI, here the data never leaves your disk (Approach B). You can keep your most personal and work material in the base and still ask the AI about it.
- Protection from hallucinations through grounding. An answer "with a link to your note" is verifiable and trustworthy. That moves the AI from "confidently making things up" to "answering from a source" — which is the whole point of RAG.
- An open format = freedom. A markdown vault isn't tied to any vendor: any tool and any model can read it, and it will still open in twenty years. You're building an asset, not renting someone else's service.