{
  "markdown": "<h1 align=\"center\">obsidian-wiki</h1>\n\n<p align=\"center\"><b>A digital brain you grow with your AI agent.</b></p>\n\n<p align=\"center\">\n  It remembers what you figure out, connects it to what you already know,<br>\n  and answers when you ask.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://pypi.org/project/obsidian-wiki/\"><img src=\"https://img.shields.io/pypi/v/obsidian-wiki?color=blue\" alt=\"PyPI\" /></a>\n  <a href=\"https://deepwiki.com/Ar9av/obsidian-wiki\"><img src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\" /></a>\n  <a href=\"https://github.com/ar9av/obsidian-wiki/pulls\"><img src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"PRs Welcome\" /></a>\n  <a href=\"https://x.com/_ar9av\"><img src=\"https://img.shields.io/badge/@__ar9av-black?logo=x&logoColor=white\" alt=\"X\" /></a>\n  <a href=\"https://discord.gg/FH2PRX754c\"><img src=\"https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white\" alt=\"Discord\" /></a>\n</p>\n\n<p align=\"center\">\n  <img width=\"768\" alt=\"obsidian-wiki\" src=\"assets/hero.png\" />\n</p>\n\n<p align=\"center\">\n  English | <a href=\"https://github.com/Ar9av/obsidian-wiki/blob/main/README_TW.md\">繁體中文</a>\n</p>\n\n---\n\nYou solve a hard problem on a Tuesday. Three months later, in a different repo, you solve it again from scratch — because the answer lived in a chat log you'll never find.\n\nThis fixes that. Point it at a folder, tell your agent what to remember, and it compiles what you learn into interconnected markdown you own. The pattern comes from Andrej Karpathy's [LLM Wiki gist](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f): compile knowledge once and keep it current, instead of asking an LLM the same questions forever or re-running RAG every time.\n\n**Your second brain. Your AI agent is how you grow it.**\n\nEvery skill here is a markdown file that any agent — Claude Code, Cursor, Codex, Windsurf, Gemini CLI, and [a dozen more](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/agents.md) — reads and runs. No runtime, no API keys, no vendor.\n\n## 60 seconds\n\n```bash\npip install obsidian-wiki\nobsidian-wiki setup --vault ~/brain\n```\n\nUsing `uv` or `pipx`? `uv tool install obsidian-wiki` and `pipx install obsidian-wiki` work the same way. (Not `uvx` — see [Installation](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/installation.md#install-via-pip-uv-or-pipx-recommended).)\n\nThen open any project in your agent and say **\"set up my wiki\"**.\n\nPrefer not to touch a terminal? Give your agent this and it'll do the whole thing:\n\n```text\nhttps://github.com/Ar9av/obsidian-wiki — set up my wiki\n```\n\nOther paths — `git clone`, Skills CLI, multiple vaults → **[Installation](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/installation.md)**\n\n## What you actually do\n\n**Feed it.** Anything text-shaped: docs, PDFs, chat exports, meeting transcripts, screenshots, URLs.\n\n```text\n/wiki-ingest ~/research\n/wiki-update                        # distill the repo you're standing in (code-graph aware)\n/wiki-capture                       # save this conversation\n/wiki-history-ingest claude         # mine everything you've ever asked Claude\n```\n\n**Ask it.** Answers come back with `[[wikilink]]` citations, not vibes.\n\n```text\n/wiki-query what do I know about rate limiting?\n/wiki-narrate MCP security          # a cited briefing on a topic\n/wiki-digest week                   # what did I learn this week?\n```\n\n**Find that session you can't name.**\n\n```bash\nobsidian-wiki sessions-build\nobsidian-wiki sessions-query \"the auth bug with the weird retry loop\"\n```\n\n**Keep it honest.** The vault gets messy on its own; these clean it.\n\n```text\n/wiki-lint            # broken links, orphans, contradictions\n/wiki-dedup           # \"RSC\" and \"React Server Components\" are one page now\n/cross-linker         # weave new pages into the graph\n/wiki-status          # what's ingested, what's pending, where the hubs are\n```\n\nAll 39 skills → **[Skills Reference](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/skills.md)**\n\n## See it\n\nOpen the vault in Obsidian and hit the graph view (Cmd/Ctrl+P → \"Open graph view\"). Say **\"color my graph\"** and it tints nodes by tag, category, or visibility.\n\n<p align=\"center\">\n  <img width=\"900\" alt=\"obsidian-wiki graph view\" src=\"https://github.com/user-attachments/assets/f2980840-4b5b-438a-8264-5ad1de42f483\" />\n</p>\n\nOr export the whole graph to `graph.json`, GraphML (Gephi/yEd), Neo4j Cypher, Postgres SQL, or a self-contained interactive `graph.html`.\n\n## Why this and not a notes folder\n\n- **It compiles, it doesn't accumulate.** New knowledge merges into existing pages. Contradictions get flagged. Nothing gets duplicated.\n- **It only reads what changed.** A manifest tracks every source ingested, so the second run processes the delta — not your whole library again.\n- **You can tell knowledge from guessing.** Every claim is tagged `extracted`, `^[inferred]`, or `^[ambiguous]`, and lint flags pages drifting into speculation.\n- **Queries stay cheap as it grows.** Titles, tags, and summaries get read before page bodies. 20 pages or 2000, roughly the same cost.\n- **It's yours.** Plain markdown in a folder. Push it to a private repo, open it in Obsidian, grep it, delete it. No service, no lock-in, nothing leaves your machine.\n- **Works where you already work.** One `.skills/` directory, symlinked into every agent you use.\n\nMore → **[Architecture](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/architecture.md)**\n\n## Does it actually help?\n\nStructural questions — \"how is X connected to Y\", \"which pages hold my vault together\",\n\"what breaks if I delete this\" — are the ones a plain agent is worst at. It has to grep\nevery file and reconstruct the link graph by hand, every single time.\n\nSame model, same vault, same questions. The only difference is whether `obsidian-wiki`\nwas installed:\n\n| | Plain agent | With obsidian-wiki |\n|---|---|---|\n| **Time to answer** | 81s | **19s** — 4.4× faster |\n| **Correct answers** | 44% | **83%** |\n| **Tool calls used** | 9.9 | **4.6** |\n| **API cost** | $0.202 | $0.208 — unchanged |\n\n| Question | Plain agent | With obsidian-wiki |\n|---|---|---|\n| \"How is X connected to Y?\" | 122s | 18s |\n| \"What topic clusters do I have?\" | 117s | 21s |\n| \"Which pages hold my vault together?\" | 61s | 12s |\n| \"What breaks if I delete X?\" | 26s | 24s |\n\nThe accuracy gap is not a rounding error. Asked to trace a connection, the plain agent\nrouted through `index.md` — which links to *every* page, so it \"found\" a short path that\nmeans nothing. It made the same mistake in both runs, and named `index` as one of the\nmost important pages in the vault. The graph the skills query excludes bookkeeping files,\nso that answer isn't reachable.\n\n<details>\n<summary>Method, and what this doesn't prove</summary>\n\nClaude Sonnet, headless, on a real 38-page vault. Questions were asked in plain English\nwith no definition of the graph supplied — the plain agent had `Read`/`Grep`/`Glob`/`Bash`\nand had to work it out, which it did competently (it wrote its own centrality\nimplementation rather than guessing). 4 questions × 2 conditions × 2 repetitions, run\nserially so nothing competed for CPU.\n\nGround truth came from **networkx**, not from this project's own code: betweenness matches\nto 3.5e-18 across every node, and all 630 shortest-path pairs agree.\n\nIt's a small study — n=2 per cell on one 38-page vault — so treat the exact percentages as\nindicative. The wall-clock gaps (3–6×) are much larger than the run-to-run spread; the\naccuracy figures rest on fewer samples. One run in the \"with\" column failed outright: the\nmodel ignored the CLI, grepped by hand, and got it wrong.\n\nFull data, per-run logs and the scaling measurements are in\n[PR #175](https://github.com/Ar9av/obsidian-wiki/pull/175).\n\n</details>\n\n## Documentation\n\n| | |\n|---|---|\n| **[Installation](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/installation.md)** | pip, clone, agent-driven setup, multiple vaults |\n| **[Skills Reference](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/skills.md)** | All 39 skills and their slash commands |\n| **[Agent Compatibility](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/agents.md)** | The full matrix + per-agent manual setup |\n| **[CLI Reference](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/cli.md)** | Every `obsidian-wiki` subcommand |\n| **[Configuration](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/configuration.md)** | Config vars, QMD semantic search, `_raw/` staging, GitHub sync |\n| **[Architecture](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/architecture.md)** | The four ingest stages, vault structure, what we added to Karpathy's pattern |\n| **[Session Brain](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/session-brain.md)** | Topic graph over your agent session history |\n| **[Browser Extension](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/browser-extension.md)** | Capture pages into the vault, and fill web forms from it |\n| **[Deployment](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/deployment.md)** | Run a vault as a Dockerized memory service agents reach over HTTP/MCP |\n| **[Contributing](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/contributing.md)** | Adding skills, keeping the READMEs in sync |\n\n## Contributing\n\nThis is early. The skills work, but there's room to make the brain smarter — better cross-referencing, sharper deduplication, bigger vaults, new ingest sources. If you have a workflow that could be a skill, [PRs are welcome](https://github.com/Ar9av/obsidian-wiki/blob/main/docs/contributing.md).\n\n## License\n\n[MIT](https://github.com/Ar9av/obsidian-wiki/blob/main/LICENSE)\n",
  "bytes": 9693,
  "sha": "98c34fc29b1371ff661d1c8728ad49d3d50331d7ad6a192af35ff763a09f481b",
  "repo_slug": "ar9av/obsidian-wiki",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_ar9av_obsidian_wiki_data_ingest_ec65e5be/readme"
}