← all repositories
eugeneyan/obsidian-copilot

Your notes, ghostwritten by your notes

An Obsidian plugin that retrieves your own writing to draft new sections for you.

563 stars Python RAG · SearchChat Assistants
obsidian-copilot
Velocity · 7d
+0.5
★ / day
Trend
steady
star history

What it does

Obsidian-copilot is a retrieval-augmented generation setup that lives alongside your Obsidian vault. You type a section header; it fishes out relevant notes via keyword and semantic search, then drafts paragraphs using that retrieved context. It also does weekly reflection by rummaging through your daily journal entries.

The interesting bit

The whole thing is deliberately overengineered in the way research prototypes often are: OpenSearch for keyword retrieval, a separate semantic index, Docker containers, a local FastAPI server, and a custom Obsidian plugin on the frontend. Eugene Yan built it to answer the question “how would a copilot for writing and thinking look?” — the answer turns out to be “a small infrastructure project.”

Key highlights

  • Hybrid retrieval: combines OpenSearch keyword matching with semantic/embedding search
  • Two concrete use cases: drafting sections from your knowledge base, and weekly journal reflection
  • Runs locally: uses your own Obsidian vault, with Hugging Face transformers cache
  • Full write-up explains the design at eugeneyan.com
  • ~560 stars, actively noted as a prototype

Caveats

  • Setup is involved: Docker, environment variables, building indices, installing a custom plugin, and stopping/restarting containers between steps
  • Currently hardcoded to specific models; Anthropic Claude support is on the TODO list but not implemented
  • The README warns that trailing slashes in paths matter, which is the kind of detail that suggests rough edges

Verdict

Worth a look if you’re researching RAG patterns for personal knowledge management or want a concrete, hackable baseline for local LLM tooling. Skip it if you need something that installs in two clicks — this is a prototype you adopt, not a product you consume.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.