Skip to main content
plugin

llm-wiki — Claude Code plugin: a compounding wiki from your sources

Turns Claude into a disciplined wiki maintainer: reads each source once, files it into linked Obsidian pages, and lets knowledge build up instead of being re-derived.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add alirezarezvani/claude-skills
/plugin install llm-wiki@claude-code-skills
Open on GitHub

What llm-wiki does

You drop papers and articles into raw/, and the plugin works them into a linked markdown base: entity, concept, comparison and synthesis pages. Each source is read once rather than re-synthesized on every query, so the wiki compounds. The box holds three sub-agents (wiki-ingestor, wiki-librarian, wiki-linter), five slash commands (/wiki-init, /wiki-ingest, /wiki-query, /wiki-lint, /wiki-log) and eight Python tools on the standard library: vault init, source ingest, index update, log append, BM25 search, linter, graph analyzer, Marp export. Vault templates and a worked example on LLM interpretability ship with it.

One iron rule: the model never edits raw/, all writes land in wiki/. Your sources stay untouched and model edits cannot overwrite them. The scripts are pure Python with no dependencies, but the schema loader is per-tool: CLAUDE.md for Claude, AGENTS.md for Codex CLI, Cursor, Antigravity, OpenCode and Gemini CLI, .cursorrules for legacy Cursor. init_vault.py --tool all installs all three, and several CLIs can point at the same vault.

The linter surfaces contradictions between pages, orphan notes and stale claims. That is worth running after a batch of ingests, especially if you have edited pages by hand.

What it helps with

  • build a linked wiki out of scattered PDFs and articles
  • catch contradictions between sources before they reach your conclusions
  • ask a question and get an answer with inline citations to pages
  • clear out orphan notes and stale claims
  • export a set of pages to a Marp deck

Example prompts for the agent

  • /wiki-init — create a vault at ~/vaults/research on LLM interpretability
  • /wiki-ingest raw/papers/paper.pdf — summarize the paper and update the linked pages
  • /wiki-query what does the paper say about sparse features?

How to install llm-wiki

Plugin marketplace

/plugin marketplace add alirezarezvani/claude-skills
/plugin install llm-wiki@claude-code-skills

Step by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own

Questions about llm-wiki

How do I install llm-wiki in Claude?

Through the plugin marketplace: run /plugin marketplace add alirezarezvani/claude-skills, then /plugin install llm-wiki@claude-code-skills.

What does llm-wiki do?

It ingests sources into an Obsidian markdown vault, updates entity and concept pages, keeps an index and a log, and flags contradictions. Knowledge stays in the vault instead of disappearing into chat history.

How is this different from plain RAG?

RAG retrieves fragments per query and synthesizes from scratch; the wiki keeps cross-references and syntheses already written. RAG can still sit on top of the wiki once index-first search stops being enough.

Source text

llm-wiki · MIT
# llm-wiki

