Vibeleaderboard
Index / tool
Visit github.com
Category
Education
Rank
No. 1331Tools index

Previous survey · No. 1337 ·

Pricing
Open Source
Type
TOOL
Builder
karpathy
Date

About

Andrej Karpathy's quick illustration of reading books together with LLMs — annotate, ask questions, discuss as you go.

What it does

Reader3 converts an EPUB into a small local web library. It extracts metadata, chapters, navigation structure, images, cleaned HTML, and plain text, then serves each section through a browser with table-of-contents and previous-or-next navigation.

Why it's ranked here

This is a convincing small prototype because its entire workflow stays understandable: preprocess a book, start a local server, and read. Its value lies in simplicity and hackability, not completeness. The author explicitly provides it without support or plans for improvement.

What's good

The parser preserves EPUB reading order, handles nested navigation, supplies a fallback when navigation is absent, rewrites image references, and removes scripts, forms, frames, styles, and other unwanted elements. A ten-book cache avoids reading serialized book data from disk on every page request.

Tradeoffs

LLM interaction is entirely manual through copying and pasting. There is no built-in chat, annotation system, search interface, or model integration shown. Importing recreates the book’s output directory, storage relies on Python pickle files, and navigation anchors are discarded when table-of-contents entries open a section.

How to use it well

Use it for private, local reading experiments where chapter-sized browser pages make manual LLM conversations convenient. It also suits engineers wanting a compact base to modify. Do not choose it for maintained ebook library management, integrated AI discussion, durable annotations, or a supported end-user product.

Technical notes+

reader3.py uses EbookLib and Beautiful Soup to parse EPUB metadata, spine documents, TOC entries, and images; it sanitizes content, extracts plain text, and serializes a Book with pickle. server.py exposes FastAPI HTML routes, scans _data directories, caches up to ten loaded books, and serves extracted images after basename normalization. templates/reader.html builds the spine map in JavaScript for TOC navigation, while templates/library.html renders discovered books. pyproject.toml requires Python 3.10 or newer and declares Beautiful Soup, EbookLib, FastAPI, Jinja, and Uvicorn. uv.lock records resolved dependencies.

Observed

License
MIT
Primary language
Python
Runtime
Python 3.10 or newer
Packaging and install surface
uv project with dependencies declared in pyproject.toml and resolved in uv.lock
Interfaces
Command-line EPUB preprocessing plus a self-hosted browser interface on localhost
Storage model
Processed books are stored in per-book data directories with extracted images and serialized pickle data

Read from README.md, pyproject.toml, server.py, reader3.py, uv.lock, .python-version, templates/reader.html, templates/library.html.

What it can do

  • Annotate books while reading

    Book text and user annotationsAnnotated book with highlighted sections and notes

  • Answer questions about book content

    User questions about the bookAI-generated answers based on book context

  • Facilitate discussion about book topics

    Book content and discussion promptsInteractive conversation about book themes and concepts

  • Provide real-time reading assistance

    Current reading position and user queriesContextual explanations and clarifications

  • Generate insights about book passages

    Selected text sections from the bookAI analysis and interpretation of the content

Tags

llmreadingbookskarpathyeducation

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.