Readest is a modern open source ebook reader designed for readers who want more than a basic EPUB viewer. It combines support for multiple ebook and document formats with annotations, customizable reading layouts, text-to-speech, translation, side-by-side reading, library management, and cross-device synchronization. It is available across Windows, macOS, Linux, Android, iOS, and the web.
Readest is built around the idea of making digital reading feel consistent across devices. Instead of maintaining separate applications for desktop, mobile, and web reading, users can keep the same library and reading progress across supported platforms.
The project is a modern rewrite of Foliate and uses Next.js and Tauri as part of its technology stack. It is released under the AGPL-3.0 license, making the source code available for inspection, modification, and contribution.
Key Features of Readest
Wide Format Support
Readest supports a broad range of formats, including:
This makes it useful as a general reading application rather than an EPUB-only reader.
Customizable Reading Experience
Readers can adjust typography, fonts, margins, spacing, themes, and reading layouts. Both scrolling and paginated reading modes are available, allowing users to choose an experience that suits the book and device.
Parallel Reading
One of Readest's most interesting features is Parallel Read. It allows two books or documents to be displayed side by side with synchronized navigation.
This is particularly useful for comparing translations, studying textbooks, reading technical documentation, or working with two related documents.
Notes and Highlights
Readest provides tools for highlighting passages, creating notes, and bookmarking important sections. These features make it suitable for studying and research as well as casual reading.
Annotations can also be exported, while integrations with services such as Readwise and Hardcover provide additional ways to manage reading information.
Text to Speech
The built-in text-to-speech functionality allows users to listen to supported books instead of reading them manually. Readest supports on-device, browser, and cloud TTS options depending on the platform and configuration.
Translation and Lookup
Readers can select passages and use integrated tools for translation or terminology lookup without leaving the book. DeepL, Wikipedia, and Wiktionary integrations make this particularly useful for language learners and readers working with unfamiliar subjects.
Cross-Device Sync
Readest can synchronize reading progress, highlights, notes, and library information across supported devices. It also supports integration with OPDS catalogs and personal Calibre libraries.
The project also supports synchronization with KOReader, which is especially useful for users who read on dedicated e-ink devices.
Local-First Approach
Readest emphasizes privacy and control over personal reading data. The application can be used locally, while cloud synchronization is available when users want it. The project states that it does not require forced accounts or data harvesting.
Web Version
A web version makes it possible to access the reading experience without installing a desktop or mobile application. This complements the native applications and makes the platform more flexible for users working across different devices.
Download Readest v0.12.12 - Software Mirrors |
|---|
Readest v0.12.12 for WindowsReadest_0.12.12_x64-setup.exe | 55.21 MB Readest_0.12.12_x64-portable.exe | 88.12 MB Readest_0.12.12_arm64-setup.exe | 53.59 MB Readest_0.12.12_arm64-portable.exe | 79.3 MB |
Readest v0.12.12 for macOSReadest_0.12.12_universal.dmg | 67.51 MB |
Readest v0.12.12 for LinuxReadest_0.12.12_arm64.deb | 173.55 MB Readest_0.12.12_amd64.deb | 170.57 MB Readest_0.12.12_amd64.AppImage | 202.72 MB Readest_0.12.12_aarch64.AppImage | 193.86 MB Readest-0.12.12-1.x86_64.rpm | 135.63 MB Readest-0.12.12-1.aarch64.rpm | 134.13 MB |
Readest v0.12.12 for AndroidReadest_0.12.12_universal.apk | 205.59 MB Readest_0.12.12_arm64.apk | 54.36 MB |
Others Download related to Readest v0.12.12send-to-readest-0.2.1.zip | 467.07 kB Readest_0.12.12_universal.app.tar.gz | 67.1 MB Readest-0.12.12.crosspoint-plugin.zip | 8.27 kB Readest-0.12.12.calibre-plugin.zip | 43.62 kB Readest-0.12.12-1.koplugin.zip | 5.53 MB |
Readest v0.12.12 Source Code
Readest v0.12.12 Source code (zip)
Readest v0.12.12 Source code (tar.gz)
|
Readest v0.12.12 Release Notes: Release Highlights- Text-to-Speech: You can now listen sentence by sentence and loop a passage with A-B repeat, control playback from your desktop's Now Playing controls
- Reading: Added dialogue highlighting for quoted speech, a Column Gap setting for two-page spreads
- Sync: Added a Readest plugin for CrossPoint e-readers for reading progress sync
- Sync: You can now sync reading progress to Pagebound, sign in to Hardcover more easily, and note edits are no longer overwritten by older synced copies
- PDF: PDFs now blend smoothly with your reading theme with smart image inversion, show page thumbnails in the table of contents
- PDF: Highlighting and text selection on scanned PDFs is smoother and more accurate, and very large scanned pages no longer crash the reader on iOS
- Translation: You can now add your own translation providers with a reusable prompt library, look up words with an AI context dictionary
- Annotations: A global note now appears on every occurrence of its text, exports can include the sentence around each highlight
- Android: Added home screen widgets for your current book and bookshelf, automatic e-ink full refresh every few page turns
- More: Images now have a long-press and right-click menu to copy or save them, Windows shows PDF thumbnails in Explorer
What's Changed- fix(koplugin): fix sync on Android, library pull ANR, and Rescan library by @chrox in #6364
- chore(agent): add koreader-e2e skill for on-device plugin testing by @chrox in #6366
- fix(reader): fall back to saving a file when the gallery save fails by @chrox in #6367
- fix(windows): drop the broken native shadow on Windows 10 by @k6G52m4Dz75W in #6362
- perf(android): cut the arm64 apk from 90MB to 57MB by @chrox in #6368
- fix(build): repair the Docker and Nix builds after #6368 by @chrox in #6379
- fix(settings): reset update preferences with behavior settings by @hulkbig in #6369
- fix(android): open Readest from TTS media controls by @kelvinalfaro in #6370
- fix(reader): handle footnote links in paragraph mode by @hulkbig in #6365
- feat(reader): add dialogue highlighting for quoted speech by @WantenMN in #6376
- chore(deps): bump the github-actions group with 7 updates by @dependabot[bot] in #6387
- fix(annotator): clear the pre-drag range when a highlight is resized by @hulkbig in #6357
- fix(reader): keep the sidebar toggler in place when the sidebar opens by @chrox in #6435
- fix(payment): revoke one-time Stripe purchases on refund by @chrox in #6436
- fix(android): detect e-ink readers whose manufacturer prop reports the SoC vendor by @k6G52m4Dz75W in #6392
- refactor(settings): organize the font panel around the role each font plays by @k6G52m4Dz75W in #6325
- fix(settings): restore scroll position on reopen by @WantenMN in #6389
- fix(web): decode binary files read as text by @WestXu in #6402
- fix(library): skip copying a book file onto itself on import by @WestXu in #6403
- fix(backup): restore orphan books whose library row was deleted by @WestXu in #6405
- fix(sync): push existing notes on the first open of a book by @WestXu in #6404
- fix(reader): keep the footer clear of rounded screen corners on Android by @davidfvaquero in #6429
- perf(reader): parallelize the EPUB open path by @shiningsprk-arch in #6406
- fix(telemetry): stop PostHog traffic when the setting is off by @itsmunzir in #6434
- feat(widget): configurable Android bookshelf widget by @RedHatter in #6430
- fix(windows): draw the missing window frame on Windows 10 by @k6G52m4Dz75W in #6399
- fix(koplugin): prompt to log in again when the session has expired by @chrox in #6445
- fix(koplugin): avoid crash when synced position can't be resolved by @stantonb in #6441
- fix(sync): refuse Readest Cloud book uploads while Books sync is off by @chrox in #6446
- feat(widget): improve bookshelf widget configuration by @RedHatter in #6440
- feat(settings): reverse mouse wheel paging and hide e-ink bookshelf buttons by @chrox in #6448
- fix(reader): update chapter pages left on every page turn by @chrox in #6447
- fix(tts): let the play/pause media key resume TTS on desktop by @chrox in #6452
- fix(sync): stop creating OneDrive folders that Graph now rejects by @chrox in #6451
- fix(library): skip hidden subdirectories when scanning folders to import by @chrox in #6453
- docs(sync): make the write-parent precondition provider-neutral by @chrox in #6455
- fix(library): page the e-ink library with volume keys by @chrox in #6456
- feat(tts): native desktop Now Playing for macOS, Windows and Linux by @chrox in #6457
- fix(nix): add the desktop Now Playing crates to Cargo.cef.lock by @chrox in #6459
- fix(reader): turn the page when tapping a page-filling image by @chrox in #6458
- fix(library): skip per-book toasts for bulk downloads by @chrox in #6463
- feat(annotator): make keeping the selection after an instant lookup optional by @chrox in #6460
- fix(koplugin): remove sync response files left behind by exit-time syncs by @chrox in #6461
- fix(ios): resume audiobook natively after a CarPlay interruption ends by @chrox in #6462
- feat(reader): import MHTML web archives, closes #6413 by @chrox in #6464
- fix(annotator): close selection popup after choosing a highlight color by @kelvinalfaro in #6465
- fix(reader): close lookup popups when their selection is cleared by @chrox in #6467
- fix(sidebar): keep the annotations list still when the clicked note is visible by @chrox in #6468
- feat(tts): pause longer after questions, exclamations and ellipses, closes #6412 by @chrox in #6469
- fix(library): keep Date Read order when grouping, tagging or editing metadata by @chrox in #6470
- test(player): fix flaky podcast session-end tests by @chrox in #6472
- fix(reader): keep the footer clear of rounded screen corners on iPhone by @chrox in #6474
- fix(reader): hold the horizontal pan lock through momentum swipes on iOS by @chrox in #6475
- fix(reader): keep note editor and highlight toolbar open in footnote popups, closes #6395 by @chrox in #6477
- fix(transfer): allow uploads and downloads under a custom data location, closes #6383 by @chrox in #6478
- chore(agent): update agent memories by @chrox in #6479
- fix(library): center the empty library state again by @chrox in #6482
- ci(android): give the Android build step 90 minutes by @chrox in #6483
- fix: empty library state over a lingering search, and a dropped dictionary card tap by @chrox in #6485
- fix(backup): save iOS backups through the share sheet instead of hanging at 0%, closes #6375 by @chrox in #6486
- chore(linux): catch up the CEF runtime with upstream feat/cef, closes #6397 by @chrox in #6487
- fix(library): download selected Audiobookshelf items for offline from select mode by @chrox in #6489
- feat(backup): include reading statistics in library backups, closes #6488 by @chrox in #6490
- fix(reader): remove the line between zoomed images in Webtoon Mode, closes #6484 by @chrox in #6491
- test(paginator): rest before release so the drag test commits on distance alone by @chrox in #6493
- fix(desktop): open books in a new window after closing another reader, closes #6363 by @chrox in #6496
- fix(desktop): reopen the library when Readest is relaunched with only reader windows open, closes #6394 by @chrox in #6495
- fix(search): ignore soft hyphens when searching book text, closes #6384 by @chrox in #6494
- fix(ui): stop iOS 16 reloading to the library when a toggle or slider renders, closes #6355 by @chrox in #6497
- feat(annotations): optionally export the sentence around each highlight, closes #6352 by @chrox in #6498
- feat(tts): skip Hanja glosses after Hangul in Korean text by @chrox in #6500
- feat(annotator): show a global note on every occurrence of its text, closes #6186 by @chrox in #6501
- feat(settings): give Nearby BookDrop its own section in Integrations, closes #6360 by @chrox in #6499
- fix(ios): keep swipe brightness in sync with the system brightness, closes #6374 by @chrox in #6502
- feat(android): probe Hanvon eink service for full refresh by @k6G52m4Dz75W in #6505
- fix(reader): animate page turns for PDF and comics on Windows and Linux, closes #6380 by @chrox in #6506
- fix(reader): stop the sidebar-width flash on Windows and Linux page turns by @chrox in #6509
- feat(annotator): edit highlight ranges and notes inside footnote popups, closes #6504 by @chrox in #6510
- fix(reader): keep the selected word readable in dark mode, closes #6503 by @chrox in #6512
- fix(annotator): open imported highlights on tap, closes #6160 by @chrox in #6515
- fix(annotator): keep the highlight toolbar off the footnote popup, closes #6390 by @chrox in #6514
- feat(reader): show Duokan slim covers on tall mobile screens, closes #6513 by @chrox in #6516
- feat(reader): optionally mark italic text in dialogue highlighting, closes #6517 by @chrox in #6522
- fix(ios): keep chrome and page content clear of iPhone Duo's side status strip by @kad-air in #6312
- chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #6523
- feat(layout): Column Gap setting for two-column spreads by @kad-air in #6507
- fix(ios): hide the status bar through the view controller for Xcode 27 builds by @kad-air in #6508
- fix(android): focus the WebView on cold start so the first page-turn key isn't lost by @RedHatter in #6519
- feat(widget): currently reading Android widget and widget options by @RedHatter in #6518
- fix(pdf): stop huge scanned pages crashing or blanking the reader on iOS, closes #6521 by @chrox in #6526
- feat(android): automatic e-ink full refresh every N page turns by @k6G52m4Dz75W in #6525
- feat(sync): sync reading progress to Pagebound, closes #6511 by @chrox in #6528
- fix(reader): show Hardcover status on the sync row and push on tap by @RedHatter in #6527
- feat(windows): PDF thumbnails and Explorer preview pane, closes #6524 by @chrox in #6533
- feat(dictionary): look up Wiktionary in the book language's own edition, closes #6529 by @chrox in #6534
- fix(settings): align the BookOrbit sync rows with the rest of the card by @chrox in #6535
- fix(library): erase cloud progress and notes when purging reading data, closes #6532 by @chrox in #6536
- fix(epub): show whole pages of comics with unsized SVG page images by @chrox in #6537
- fix(bookorbit): list unmatched books for linking when only progress or stats sync is on by @chrox in #6539
- fix(calibre): push custom columns in the shape bookshelf filters read by @chrox in #6538
- fix(reader): remove note bubbles when deleting highlights by @kelvinalfaro in #6545
- fix(windows): stop the main window from growing on every launch by @k6G52m4Dz75W in #6546
- feat(pdf): smooth theme colors and smart invert for PDFs by @chrox in #6550
- fix(notes): keep note edits from losing to the synced copy they change, closes #6544 by @chrox in #6551
- feat(crosspoint): Readest plugin for CrossPoint e-readers by @chrox in #6547
- chore(agent): update agent memories by @chrox in #6554
- feat(reader): turn PDF pages with the mouse wheel in Fit Width mode by @chrox in #6555
- feat(reader): show PDF page thumbnails in the TOC, closes #6177 by @chrox in #6553
- fix(reader): keep PDF selections from jumping across text gaps, closes #5599, closes #4945 by @chrox in #6559
- feat(crosspoint): web-only sign-in, in-app linking, and recently read books first by @chrox in #6561
- fix(reader): drop the horizontal scrollbar from fit-width PDFs by @chrox in #6560
- fix(reader): stop the page container's fade on e-ink panels by @k6G52m4Dz75W in #6565
- fix(audiobookshelf): fetch a synced audiobook's cover before shelving it by @chrox in #6564
- feat(reader): copy and save book images from one right-click menu by @chrox in #6567
- fix(reader): keep a selection from jumping next to a footnote marker, closes #6566 by @chrox in #6569
- fix(crosspoint): paint /link in the user's theme by @chrox in #6570
- fix(reader): stop annotation cards expanding while scrolling on iOS, closes #6568 by @chrox in #6571
- fix(utils): treat Korean as CJK in getLanguageInfo by @sx4im in #6572
- fix(deps): resolve open Dependabot alerts by @chrox in #6573
- fix(reader): set plain-text footnotes in the reader font by @kelvinalfaro in #6575
- fix(reader): keep a linked footnote's font in its popup, closes #3602 by @chrox in #6580
- docs(readme): serve the Ask DeepWiki badge from shields.io by @chrox in #6585
- fix(reader): smooth highlights on scanned PDFs and keep ones dragged past a page's end, closes #6578 by @chrox in #6581
- fix(reader): keep the e-ink battery percentage readable at any charge by @chrox in #6588
- feat(reader): edit a book's metadata from Book Details in the reader, closes #6584 by @chrox in #6587
- fix(reader): select and deselect in the clicked chapter at scroll-mode boundaries, closes #6583 by @chrox in #6591
- fix(reader): keep the dragged range when a PDF instant highlight runs past the page by @chrox in #6597
- fix(windows): stop the PDF preview pane from freezing Explorer, closes #6590 by @chrox in #6594
- feat(crosspoint): plugin updates, version display, and sync for optimized EPUBs by @chrox in #6592
- feat(translation): custom translation providers with a prompt library by @chrox in #6582
- fix(reader): remember where a locked, zoomed PDF page is panned across reopening by @chrox in #6595
- feat(shortcuts): bind several keys to one action, closes #6600 by @chrox in #6603
- feat(reader): open the image menu with a long press on iOS and Android, closes #6574 by @chrox in #6601
- fix(koplugin): stop BookDrop start errors popping up on every launch by @chrox in #6604
- feat(reader): show a PDF's header and footer only at the page's own edges, closes #6596 by @chrox in #6605
- fix(reader): keep pull-to-bookmark off the top screen edge, enable it on e-ink, and size the ribbon consistently, closes #6599 by @chrox in #6606
- fix(reader): return to the open book when leaving the account page, closes #6607 by @chrox in #6609
- fix(reader): reject backslash redirects and retry failed books on return by @chrox in #6610
- feat(dictionary): context dictionary, closes #5544 by @nphng15 in #5881
- fix(crosspoint): link an optimized copy to the book being read when duplicates tie by @chrox in #6614
- fix(sync): don't let a deleted copy's position pull a new copy forward by @chrox in #6615
- fix(reader): apply scroll overlap to fixed-layout books only; tidy the fixed-layout view menu by @chrox in #6621
- fix(windows): show the main window only after the themed page is painted by @k6G52m4Dz75W in #6611
- fix(library): carousel cover spine, Rename Group, Import Books placement, reader return transition by @chrox in #6624
- fix(library): keep nested groups when renaming a group by @chrox in #6625
- feat(library): badge the series index on covers inside a series group by @kelvinalfaro in #6579
- fix(reader): keep scrolled PDFs smooth on iOS: virtualize the strip, hide PDF chrome by layout by @chrox in #6626
- feat(tts): sentence-by-sentence mode and A-B repeat by @chrox in #6627
- feat(hardcover): sign in with OAuth using the device authorization flow by @RedHatter in #6612
- fix(hardcover): follow API rate limits and batch journal writes by @RedHatter in #6617
- fix(dictionary): lift dark text colors in dark mode by @itsmunzir in #6622
- fix(widget): keep E-ink reading widget text legible in dark mode by @chrox in #6628
- feat(library): hide the bookshelf page buttons by default on e-ink by @chrox in #6631
- fix(reader): save library progress before the app quits (#6623) by @chrox in #6633
- chore(agent): update agent memories by @chrox in #6634
- fix(import): pick the declared cover when holds an href by @chrox in #6635
- feat(hardcover): use the account's default visibility for new journal entries by @RedHatter in #6638
- fix(opds): load plain-http covers natively on iOS/macOS (#6637) by @chrox in #6639
- fix(library): keep the bookshelf column count while dragging a file in by @chrox in #6640
- fix(library): search book contents only within the opened group by @chrox in #6641
- fix(library): keep the shelf scroll position after opening a book by @chrox in #6642
- release: version 0.12.12 by @chrox in #6644
New Contributors- @hulkbig made their first contribution in #6369
- @WestXu made their first contribution in #6402
- @davidfvaquero made their first contribution in #6429
- @shiningsprk-arch made their first contribution in #6406
- @itsmunzir made their first contribution in #6434
- @RedHatter made their first contribution in #6430
- @stantonb made their first contribution in #6441
- @sx4im made their first contribution in #6572
- @nphng15 made their first contribution in #5881
Full Changelog: v0.12.10...v0.12.12 |
Performance and User Experience
Readest has a clean interface that focuses on reading rather than surrounding the user with unnecessary controls. The application feels closer to a modern productivity tool than a traditional ebook utility.
Its biggest strength is the combination of simple reading features with tools aimed at deeper study. Side-by-side reading, annotations, translation, TTS, and customizable typography make it useful for everything from casual novels to technical books and academic material.
The project is also developing quickly. Recent releases have improved library performance, PDF support, reading layouts, synchronization, OPDS management, and accessibility.
Because Readest is still actively evolving, users should expect some features and interfaces to change over time.
Pros
Free and open source.
Supports EPUB, PDF, MOBI, AZW3, FB2, CBZ, and TXT.
Available on Windows, macOS, Linux, Android, iOS, and the web.
Clean and customizable reading interface.
Side-by-side Parallel Read mode.
Highlights, notes, and bookmarks.
Text-to-speech support.
Translation and dictionary tools.
Cross-device synchronization.
OPDS and Calibre support.
KOReader synchronization.
Local-first and privacy-focused design.
Active development.
Cons
Some advanced functionality is still evolving.
Cloud-based features may require additional configuration or services.
Users looking for a very minimal ebook reader may find the feature set extensive.
The ecosystem is smaller than established commercial ebook platforms.
Who Should Use Readest?
Readest is an excellent choice for students, researchers, developers, language learners, academics, and anyone who reads across multiple devices.
It is particularly appealing to people who want more control over their ebook library while still having modern conveniences such as synchronization, text-to-speech, annotations, translation, and OPDS support.
For users who already have a Calibre library or use KOReader on an e-ink device, Readest is also worth considering because of its interoperability with those ecosystems.
Final Verdict
Readest is one of the most impressive open source ebook readers currently available. It combines the simplicity of a traditional reader with features normally found across several separate applications.
The ability to read multiple formats, compare books side by side, annotate documents, translate passages, listen through TTS, and synchronize reading progress across platforms gives Readest a strong advantage over basic ebook readers.
It is not simply trying to replace a conventional EPUB viewer. Its focus on deep reading, study, interoperability, and cross-platform access makes it a compelling choice for anyone who wants a more complete reading environment while keeping their books and data under their control.
Post a Comment/Report Broken Link: