JevReader documentation
How JevReader parses PDFs locally, analyzes bounded source passages and turns structured judgements into a focused reading view.
What JevReader does
JevReader is an extractive reader. It does not ask Jev to write a summary or rewrite your document. Instead, the browser keeps the original PDF and Jev returns structured judgements about selected source sentences: importance, relevance to your reading objective, whether a sentence is essential, and its semantic role.
Opening a PDF
Choose a PDF with Open a PDF, or drop one onto the landing page. The browser computes a SHA-256 document identifier, loads the PDF with PDF.js, and renders the first page while a separate Web Worker continues extracting text and coordinates. No account is required.
The current pilot is designed for text-based PDFs. Scanned or image-only PDFs, password-protected PDFs, handwritten documents, EPUB and DOCX files are not supported, and OCR is not included.
Reading objectives
Before analysis begins, choose one of the built-in objectives: learn the subject, quick overview, interview preparation, exam preparation, practical implementation, revision or research. You can also enter a custom objective. The objective changes how Jev evaluates the same original passages.
How the local document model works
JevReader maps each extracted sentence back to its page, paragraph, section and PDF rectangles. This mapping lets the reader draw highlights over the rendered page, lets an Essential Extract jump to the source page, and lets export place the same highlights on a new PDF copy.
Parsing is progressive: sections and pages appear as they are read. Back matter such as contents, references, bibliography and indexes is excluded from automatic highlights when it can be identified reliably.
Analysis and caching
Analysis is sent in bounded batches of up to eight sentences. The browser sends sentence IDs, the selected source text and the reading objective to the JevReader API. The server constructs the approved Jev questions, keeps the API key secret, validates the request and returns structured results. It does not receive the PDF file or filename.
Completed section results are saved in IndexedDB and keyed by the document hash, objective and analysis version. If you open the same document and choose the same objective on the same browser, completed analysis can be reused locally. Failed sections can be paused, retried and resumed without discarding completed passages.
Focus modes and semantic categories
Focus modes are local filters over completed analysis. Choose 5%, 10%, 20%, 40% or Full. Ranking combines Jev's structured signals in application code and applies a per-paragraph density cap to reduce repetitive selections. Changing the mode does not call Jev again.
Highlight colors describe a passage's role rather than simply its rank: core concept, definition, rule or principle, constraint or warning, trade-off, practical insight, procedure, evidence, example, background or conclusion. The legend can hide categories from the reading view.
Essential Extract
The right-hand panel shows a short extract made from original sentences that scored highly. Click an extract to jump to its page. It is deliberately not a generated summary: every displayed word comes from the document you opened.
Find
The search control currently provides exact-text find over the locally parsed source sentences and shows matching page numbers. A future semantic-find mode may rank passages for a natural-language question, but that is not part of the current pilot.
Exporting a highlighted PDF
Choose the download button after analysis. JevReader loads the original PDF bytes in the browser, draws the visible semantic highlights with pdf-lib, and downloads a new file ending in .jevreader.pdf. The original file is not overwritten and no upload is needed for export.
Keyboard controls
| Key | Action |
|---|---|
← / → | Previous or next PDF page |
1–4 | 5%, 10%, 20% or 40% Focus mode |
5 | Full view |
Limits and failure handling
Reading does not depend on successful Jev analysis. If a request times out or a section fails, the PDF remains available, completed sections stay saved locally, and the interface offers retry. The pilot also enforces bounded request size, sentence count, question count, origin checks, a timeout and a concurrency ceiling.
Source and status
JevReader is an early public pilot deployed at jevreader.indiana.workers.dev. Its current implementation uses React, TypeScript, Vite, PDF.js, pdf-lib, IndexedDB, Web Workers, Hono and Cloudflare Workers. The product is under active development; see the changelog for the current release boundary.