# llm-wiki-skill: compiling Markdown knowledge bases with an OpenClaw or Codex agent

> An experimental Agent Skill that turns raw documents into a persistent, cross-linked Markdown wiki instead of re-retrieving them on every query. It ships with an Obsidian audit plugin and a local Node.js preview server, and the README calls it experimental.

**lewislulu/llm-wiki-skill** — Karpathy-style LLM knowledge base Agent Skill for OpenClaw/Codex. Experimental — will iterate over time.

- Repository: https://github.com/lewislulu/llm-wiki-skill
- Stars: 657 · Forks: 104
- Language: TypeScript
- License: not declared
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/lewislulu-llm-wiki-skill

## What llm-wiki-skill solves, and who it is aimed at

Retrieval-augmented generation re-reads raw documents on every query. The README frames the alternative directly: instead of RAG, the LLM compiles raw sources into a persistent, cross-linked Markdown wiki, and every compile, ingest, query, lint and audit pass makes the wiki richer. The division of labour is explicit. You source raw material, ask questions, steer direction and file feedback on things the AI got wrong. The LLM does the writing, cross-referencing, filing, bookkeeping and acting on that feedback.

The audience is narrow and the README is honest about it. This is an Agent Skill for OpenClaw or Codex, so you need an agent that loads skill files. The listed use cases are research deep-dives over weeks of papers, a personal wiki in the Farzapedia style, a team knowledge base fed by Slack threads and meeting notes, and a reading companion built alongside a book. All four share one property: the same subject is revisited many times, which is exactly when a compiled wiki beats repeated retrieval and exactly when a one-off question does not.

## How the compile loop works: SKILL.md, raw/, log/ and audit/

The mechanism is a directory convention plus a skill file the agent reads. Scaffold a wiki and you get a tree; drop a source into raw/articles/ and tell the agent to ingest it. The agent reads SKILL.md, which points at five reference documents: schema-guide.md holds the CLAUDE.md schema template, article-guide.md covers writing with divide and conquer, mermaid and KaTeX, log-guide.md defines the log/ folder convention, audit-guide.md defines the audit file format and processing workflow, and tooling-tips.md covers Obsidian, qmd and the plugin and web tools.

Two companion tools write into the same audit/ directory. The Obsidian plugin lets you select text in any page and leave a comment with a severity, which is written as an anchored Markdown file. The web server renders the wiki with mermaid, KaTeX and wikilinks, lets you select and file feedback from the browser, and shows open audits per page. Both go through audit-shared/, a TypeScript library whose source files are schema, anchor, id, serialize and index, so audit files written from Obsidian and the web viewer are byte-identical in shape. That shared library is the most concrete design decision in the repository: two clients, one serialization path, no format drift between them.

## Installing the skill and running a first ingest

Installation is a directory copy. The README gives two targets, one for Claude skills and one for Codex, and then says to reference the skill in your agent config or paste llm-wiki/SKILL.md into the agent context.

```bash
cp -r llm-wiki/ ~/.claude/skills/llm-wiki/
cp -r llm-wiki/ ~/.codex/skills/llm-wiki/
```

From there, scaffold a wiki. The script takes a path and a topic title and creates the directory structure the rest of the workflow expects.

```bash
python3 llm-wiki/scripts/scaffold.py ~/my-wiki "My Research Topic"
cp my-article.md ~/my-wiki/raw/articles/
```

Now hand the file to the agent with the phrase the README uses, then query the result. The agent writes the article, links it, and records the pass; you should see new Markdown under the wiki root rather than a chat answer that disappears.

```bash
python3 llm-wiki/scripts/lint_wiki.py ~/my-wiki
python3 llm-wiki/scripts/audit_review.py ~/my-wiki --open
```

lint_wiki.py is described as a seven-pass health check covering links, audit and log shape. audit_review.py groups open and resolved audits by target; with --open you see the unresolved ones before telling the agent to process them. For the browser view, build audit-shared first, then web, then start the server against a wiki root on port 4175.

```bash
cd web
npm start -- --wiki "/path/to/your/wiki-root" --port 4175
```

## The parts the README leaves thin

The README calls the skill experimental and says it will iterate over time, which is a fair description of a project whose last push was on 2026-04-16. There are no releases, and the README does not document a migration path for the wiki schema or for audit files if schema.ts, anchor.ts or serialize.ts change. Since the audit format is defined in code rather than in a versioned specification, an upgrade of audit-shared is the point where previously filed comments could stop parsing. Verify that yourself before you accumulate months of audits.

