AgriciDaniel/claude-obsidian
Most AI-assisted note-taking tools are glorified paste bins. You feed them a URL, they dump text into a file, and the knowledge graph stays empty. claude-obsidian takes a different position: the problem isn't capture, it's compounding. Every piece of the system is organized around a loop where sources are preserved immutably, claims are grounded against evidence, and the vault grows denser with each use rather than just longer.
The architecture is unusually honest about what it actually does. PDF and EPUB support, for instance, covers metadata, hash, and size—no built-in semantic extraction. URL and YouTube ingestion requires a configured external runner; it doesn't pretend otherwise. High-risk claims require two independent sources. When embedding or reranking can't be trusted, retrieval falls back to deterministic BM25. That table of capability boundaries in the README is doing real work, not marketing.
The trust model is worth understanding before dismissing as over-engineering. Every mutating operation follows a five-step transaction: read targets and record their SHA-256 hashes, let parallel workers return drafts only, merge into one operation bundle, inspect it, then apply once. A changed target is a conflict, not a silent overwrite. The vault holds a process-lifetime lock, journals backups, and uses atomic replacement. This matters because knowledge bases are long-lived and hard to audit after corruption; the design treats the vault as something worth protecting rather than a scratch pad.
Vault selection is equally careful. The system refuses to guess: it requires an explicit CLAUDE_OBSIDIAN_VAULT environment variable, a .claude-obsidian.json marker, or an unambiguous initialized ancestor directory. Uncertainty causes an exit without writing. On native Windows outside WSL, vault writes fail closed with an UNSUPPORTED_PLATFORM error rather than attempting something unreliable.
The 15 skills cover the full lifecycle—ingestion, querying, linting for dead links and orphaned notes, Canvas visualization, web research with explicit egress consent, and four filing methodologies (Generic, LYT, PARA, Zettelkasten). Switching modes changes how new notes are routed; it does not reorganize existing ones. That constraint is a deliberate choice, not a limitation.
The lineage is credited directly: the design follows Andrej Karpathy's LLM Wiki pattern, using kepano's obsidian-skills as the reference substrate for Obsidian Markdown and JSON Canvas syntax. The repo is MIT licensed and ships with a CITATION.cff.
What makes this worth attention isn't the feature count. It's that the design treats knowledge integrity as a first-class concern—provenance, conflict detection, explicit egress, honest capability declarations—in a space where most tools treat those as optional polish.
A local-first Obsidian knowledge system that treats provenance and conflict detection as core constraints, not afterthoughts.