Project · open source soon
thinkery
A local-first reader for learning from books. Read an epub, mobi or PDF, highlight as you go, and turn what you marked into flashcards. Every book, highlight, note and card is plain text under git.
Personal project · August 2026 – now · Python
The idea
Capturing highlights is easy. Knowing months later why you marked something is not. In thinkery, each highlight is classified the moment you make it, with one keystroke, and the type decides where the passage goes once you finish reading:
| Key | Type | Marks | Goes to |
|---|---|---|---|
| 1 | know | a name, definition or claim | a flashcard |
| 2 | do | something to be able to perform | practice, never a card |
| 3 | case | a concrete example | held until it can be paired with another |
| 4 | vocab | a word you didn’t know | its own deck |
| 5 | keep | a line you liked | nowhere |
Every card links back to the highlight it came from, so “what did I mark and never turn into a card?” has an answer. That list is the drafting queue.
What it does
- Reader. A local web app for epub, mobi and PDF, with keyboard-driven selection, notes, per-chapter reading passes and the macOS dictionary built in.
- Ledger. Before you read a chapter, Claude maps the terms it uses in its own way and the claims it makes. Your highlights are then placed on that map.
- Cards. Claude drafts cards from your highlights; you edit them and push them to Anki, with a dry run first.
- PDFs. Pages are drawn rather than parsed. A highlight is a rectangle, transcribed afterwards and stored with a hash of the exact crop that was read.
Design choices
- Nothing on the reading path calls a model. Reading, highlighting and notes work offline; model tasks run separately.
- Decisions are append-only. Undo writes the opposite decision rather than erasing the first, so the record of your reading is never lost.
- Books are write-once. Each file is hashed at import, and highlights are anchored to character offsets that are never silently re-anchored.
- Standard library only. That includes a mobi-to-epub converter written from scratch, whose output is audited for lost text and was checked character for character against the reference implementation.
- Tested. Hundreds of test cases, including browser tests that drive a real Chrome.