Skip to content

Add Obsidian vault import recipe#28

Open
snapsynapse wants to merge 2 commits intoNateBJones-Projects:mainfrom
snapsynapse:recipe/obsidian-vault-import
Open

Add Obsidian vault import recipe#28
snapsynapse wants to merge 2 commits intoNateBJones-Projects:mainfrom
snapsynapse:recipe/obsidian-vault-import

Conversation

@snapsynapse
Copy link

Parses any Obsidian vault, chunks notes into atomic thoughts, generates embeddings via OpenRouter, and inserts into Supabase. Tested on 500+ note vault.

Closes #13

Summary

Adds a complete recipe for importing Obsidian vaults into Open Brain as searchable, embedded thoughts. Closes #13.

  • Parses any Obsidian vault (markdown, frontmatter, wikilinks, inline tags)
  • Hybrid chunking: heading-based splits + optional LLM distillation for long sections
  • Embeddings via OpenRouter, insert via Supabase REST API
  • Sync log prevents duplicates on re-runs
  • Tested on a 500+ note LifeHQ-pattern vault (993 thoughts, zero failures)

Vault compatibility

Tested/documented for BASB/PARA, LYT/Ideaverse, LifeHQ, FLAP, Zettelkasten, and MOC-centric patterns. No special configuration needed.

Files

  • import-obsidian.py — standalone script (~480 lines)
  • README.md — step-by-step guide with credential tracker, options, filtering docs, troubleshooting
  • requirements.txt — python-frontmatter, requests
  • .env.example, .gitignore, metadata.json

Parses any Obsidian vault, chunks notes into atomic thoughts,
generates embeddings via OpenRouter, and inserts into Supabase.
Tested on 500+ note LifeHQ-pattern vault.

Closes NateBJones-Projects#13
@justfinethanku
Copy link
Collaborator

@claude
run a review on this

@justfinethanku
Copy link
Collaborator

@claude let's do this one more time... I believe in you! give this a proper review!

Copy link
Collaborator

@justfinethanku justfinethanku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Admin Review

CI didn't run (Actions blocker), so I did a manual pass.

Security: Clean — no credentials, no dangerous operations, all external calls go to OpenRouter API only.

Code quality: Solid. Proper retry logic with exponential backoff, rate limiting, sync log for idempotent re-runs, graceful error handling for encoding issues. The hybrid chunking approach (headings + optional LLM fallback) is well thought out.

Documentation: Strong README with vault compatibility table, credential tracker, filtering docs, and 5 troubleshooting entries.

Verdict: Approved. Nice first contribution!

Welcome to Open Brain — come say hi in Discord: https://discord.gg/Cgh9WJEkeG

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Recipe: Import Obsidian vault into Open Brain

2 participants