Skip to main content

Obsidian

Give your Obsidian vault an agent that actually knows your notes, powered by Hindsight. The plugin syncs your vault into a Hindsight bank and adds a chat panel whose answers are grounded on your notes — and cite them.

View Changelog →

Why this matters

Obsidian is where your knowledge lives. Vector-search plugins can find related notes, but they can't reason across them, remember what you asked, or keep a running synthesis as your vault grows. Hindsight adds that layer:

  • Recall is faster and more accurate than text search.
  • Reflect reasons over your whole vault to answer a question, and shows the notes it used.
  • Mental models (on the roadmap) keep living summaries of your vault that refresh as you write.

Source of truth stays in Obsidian

A hard rule of this integration: Hindsight never becomes a second source of truth. Sync is one-way (Obsidian → Hindsight), every answer cites the note it came from so you can fix things at the source, and chat conversations are not stored by default. Edit a note, and Hindsight reconverges on the next sync.

What it does

  • Incremental vault sync — notes are retained as Hindsight documents. Edits upsert, deletes remove. A content hash means unchanged notes are skipped.
  • Implicit scoping — every note is auto-tagged on ingest with its vault, folder (and sub-folders), and created/updated dates. You never think about scope until you recall — then filter by any combination via Hindsight's tag_groups. Multiple vaults share one bank and stay separable by their vault: tag.
  • Same data from UI and API — the Obsidian chat panel and your automations (n8n, Hermes, …) hit the same bank with the same tags, so they see the same scoped view.
  • Grounded chat — a side panel that answers questions over your notes via Reflect, with collapsible citations (click to open the source note) and a reasoning disclosure.
  • Manual or automatic — sync on every edit, or run Sync vault now on demand.

Scoping

Recall/reflect (from the UI or an API call) can filter by any combination of:

DimensionTag(s)
Vaultvault:<name>
Folder (+ ancestors)folder:Work, folder:Work/Clients
Datecreated:2026-03, updated:2026-06

Your own frontmatter tags/aliases are carried through too.

Installation

Recommended: Hindsight Cloud — sign up free, get an API key, and skip self-hosting.

While the plugin is in beta it installs via BRAT: add the repository vectorize-io/hindsight-obsidian (the dedicated plugin repo BRAT installs from) and enable it in Settings → Community plugins.

Self-hosting alternative — run Hindsight locally:

pip install hindsight-all
export HINDSIGHT_API_LLM_API_KEY=your-openai-key
hindsight-api

Configuration

Open Settings → Hindsight:

SettingDefaultDescription
API URLhttps://api.hindsight.vectorize.ioHindsight server (use http://localhost:8888 for self-hosted)
API keyHindsight Cloud API key
Bank nameobsidianShared bank for all vaults (separated by vault: tags)
Include / exclude foldersLimit which notes sync
Sync on editonRe-ingest notes automatically as you edit
Default chat depthlowReflect budget for chat answers
Remember conversationsoffWhen on, chat turns are stored in Hindsight (creates memory outside your vault)

Commands

  • Sync vault now — full reconcile (ingest changed notes, prune deleted ones).
  • Ingest current note — force-sync the active note.
  • Open chat — open the grounded chat panel.

Headless / CLI ingestion (no desktop app)

Running your vault on an always-on server (kept current on disk by Obsidian Sync)? The same ingestion runs without the Obsidian app via the hindsight-obsidian-sync CLI, shipped in the same package. It drives the same sync engine as the plugin, so it produces identical document ids, scope tags, and prune-ownership — a vault can be synced from a server and later opened interactively elsewhere without the two ingesters fighting or duplicating documents.

npm install -g @vectorize-io/hindsight-obsidian

# one-shot reconcile (cron-friendly)
hindsight-obsidian-sync reconcile \
--vault ~/Vaults/Brain --bank my-vault \
--api-url https://api.hindsight.vectorize.io --api-token hsk_...

# or keep it running and sync changes live
hindsight-obsidian-sync reconcile --vault ~/Vaults/Brain --bank my-vault --watch

--api-url / --api-token fall back to HINDSIGHT_API_URL / HINDSIGHT_API_TOKEN. Other flags: --include / --exclude (repeatable), --vault-name, --prefix-doc-id, and --index.

The sync index (the CLI's equivalent of the plugin's data.json) defaults to ~/.hindsight/obsidian/<vault>.json — deliberately outside the vault so Obsidian Sync never propagates it. If you run the CLI and the plugin against the same bank and vault, keep their scope settings identical (include/exclude, vault name, prefix-doc-id): each keeps its own index and a reconcile prunes only what its own index tracks, so mismatched scope could let one delete documents the other owns.