Working prototypeTools & apps
Local Reader
Free, private text-to-speech for webpages and PDFs, running on your own GPU.

Why it matters
Local Reader puts a high-quality speech model inside the browser. Click any sentence and it starts reading there, highlighting as it goes, on the GPU through WebGPU with a CPU fallback.
- 01
Start anywhere
Alt+click any sentence on a page or in a PDF and reading starts there, with the spoken sentence highlighted.
- 02
Private and unlimited
The speech model runs on your own computer. No text is sent anywhere, and there is nothing to pay for.
- 03
A player that stays out of the way
A side panel and a small in-page player, with 28 voices and speeds from 0.75× to 2×.
The details
Open any part for the full story.
Features5
- Click any sentence, or Alt+click, to start reading from there, with the spoken sentence highlighted.
- A PDF reader: click anywhere on a page and reading starts at the nearest sentence.
- A side panel and an in-page mini player.
- Instant previews of all 28 English voices.
- Global shortcuts, speed control with time-stretching, bookmarks, pasted-text reading and audio export.
How it works
- All synthesis runs in an offscreen document, with the service worker as the single source of truth for playback.
- The ONNX runtime is bundled locally to satisfy Manifest V3's ban on remote code.
- Lookahead adapts to playback speed, and long sentences are split so audio stays gapless on a small GPU.
Technology
- TypeScript
- Vite
- Manifest V3
- Kokoro-82M
- Transformers.js
- ONNX Runtime Web
- WebGPU
- PDF.js
Development notes
My part
Sole builder.
Status and context
- Status
- PrototypeSideloaded build
- When
- Sep 2026 — Oct
- Kind
- Tools & apps
Who it’s for
People who listen to long articles and PDFs, and would rather the text stayed on their own computer.
The problem it solves
Good cloud voices are paid and metered, and they mean sending everything you read to someone else's server.
Screens
An article page with Local Reader's floating dark mini player, its speed menu open at 2×
1 / 4





