Backend: claude-obsidian

claude-obsidian turns sources into a linked knowledge graph using Claude through Claude Code.

Two things to understand first

It is a cloud backend. Synthesis runs through the Anthropic API, so bundle content leaves your machine. It cannot run on a vault marked confidential.

It is a session backend. Its CLI subcommands are doctor, transaction, hook, lint, contracts, package, release, capture, mode, extension, migrate, init, adopt, checkpoint. The wiki functions — wiki-ingest, wiki-query, wiki-lint — are Claude Code Agent Skills invoked in natural language inside a running session, not CLI verbs. Only capture and transaction are subprocesses.

ResearchVault therefore drives it partially: the dispatcher can hand a bundle to capture, and then tells you what to do next.

Configuration

confidential = false
backend      = "claude-obsidian"

[backends.claude-obsidian]
invocation = "session"
locality   = "cloud"
root       = "~/tools/claude-obsidian"
state_dir  = ".claude-obsidian"
drafts_dir = ""
timeout    = 600
capture = "python3 {root}/claude-obsidian.py capture {file}"
ingest  = ""
compile = ""
approve = ""
reject  = ""
session_hint = "open Claude Code in this vault and ask for wiki-ingest"

Empty verbs are not an oversight — they declare that this backend does not support that step through a subprocess. The dispatcher returns unsupported and shows session_hint rather than pretending to have done something.