The licence line in the README says MIT, but the repository metadata carries no licence identifier, so the authoritative text is the LICENSE file if one exists at the root. On the tooling side, the web viewer is a local Node.js server bound to 127.0.0.1:4175 in the README example, not a hosted service, and there is no authentication described. The Obsidian plugin must be built from source and linked into a vault, then enabled under Community plugins; it is not distributed through the community plugin directory as far as the README shows. Finally, the skill depends on an agent that reads SKILL.md. Outside OpenClaw and Codex, you are pasting the file into a context window and losing the surrounding conventions.

## How it differs from karpathy-kb and Astro-Han's implementation

The README points at three related projects, and the differences are structural rather than cosmetic. pedronauck/skills karpathy-kb is described as a full Obsidian vault integration, which makes the vault the primary surface; here Obsidian is one of two feedback clients sitting on top of a directory tree that also renders in a browser. Astro-Han/karpathy-llm-wiki is called an example implementation, so it demonstrates the pattern rather than packaging it as a skill with scripts for scaffolding, linting and audit review.

The third, qmd, solves a different problem: semantic search for Markdown wikis. It is a retrieval layer over files that already exist. llm-wiki-skill is the layer that produces and maintains those files in the first place, which is why the README lists qmd under tooling tips rather than as an alternative. If your wiki is already written and you only need to search it, qmd is the closer fit. If the writing, linking and bookkeeping are the work you want to delegate, this skill is aimed at that.

## Maintenance cost and licence implications

Two runtimes are in play. The scripts are Python, invoked as python3 llm-wiki/scripts/scaffold.py, lint_wiki.py and audit_review.py. The audit library and both clients are TypeScript built with npm, and the web viewer needs audit-shared built before web, because the client bundle depends on the shared library. An upgrade therefore means rebuilding audit-shared and then both consumers, and the README does not state whether old audit files remain readable after that. Budget for that on every pull.

The README states MIT. If the repository root has no LICENSE file matching it, treat the README line as the only statement available and confirm before redistribution. MIT is permissive, so the practical constraint is not copyleft but the absence of a versioned format: your wiki content is plain Markdown you own, while the audit file shape is whatever audit-shared currently serializes. If you fork, keep the shared library as the single writer so the Obsidian and web paths stay identical, which is the property the README claims for them.

## Conclusion

Adopt it if you already run an agent that reads SKILL.md files and you want a wiki that accumulates rather than a retrieval index that is rebuilt. Skip it if you need a stable file format, a published schema version, or a supported plugin: the README calls the skill experimental, the audit file format lives in audit-shared/src, and the last push to the repository was on 2026-04-16, so nothing here is frozen. Before committing, run scaffold.py on a throwaway directory, ingest one source, and inspect what lint_wiki.py reports on the generated links and audit shape.

## FAQ

### What does llm-wiki-skill do?

It is an Agent Skill for OpenClaw or Codex that compiles raw sources into a persistent, cross-linked Markdown wiki instead of re-retrieving documents on every query. It ships with scripts for scaffolding, linting and audit review, an Obsidian audit plugin, and a local Node.js preview server.

### Is llm-wiki-skill worth it?

That depends on whether the same subject is revisited over weeks, which is the case the README lists for research deep-dives, personal wikis, team knowledge bases and reading companions. The README labels the skill experimental, so weigh that against a workflow you intend to keep for a long time.

### How do I install llm-wiki-skill for Claude or Codex?

The README copies the skill directory into the agent's skills folder, either ~/.claude/skills/llm-wiki/ or ~/.codex/skills/llm-wiki/, and then has you reference it in the agent config or paste llm-wiki/SKILL.md into the agent context. After that you scaffold a wiki with scripts/scaffold.py.

### Does llm-wiki-skill work in Obsidian?

Yes, through plugins/obsidian-audit/, which is built from source with npm and linked into a vault, then enabled as 'LLM Wiki Audit' under Settings and Community plugins. It writes anchored audit files into audit/ using the same TypeScript library as the web viewer.

### What port does the llm-wiki-skill web viewer use?

The README starts the server with npm start -- --wiki "/path/to/your/wiki-root" --port 4175 from the web directory and opens http://127.0.0.1:4175. The server is local and the README describes no authentication.

## Sources

- [Issues](https://github.com/lewislulu/llm-wiki-skill/issues)
- [lewislulu/llm-wiki-skill on GitHub](https://github.com/lewislulu/llm-wiki-skill)
- [README](https://github.com/lewislulu/llm-wiki-skill/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/lewislulu-llm-wiki-skill
