reader3 README

The project's README from github.com/karpathy/reader3. As one markdown file: README.md.

reader 3

reader3

A lightweight, self-hosted EPUB reader that lets you read through EPUB books one chapter at a time. This makes it very easy to copy paste the contents of a chapter to an LLM, to read along. Basically - get epub books (e.g. Project Gutenberg has many), open them up in this reader, copy paste text around to your favorite LLM, and read together and along.

This project was 90% vibe coded just to illustrate how one can very easily read books together with LLMs. I'm not going to support it in any way, it's provided here as is for other people's inspiration and I don't intend to improve it. Code is ephemeral now and libraries are over, ask your LLM to change it in whatever way you like.

Usage

The project uses uv. So for example, download Dracula EPUB3 to this directory as dracula.epub, then:

uv run reader3.py dracula.epub

This creates the directory dracula_data, which registers the book to your local library. We can then run the server:

uv run server.py

And visit localhost:8123 to see your current Library. You can easily add more books, or delete them from your library by deleting the folder. It's not supposed to be complicated or complex.

License

MIT

reader3 (karpathy/reader3)

books
Searching Database…

3.9K ·GitHub
What is this?A lightweight, self-hosted EPUB reader by Andrej Karpathy that shows a book one chapter at a time, making it easy to paste a chapter to an LLM and read along together.
So is this a website, a desktop app, or something for my e-reader?You run it yourself: it's a small self-hosted web app — start the server on your machine, open localhost:8123 in a browser, and it shows your books as a library.
How do I get my first book into it?The project uses uv: download an EPUB into the project folder (e.g. as dracula.epub), run the ingest step to register it — that creates a draculadata folder — then start the server and open localhost:8123.
What do I need to have installed before running it?Just Python tooling via uv — the whole project is Python and runs through uv, and the README names no other prerequisites.
Is this a finished, supported product?No. Karpathy built it as a quick illustration, 90% vibe coded, and says he won't support or improve it — it's provided as-is for other people's inspiration.
How does the LLM part work — do I need an API key?No. There's no LLM integration built in — you copy-paste a chapter's text to your favorite LLM yourself and read along with its replies.
Where can I get EPUB books to read?The README suggests Project Gutenberg, which has many free EPUBs; any EPUB you place in the project directory can be ingested the same way.
How do I add or remove books from my library?Ingest additional EPUBs the same way as the first; each book lives in its own folder (e.g. draculadata), and deleting that folder removes the book from the library.
Why did Karpathy build this?As a quick illustration of how easily one can read books together with LLMs — it was 90% vibe coded, meant as inspiration rather than a supported product.
Creator
karpathy
Size
0.3 MB
Stars
3.9K
Updated
CommitNov 18
Age
10mo
Commits · 90 Days