← Docs hub

Setup Guide — Your First LLM Wiki in 15 Minutes

This is the end-to-end tutorial for getting llmwiki running on your machine and deployed to GitHub Pages. By the end you'll have:

Prerequisites: Python 3.9+, git. That's it. No Node, no Docker, no database.


Part 1: Initial setup (5 minutes)

1.1 Clone the repo

git clone https://github.com/Pratiyush/llm-wiki.git
cd llm-wiki

1.2 Run the setup script

macOS / Linux:

./setup.sh

Windows:

setup.bat

1.3 What just happened

The setup script does 5 things:

  1. Creates the 3-layer directory structure per Karpathy's LLM Wiki pattern: - raw/ — immutable session transcripts (Layer 1) - wiki/ — LLM-maintained pages (Layer 2) - site/ — generated HTML (Layer 3)
  2. Installs llmwiki in editable mode (pip install -e .)
  3. Detects your coding agents and enables matching adapters - Looks for ~/.claude/projects/, ~/.codex/sessions/, ~/Documents/Obsidian Vault, etc. - Lists which ones are ready, which need paths configured
  4. Offers to install the SessionStart hook into ~/.claude/settings.json - When accepted, every claude code session auto-syncs on launch
  5. Runs a first sync so you see output immediately

1.4 First sync

llmwiki sync

Output looks like:

  Claude Code: 142 sessions converted
  Codex CLI:    17 sessions converted
  Cursor:        4 sessions converted
  summary: 163 converted, 0 unchanged, 2 live, 4 filtered, 0 errors

live means a session was active in the last 60 min — skipped for safety. Your raw/sessions/ directory now has one YYYY-MM-DDTHH-MM-project-slug.md file per session.

1.5 First build

llmwiki build

Output:

  discovered: 163 sources across 12 projects
  wrote site/ (163 sessions, 12 project pages, 1.4 MB HTML)
  wrote search-index.json (45 KB meta) + 12 chunks (220 KB total)

1.6 First serve

llmwiki serve
# → http://127.0.0.1:8765

Open that URL in your browser. You should see:

llmwiki home page


Part 2: Understanding the output

2.1 Directory anatomy

llm-wiki/
├── raw/                          # Layer 1: immutable session transcripts
│   └── sessions/
│       └── 2026-04-15T10-30-my-project-feature-x.md
├── wiki/                         # Layer 2: LLM-maintained wiki (gitignored)
│   ├── index.md                  # catalog of every page
│   ├── log.md                    # append-only operation log
│   ├── overview.md               # living synthesis
│   ├── dashboard.md              # Dataview dashboard (v1.0)
│   ├── MEMORY.md                 # cross-session state (v1.0)
│   ├── sources/                  # one page per raw transcript
│   ├── entities/                 # people, tools, orgs, projects
│   ├── concepts/                 # ideas, patterns, frameworks
│   └── categories/               # tag-based indexes
└── site/                         # Layer 3: generated static HTML
    ├── index.html
    ├── sessions/<project>/<slug>.html
    ├── sessions/<project>/<slug>.txt    # AI-consumable sibling
    └── sessions/<project>/<slug>.json   # AI-consumable sibling

2.2 What a session detail page shows

session detail page

2.3 What a project detail page shows

project detail page

2.4 What the home page shows

home page


Part 3: Deploying to GitHub Pages

3.1 Push to GitHub

# If you forked the repo
git remote set-url origin https://github.com/<your-user>/llm-wiki.git
git push

# Or create a new repo for your wiki
gh repo create my-llm-wiki --public --source=. --push

3.2 Enable Pages

Settings → Pages → Build and deployment: - Source: GitHub Actions - (Leave everything else default)

3.3 The Pages workflow auto-deploys

The repo ships .github/workflows/pages.yml. On every push to master:

  1. Seeds raw/sessions/ from examples/demo-sessions/ (never your personal data)
  2. Runs llmwiki build
  3. Uploads site/ as a Pages artifact
  4. Deploys to https://<user>.github.io/<repo>/

Important: The public deploy uses demo data, NOT your personal sessions. Your actual raw/ and wiki/ folders are gitignored by default. You ONLY ship screenshots/examples publicly — your sessions stay local.

3.4 Visit your site

https://<your-user>.github.io/llm-wiki/

First deploy takes 30-60 seconds. Check Actions tab for progress.


Part 4: Customization

4.1 Add a project topic

Create wiki/projects/my-project.md:

---
title: "my-project"
type: entity
entity_type: project
project: my-project
topics: [python, api, fastapi]
description: "My FastAPI CRUD service"
homepage: "https://github.com/me/my-project"
---

Rebuild and reload — the project card now shows topic chips.

4.2 Add a model entity

llmwiki ships structured model schemas. Create wiki/entities/MyModel.md:

---
title: "MyModel"
type: entity
entity_type: tool
entity_kind: ai-model
provider: MyProvider
model: {"context_window": 200000, "license": "proprietary", "released": "2026-04-01"}
pricing: {"input_per_1m": 3.00, "output_per_1m": 15.00, "currency": "USD", "effective": "2026-04-01"}
modalities: [text, vision]
benchmarks: {"gpqa_diamond": 0.82, "swe_bench": 0.65}
---

# MyModel

## Connections
- [[Anthropic]]

Rebuild — a /models/ page appears listing every model entity. Pairs are auto-rendered at /vs/ for benchmark comparison.

4.3 Use Obsidian

llmwiki link-obsidian --vault ~/Documents/"Obsidian Vault"

This symlinks the whole project into your vault. Now: - Graph view shows every [[wikilink]] - Backlinks panel shows citing pages - Dataview queries in wiki/dashboard.md render live

See ../obsidian-integration.md for plugin configs.

4.4 Structured search (Cmd+K command palette)

Press Cmd+K (macOS) or Ctrl+K (Linux/Windows). Try:

Query What it does
flutter Full-text match
type:session Only session pages
project:my-project Filter by project
model:claude-sonnet-4 Filter by model
date:2026-04 Date prefix match
confidence:>0.8 High-confidence pages (v1.0)
lifecycle:verified By lifecycle state (v1.0)

4.5 Export for other tools

llmwiki sync --vault ~/Documents/"Obsidian Vault"   # vault sync (replaces removed export-obsidian)
llmwiki export llms-full-txt                          # paste into any LLM
llmwiki export jsonld                                 # schema.org graph
llmwiki export rss                                    # RSS 2.0 feed

The export-obsidian, export-qmd, and export-marp subcommands were removed in v1.2.0. See docs/UPGRADING.md for migration paths.


Part 5: Multi-agent setup

llmwiki works with Claude Code, Codex CLI, Copilot Chat, Copilot CLI, Cursor, Gemini CLI, Obsidian, and PDFs — all in one wiki. Each session gets an agent badge on the site so you know which AI produced which transcript.

5.1 Enable multiple agents

The setup script detects what's installed. To force-enable:

llmwiki adapters

Shows default availability + configured state. Enable opt-in adapters in examples/sessions_config.json:

{
  "meeting": { "enabled": true, "source_dirs": ["~/Meetings"] },
  "jira": { "enabled": true, "server": "https://me.atlassian.net", "email": "me@x.com", "api_token": "..." },
  "web_clipper": { "enabled": true, "watch_dir": "raw/web" }
}

The pdf adapter that used to live here was removed in the simplification sweep.

5.2 Share slash commands across agents

mkdir -p ~/.claude/commands
cp .claude/commands/wiki-*.md ~/.claude/commands/

Copies the .claude/commands/wiki-*.md files into your global Claude Code commands dir. For Codex CLI / Cursor / other agents, copy them into the appropriate skill directory for that tool — the file format is portable.

5.3 Cross-platform paths

OS Claude Code Codex CLI Cursor
macOS ~/.claude/projects/ ~/.codex/sessions/ ~/Library/Application Support/Cursor/User/workspaceStorage/
Linux ~/.claude/projects/ ~/.codex/sessions/ ~/.config/Cursor/User/workspaceStorage/
Windows %USERPROFILE%\.claude\projects\ %USERPROFILE%\.codex\sessions\ %APPDATA%\Cursor\User\workspaceStorage\

llmwiki auto-detects all of these — you usually don't need to configure paths manually.


Next steps

If you hit a snag, check GitHub Issues or file a new one.