free · open source · nothing leaves your machine

Every rabbit hole you ever
went down, searchable.

Ingest your whole history: browsers, archives, saves, AI chats, notes. Then ask questions about yourself and find the things you forgot you loved.

One SQLite file. UI on 127.0.0.1. Works offline.

Two minutes to your archive

Copy, paste, done. km finds your export files by itself and asks before ingesting anything.

brew install uvthe package manager
git clone https://github.com/joeamroo/knowledgemaxxing && cd knowledgemaxxing
uv sync --all-extrasone command, everything
uv run km discoverfinds your archives
uv run km ingestbuilds the database
uv run km uiopens at 127.0.0.1:8765
km onboarding: drag and drop your archive exports straight into the local web UI

Not a terminal person past this point? The UI takes it from here: drag your export zips straight in.

Feed it your whole history

Drop in the exports every platform already owes you: drag them straight into the web UI, or let km discover find them on disk. Then it keeps itself current: km sync pulls fresh browser history, notes, and new exports on a schedule. Zips welcome, duplicates merged, provenance kept for every item.

Chrome history Google Takeout X likes + bookmarks r/Reddit saves YHN favorites Substack saves ChatGPT export Claude export Apple Notes Bookmarks + Pocket

The archive
remembers.

Search is only half of it. km reads fifteen years of traces back to you, month by month, and tells you what it sees.

Every line here is a real kind of finding, generated as Markdown reports on your own machine.

2019-03
You discovered gwern.net and never really left.
2021-11 · rewind
34 searches about sourdough. The obsession lasted five weeks.
reading debt
3,456 things saved and never opened. About nine hours to repay.
rhythms · 02:00
Your most active hour of the decade is two in the morning.
recurring thread
"How does spaced repetition work," asked in three different years.
on this day · 4 years ago
You bookmarked How to Do Great Work at 1:47 am. Still unread.
km stats page: archive counts, monthly accumulation, activity heatmap

Then it talks back.

This is why km exists. Once fifteen years of you sit in one place, an AI can finally read all of it and hold up a mirror: your patterns, your loops, the gap between what you say you want and where the hours went.

I keep saying 2025 was a wasted year.
harsh mentorYour own notes disagree. In March you wrote "ship the project before asking anyone's permission," then spent April asking permission. That is not a wasted year, that is a pattern with a name. Want to look at it?

km mentor

A full reading of the archive by a psychoanalyst or a harsh mentor. It cites your own notes back to you.

km talk

Ongoing conversations that remember. Four voices: companion, analyst, harsh mentor, and a future-planning strategist grounded in your real trajectory.

km themes

Labels every month of your life with what it was actually about, and names your repeated loops.

km reflect

A short AI reflection on your last few weeks: what preoccupied you, one pattern you missed, one question worth sitting with.

km wrapped --ai

Your year in review closes with a paragraph on what the year meant, written from your own traces.

km ask --ai

Half-memories, found: hybrid retrieval plus Claude picking the likeliest match with a line of reasoning.

All of it opt-in, with your own Anthropic key. Every paid run shows a cost estimate first, and only item text is ever sent, never files, paths, or identity.

Private by construction

Local-first, alwaysOne SQLite file. The UI binds to 127.0.0.1 and makes no external calls.
Nothing ingests silentlyDiscovery writes a manifest you review before anything is parsed.
AI is opt-inYour own API key, a cost estimate first, and only item text ever sent.
Your sessions, your browserScrapers use a dedicated local profile and stop cleanly on challenges.