# Obsidian Vaults

> Indexing an Obsidian vault as a local directory or an upload, and exactly which wikilink and callout syntax gets rewritten first.

- Updated: 2026-09-21
- Source: https://contextator.com/en/docs/obsidian-vaults/
- Language: en-US
- Author: Muhammet Şafak

---
An Obsidian vault is a folder of Markdown files, so Contextator indexes it like any other folder — with
one difference: the vault's own syntax is flattened first, so an agent reads ordinary Markdown instead
of `[[wikilinks]]` and callout markers.

## Two ways in

### The vault is on the server

Add it as a **Local directory** source with content type **Obsidian vault**. Nothing is copied, and
edits appear on the next index run.

```
Add source → Local directory
  Name:          vault
  Directory:     /docs/ + my-vault
  Content type:  Obsidian vault (rewrites [[wikilinks]])
```

This is the better option when it is available — the vault stays where you edit it and syncs by itself.

### The vault is not on the server

Use the **Obsidian vault** tab. It is an upload source that already carries the right content type:
drop the vault folder itself, or a zip of it.

```
Add source → Obsidian vault
  Name:  vault
  [drop the folder or a .zip of it]
```

Re-upload when the vault changes (**Replace all files** keeps it exact).

## What is rewritten

| In the vault | Indexed as |
|--------------|-----------|
| `[[Guides/Install]]` | `[Guides/Install](Guides/Install.md)` |
| `[[Setup\|the setup guide]]` | `[the setup guide](Setup.md)` |
| `[[API#Auth]]` | `[API › Auth](API.md#auth)` |
| `[[#Konular]]` (anchor in the same note) | `[Konular](#konular)` |
| `[[Install#^step-3]]` (block reference) | `[Install](Install.md#^step-3)` |
| `![[diagram.png]]` | `![diagram.png](diagram.png)` — images stay embeds |
| `![[Release Notes]]` | `[Release Notes](Release%20Notes.md)` — a note embed becomes a link, not a broken image |
| `> [!NOTE] Heads up` | `> **Note:** Heads up` — the callout's kind stays a searchable word |
| `%% private note %%` | Removed — comments are written not to be read |

The transform runs on the way into the chunker. **Your vault files are never modified.**

## What is skipped

- `.obsidian/` and every other dot-directory (so your workspace settings, plugins and themes are never
  indexed);
- attachments and every file whose extension the source did not select — images, `.canvas` files, and
  anything else outside the **File types** list (`.md` and `.mdx` by default; `.txt`, `.html`/`.htm`,
  `.csv`, `.docx` and `.pdf` can be added);
- anything matching `IGNORE_GLOBS`.

## Titles and frontmatter

Frontmatter is parsed by the chunker, and a `title:` in it wins over the first `# heading`. If a note
has neither, the filename is prettified into a title. Tags and other frontmatter keys are kept as part
of the document text, so they remain searchable.

## Daily notes and large vaults

Nothing special is needed, but two settings help:

- `IGNORE_GLOBS=Daily/**,Templates/**` keeps journal entries and templates out of the index, which
  usually improves the quality of what comes back.
- Split genuinely separate bodies of knowledge into separate projects rather than one huge one.

## Changing the content type later

If you added the vault as *Plain Markdown* by mistake, edit the source and switch the content type to
*Obsidian vault*. Contextator drops that source's stored file hashes and queues a run, so every file is
re-processed with the new transform — this is handled for you. See [Content Types](/en/docs/content-types/).
