Everyone Should Have a Personal AI Wiki
Over the last few months I’ve been using a personal AI wiki, based on an idea Andrej Karpathy posted. It basically acts as a personal knowledgebase of the interesting work, articles, things I’ve built, and notes on how I think. It’s a supercharged LLM that learns and adapts to what I’ve found important and relevant.
Most of my thinking now happens in the wiki. If I’m researching a topic or working through a decision, I start there, and it brings back the articles and notes I saved on that subject, even the ones I had forgotten I read, and ties them into what I’m doing now. I use it as a playground for ideas, and when I’m ready to execute on one, the plan I work from is already in the wiki.
The whole thing is a git repository of markdown files. My job is to decide what goes in and to ask questions. An LLM does the rest, which means all of the writing and upkeep of the wiki itself. Using it feels a lot like a normal chat with Claude or ChatGPT, with the difference that the answers come out of a wiki made from my own reading and notes.
Zettelkasten on Steroids
In 2021 I wrote about the zettelkasten method and was confident I’d be building one for the rest of my life. The principles still hold up. You keep one collection of notes for life, each note holds a single idea, every note links to others, and everything is written in your own words. The tedious part is the upkeep. Every note has to be written by hand, every backlink found and added, and you have to remember what is already in there to connect anything new to it. All of that work was on me, and the method only pays off for as long as you keep doing it.
The personal AI wiki is the zettelkasten on steroids. It is the same method with the same principles, and the upkeep is handed to agents. The writing, the backlinking, and the remembering are now the model’s job, and what’s left for me is choosing what goes in and asking good questions.
Where the Idea Comes From
The idea comes from Karpathy’s post about using LLMs to build personal knowledge bases for the topics he was researching. His setup came down to a few ideas:
- Source documents go into a folder and never get modified.
- An LLM compiles those sources into a wiki of markdown files, with summaries, backlinks, and concept pages, and it does all of the maintenance. In his words, “I rarely touch it directly.”
- A schema document tells the model how the wiki is structured and how to maintain it.
- Questions get answered from the wiki, and the good answers get filed back into it so it keeps growing.
- No RAG or vector database was needed. An index and short summaries were enough for the model to find what it needed at his scale of about 100 articles.
I started mine the week after he posted, and it has grown past that size without needing anything more than the index.
The format is being standardized as well. Google published the Open Knowledge Format in June, a spec for exactly this kind of LLM-maintained wiki, and OpenKnowledge followed with an app and a linter built around it. Karpathy had ended his post saying there was room for a real product here instead of a hacky collection of scripts, and the spec and the tooling are the start of that. Since that is where the pattern is heading, I migrated my wiki to OKF this week. Most of the work was converting links and frontmatter, and now any tool that understands the spec can read it.
How It Works
The repository has three layers.
raw/ Source documents. Never modified. Articles, threads, reference notes, my own captures.
wiki/ Everything the AI compiles: a summary per source, concept pages, analyses, an index per directory, a log.
CLAUDE.md The schema. Page format, linking rules, and the ingest, query, and lint workflows in plain English.
Everything I do with it comes down to three skills, each a slash command in Claude Code:
/ingesttakes a URL or a file, saves the full text intoraw/, writes a summary page, creates or updates the concept pages it touches, cross-links them, and regenerates the index./queryreads the index, pulls the relevant pages, and answers with citations back to wiki pages and raw sources. When the answer is worth keeping, it gets filed back as its own analysis page, so the next question starts from where the last one ended./lintis the health check. It runs a small script that makes sure links resolve, citations point at a real source, and the index is up to date. Then the model reads through the wiki for the things a script can’t catch, like pages nothing links to, pages that contradict each other, pages that are past their review date, and topics that come up everywhere but don’t have a page of their own yet.
Each page has a short description at the top, a list of related pages, and footnotes pointing at its sources, and each folder has an index that lists its pages with a one-line description. When I ask a question, the model reads the index, opens the pages that look relevant, and follows the links from there. With a few hundred pages that has been enough for it to find what it needs, including things I read years ago and had forgotten about.
Researching Something I Have Nothing On
Sometimes the topic I want to look into is one the wiki has nothing on yet, because I haven’t read about it myself. When that happens I work in a different order. I ask the agent to do deep research on the topic and give me a reading list of articles covering the things I need. I read them myself first, and only the ones I like get ingested, so the wiki ends up holding what I agree with rather than everything the search turned up. Once those are in, I kick off the analysis the same way as for any other topic.
What I’ve Used It For
- Building products and features. I have a lot of articles on good design and system architecture in there, so when I start something new the wiki pulls what I’ve read alongside my own notes on similar problems, and I begin from a good foundation instead of from memory.
- Finances. I used it to review my entire investment portfolio, my cash flow, and how I should be investing, and I’ve run individual stock ideas through the framework it built out of the investing essays I had ingested.
- Buying a house. I’m hoping to buy a home in the coming years, and as a first-time buyer I didn’t know much, so I wanted to start the search already educated. I read and ingested a set of articles and had the wiki help me build a framework for analyzing home prices, loans, HOA fees, and the rest. Also, because it already had my entire financial history, it could work out how a purchase would affect my investments and where I should pull the money from. Having the finances and the house research in the same wiki paid a compounded dividend.
There is a lot more I could list, but those are a few real examples where the wiki has been incredibly beneficial.
Setting One Up
Setting one up is easy because you can have an agent do it for you. Create an empty git repository, open it in Claude Code or whichever coding agent you use, and send it this prompt.
I want to build a personal AI wiki in this repo. The pattern comes from
Andrej Karpathy's post (https://x.com/karpathy/status/2039805659525644595)
and the files should follow the Open Knowledge Format
(https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md).
Read the spec before you start.
What I want it to do:
- I save articles, notes, and anything else I want to remember. You turn
them into a wiki I can ask questions of, and you keep it connected and
up to date. I never edit the wiki by hand.
- When I ask a question, answer it from the wiki with citations, and file
answers worth keeping back into the wiki as new pages so it keeps growing.
Structure:
- raw/ holds the original source documents. Never modify anything in it.
- wiki/ is yours to maintain. Follow the OKF spec: markdown pages with YAML
frontmatter, one summary page per source, concept pages that connect
sources, analysis pages for answers I want to keep, an index.md in every
directory, and a log.md that records every change. Use standard relative
markdown links, not wikilinks. Every claim cites its source.
- CLAUDE.md (or AGENTS.md) is the schema. Write down the page format, the
linking rules, and the workflows below so every future session follows them.
Workflows, each as a slash command:
- /ingest: given a URL or file, save the full text to raw/ (fetch pages
through https://r.jina.ai/<url> so nothing gets summarized away), write
the source summary, create or update the concept pages it touches,
cross-link them, regenerate the index, and log it.
- /query: read the index, pull the relevant pages, answer with citations,
and offer to file the answer as an analysis page.
- /lint: report broken links, missing citations, orphan pages, stale index
files, and concepts mentioned across pages that don't have a page yet.
Set all of this up now, then walk me through ingesting my first article.
raw/ is the original text.I hope you enjoy building your own as much as I’ve enjoyed mine. Go forth and prosper.
// END