obsidian-wiki turns an agent's working knowledge into a linked markdown vault you keep. You point it at a folder and tell the agent what to remember, and it compiles what you learn into interconnected pages rather than leaving the answer in a chat log. The approach follows Andrej Karpathy's LLM Wiki pattern: compile knowledge once and keep it current, instead of re-asking a model or re-running retrieval every time.
There is no runtime and no API key. Every capability is a markdown skill file that a coding agent reads and runs, and a single .skills directory is symlinked into each agent you use — Claude Code, Cursor, Codex, Windsurf, Gemini CLI, and around a dozen others. 39 skills ship in total, invoked as slash commands.
Ingestion accepts anything text-shaped: documents, PDFs, chat exports, meeting transcripts, screenshots, and URLs. Separate skills distill the repository you are standing in with awareness of its code graph, capture the current conversation, and mine your past agent sessions. A manifest records every source, so later runs process only the delta. Queries return answers with wikilink citations, and other skills produce a cited briefing on a topic or a digest of what you learned in a period.
Maintenance skills lint for broken links, orphans, and contradictions, merge duplicate pages, cross-link new pages into the graph, and report what is ingested and where the hubs are. Claims are tagged as extracted, inferred, or ambiguous so speculation is distinguishable from recorded knowledge, and lint flags pages drifting toward speculation. Queries read titles, tags, and summaries before page bodies, which keeps cost roughly flat as the vault grows. The vault opens in Obsidian's graph view, and the graph exports to JSON, GraphML, Neo4j Cypher, Postgres SQL, or a self-contained interactive HTML file.
A session-brain component builds a topic graph over agent session history so you can search for a session by describing it. A published benchmark compares a plain agent with obsidian-wiki on structural questions over a 38-page vault, run with Claude Sonnet in headless mode, across 4 questions, 2 conditions, and 2 repetitions. The project describes the study as small, with two runs per cell on one vault, notes that the wall-clock gaps are larger than the run-to-run spread while the accuracy figures rest on fewer samples, and reports one run in the instrumented condition that failed outright. Ground truth for the graph measures came from networkx rather than the project's own code.
| Measure | Plain agent | With obsidian-wiki |
|---|---|---|
| Time to answer | 81s | 19s |
| Correct answers | 44% | 83% |
| Tool calls used | 9.9 | 4.6 |
| API cost | $0.202 | $0.208 |
Features
- Compiled knowledge: new material merges into existing pages, contradictions are flagged, and duplicates are not created
- Incremental ingest: a manifest tracks every source so later runs process only what changed
- Wide ingest sources: documents, PDFs, chat exports, transcripts, screenshots, URLs, repositories, and past agent sessions
- Cited answers: queries, topic briefings, and period digests return wikilink citations
- Claim provenance: every claim is tagged extracted, inferred, or ambiguous, and lint flags speculative drift
- Vault maintenance: lint, dedup, cross-linking, and status skills keep the graph clean
- Bounded query cost: titles, tags, and summaries are read before page bodies
- Graph export: JSON, GraphML, Neo4j Cypher, Postgres SQL, or a self-contained interactive HTML page
- Session brain: a topic graph over agent session history, searchable in plain language
- Agent-agnostic: markdown skills symlinked into a dozen or more coding agents, with no runtime or API key
- Plain markdown: the vault is a folder of files you can version, grep, or delete