> **A second brain for Claude Code + Obsidian.**
> Inspired by [Andrej Karpathy's LLM Wiki gist](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).

Turn any LLM CLI into a disciplined wiki maintainer. You curate sources and ask questions. The LLM reads, files, cross-references, flags contradictions, and keeps a living synthesis current. Knowledge **compounds** instead of being re-derived by RAG on every query.

## The idea in one paragraph

Most LLM+docs workflows are RAG: retrieve fragments at query time, synthesize from scratch, forget. The wiki is **compounding**. The LLM reads each source once and integrates it into a persistent, interlinked Obsidian vault — updating entity pages, revising concept pages, flagging contradictions, and strengthening the synthesis. The wiki is the compiled artifact; RAG is the just-in-time retrieval. This plugin gives the LLM the discipline (SKILL.md), the delegation (sub-agents), the triggers (slash commands), and the bookkeeping (Python tools) to do the job.

## What's in the box

| Piece | What it does |
|---|---|
| **SKILL.md** | Master skill doc — architecture, workflows, iron rules, cross-tool compat. Has `context: fork` so other skills can chain into it. |
| **3 sub-agents** | `wiki-ingestor`, `wiki-librarian`, `wiki-linter` |
| **5 slash commands** | `/wiki-init`, `/wiki-ingest`, `/wiki-query`, `/wiki-lint`, `/wiki-log` |
| **8 Python tools** | Standard library only: `init_vault`, `ingest_source`, `update_index`, `append_log`, `wiki_search` (BM25), `lint_wiki`, `graph_analyzer`, `export_marp` |
| **8 reference docs** | Schema, page formats, ingest/query/lint workflows, Obsidian setup, cross-tool setup, Memex principles |
| **Vault templates** | `CLAUDE.md`, `AGENTS.md`, `.cursorrules`, `index.md`, `log.md`, plus 5 page templates (entity, concept, source, comparison, synthesis) |
| **Example vault** | A small worked example on "LLM interpretability" |

## Quick start

```bash
# 1. Initialize a vault
python scripts/init_vault.py --path ~/vaults/research --topic "LLM interpretability" --tool all

# 2. Open in Obsidian
open -a Obsidian ~/vaults/research

# 3. Drop a source into raw/ and ingest
cp ~/Downloads/paper.pdf ~/vaults/research/raw/papers/
cd ~/vaults/research
# in Claude Code:
> /wiki-ingest raw/papers/paper.pdf

# 4. Ask questions
> /wiki-query "what does the paper say about sparse features?"

# 5. Health check
> /wiki-lint
```

## Cross-tool compatibility

The scripts are pure Python stdlib — they run anywhere. Only the **schema loader** changes per tool:

| Tool | Loader file |
|---|---|
| Claude Code | `CLAUDE.md` |
| Codex CLI (OpenAI) | `AGENTS.md` |
| Cursor (modern) | `AGENTS.md` |
| Cursor (legacy) | `.cursorrules` |
| Antigravity (Google) | `AGENTS.md` |
| OpenCode / Pi | `AGENTS.md` |
| Gemini CLI | `AGENTS.md` |

`init_vault.py --tool all` installs all three. You can run multiple CLIs against the same vault.

See `references/cross-tool-setup.md` for per-tool instructions.

## Architecture

```
<vault>/
├── raw/                    # IMMUTABLE sources (you own)
├── wiki/                   # LLM-owned knowledge base
│   ├── index.md            # content catalog
│   ├── log.md              # append-only timeline
│   ├── entities/           # people, orgs, places, products
│   ├── concepts/           # ideas, theories, frameworks
│   ├── sources/            # one summary per ingested source
│   ├── comparisons/        # cross-source analyses
│   └── synthesis/          # high-level overviews and theses
├── CLAUDE.md               # schema for Claude Code
├── AGENTS.md               # schema for Codex/Cursor/Antigravity
└── .cursorrules            # (optional) legacy Cursor
```

**Iron rule:** The LLM never edits `raw/`. All writes go to `wiki/`.

## Three operations

- **Ingest** — Read a source, discuss with user, write summary page, update 5-15 cross-referenced pages, update index, log it
- **Query** — Read index first, drill into 3-10 pages, synthesize answer with inline citations, offer to file back as a new page
- **Lint** — Mechanical + semantic health check; surface contradictions, orphans, stale claims, cross-reference gaps

## Why not just RAG?

| Plain RAG | LLM Wiki |
|---|---|
| Rediscover knowledge each query | Knowledge accumulates |
| Cross-references re-computed every time | Cross-references pre-written and maintained |
| Contradictions surface only if you ask | Contradictions flagged during ingest |
| Exploration disappears into chat history | Good answers re-filed as new pages |
| Scales by embeddings infrastructure | Scales by markdown + `index.md` + optional local search |

The wiki and RAG aren't opposites — RAG can sit on top of the wiki once you outgrow index-first search.

## Status

**v1.0.0** — initial release. SKILL + 3 agents + 5 commands + 8 scripts + 8 references + full vault templates + example vault.

## License

MIT.

## Related

- [Karpathy's original gist](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — the pattern this plugin implements
- Vannevar Bush, "As We May Think" (1945) — the Memex
- [qmd](https://github.com/tobi/qmd) — local hybrid search over markdown (pair with this when the wiki outgrows `index.md`)

© Alireza Rezvani · MIT · alirezarezvani/claude-skills

Similar plugins

All plugins for Agent setup: memory, context, orchestration →

From the same set394

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor