Skip to content

manan0308/knowledge-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knowledge Base

A personal LLM-maintained wiki, inspired by Andrej Karpathy's LLM Wiki pattern.

You drop raw sources in — podcast transcripts, articles, blog posts, threads, notes — and a coding agent (Claude Code) reads them, builds an interlinked Obsidian vault, and keeps it current as you add more sources.

The wiki becomes a persistent, compounding artifact. Each page reads less like a summary and more like a Wikipedia article — synthesised across dozens of sources, with multiple points of view stacked side by side.

How it works

Three layers:

  1. raw/ — immutable source documents. The agent reads from here but never modifies.
  2. wiki/ — the agent-generated Obsidian vault. Entity, concept, topic, debate, and episode pages with full citations.
  3. CLAUDE.md — the operating manual. Tells the agent how to ingest sources, structure pages, and maintain the wiki.

Setup

Prerequisites

Install

git clone https://github.com/<your-username>/knowledge-base.git
cd knowledge-base

Open in Obsidian

  1. Launch Obsidian → Open folder as vault → select this directory.
  2. The wiki/ folder is what you'll mostly browse. Use the graph view to see how everything connects.

Wire up Claude Code

From the repo root, launch Claude Code:

claude

Claude Code automatically reads CLAUDE.md on startup and follows its operating instructions. That single file is what turns the agent from a generic assistant into a disciplined wiki maintainer.

Fetching sources

The scripts/ folder has a few small fetchers that drop content straight into raw/inbox/:

pip install -r requirements.txt
cp .env.example .env  # then edit .env

# Pull recent posts from any Substack / RSS feed (paywalled or public)
python3 scripts/fetch_substack.py --rss-url https://stratechery.passport.online/feed/rss/<your-token> --limit 20

# Pull captions from a YouTube channel (podcast or otherwise)
python3 scripts/fetch_youtube_captions.py --channel @DwarkeshPatel --limit 5

# Or batch a list of channels (edit the array inside the script)
./scripts/fetch_all_channels.sh 5

# Or pipe arbitrary text in as a note
pbpaste | python3 scripts/paste_ingest.py "my note title"

All fetchers write to raw/inbox/, where Claude Code picks them up on the next ingest.

How to use it

Ingest a new source

  1. Drop the raw content (transcript, article, note) into raw/inbox/.
  2. In Claude Code, say: "classify and route inbox" — the agent moves each file to the correct folder under raw/ and writes its metadata.yaml.
  3. Then say: "ingest the routed files" — the agent reads each source end-to-end and updates the wiki.

The agent will:

  • Create or update entity pages (people + orgs)
  • Create or update concept and topic pages
  • Detect debates between named people and create debate pages
  • Append every claim with full attribution (who said it, where, timestamp)

Ask questions

Ask the agent anything about the wiki's content. It reads index.md to find relevant pages, drills in, and synthesizes an answer with citations. Per Rule 6 in CLAUDE.md, useful answers can be filed back into the wiki as new pages — nothing evaporates into chat history.

Folder structure

knowledge-base/
├── CLAUDE.md           # Operating manual for the agent
├── README.md
├── index.md            # Auto-maintained catalog of all wiki pages (created on first ingest)
├── log.md              # Append-only activity log (created on first ingest)
├── raw/                # Immutable source documents
│   ├── inbox/          # Drop zone for unclassified sources
│   ├── podcasts/
│   ├── articles/
│   ├── blogs/
│   ├── notes/
│   └── threads/
└── wiki/               # Agent-generated Obsidian pages
    ├── sources/
    ├── entities/
    ├── concepts/
    ├── topics/
    ├── debates/
    └── episodes/

The nine rules

The wiki is governed by nine non-negotiable rules in CLAUDE.md. The most important:

  • Editor, not writer. Every claim must trace to something a real person said in a real source. No extrapolation.
  • Attribute everything. Every claim includes who said it, which source, and a timestamp or section anchor.
  • Topics are canonical, sources are accretive. The wiki is organized by topics — every new source contributes claims into existing pages instead of creating duplicates.
  • Flag, don't resolve. When two credible people disagree, create a debate page with both positions cited. Never editorialize.

Read CLAUDE.md in full before your first ingest.

License

MIT

About

LLM-maintained personal wiki. Drop in podcasts, articles, threads, or YouTube channels — agent reads end-to-end and builds cited, interlinked pages.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors