Material You 3 eBook/audiobook reader — Episteme fork + bookshelf-api/ABS
Find a file
Aryan 46620fa71a
V1.0.43 oss (#202)
* Added support for AI and Cloud credits in the Pro flavor.

* Implemented credit-based authentication and authorization for AI features and Cloud TTS.

* Updated AI feature access and purchase handling to a credit-based system.

* Refactored and enhanced the Text-to-Speech (TTS) system with persistent caching and a redesigned UI.

* Improved TTS cache management by organizing audio files by book title and adding a detailed cache storage UI.

* Refactored the TTS service to use a WebSocket-based Gemini Live connection for cloud audio generation.

* Removed the TTS cache settings tab and simplified voice sample playback by removing local caching logic.

* Implemented a low-latency streaming mechanism for Cloud TTS using a custom `ConcurrentInputStream` and `ExoPlayer` data source.

* Improved cloud TTS stability and prefetching logic in `TtsService` and `TtsPlaybackManager`.

* Implemented AI summarization caching and cost tracking in the EPUB reader.

* Enhanced chapter summary caching and UI feedback.

* limit summaries for pro users to 10 per day

* Implemented local caching for Cloud TTS audio chunks.

* Removed the Free tier tab from `ProScreen` and simplified the subscription interface. Updated tab logic to focus on Pro and Credits, including a new cost breakdown section for AI and Cloud TTS features.

* Refactored HTML parsing to include all child nodes during content chunking and semantic block parsing.

* Improved image rendering consistency in epub pagination reader

* Improved HTML parsing in `HtmlParser.kt` to better handle complex nested structures

* Improved CSS styling support in the epub paginated reader for word spacing and text decorations.

* Implemented scroll throttling in `epub_reader.js` to improve performance during scroll events

* Improved CFI resolution and scrolling reliability in EPUB reader

* Optimized PaginatedReader performance by caching text decorations.

* Implemented batching for recent file database operations to handle large datasets and introduced `RecentFileSummary` to optimize data retrieval by excluding heavy JSON columns.

* Improved navigation stability by wrapping `navController.navigate` and `popBackStack` calls in a try-catch block to handle `IllegalStateException` during concurrent transitions. Additionally, refined the backstack check for the main route to prevent redundant pops.

* feat(tts): redesign TTS controls with overlay UI and cache management

* Expanded and improved the TTS (Text-to-Speech) capabilities, particularly for Cloud voices.

* Improved TTS playback control and cache management.

* Integrated the TTS cache manager into the settings sheet and improved the TTS configuration UI.

* Updated `DeviceVoicesTab` to respect the current TTS mode, disabling voice selection when not in `BASE` mode.

* Improved error handling and state management for Cloud TTS in `TtsService` and `TtsPlaybackManager`.

* Improved TTS voice selection UI and sample playback logic.

* Updated `TtsUtils` and `TtsService` to remove `chunkIndex` from TTS cache filenames. Refined the cache file naming convention to rely on text and speaker hashes, and updated the cache file filter logic to correctly identify speakers in both legacy and new filename formats.

* Optimized tile rendering and state propagation in PDF viewer

* Added "Expand All", "Collapse All", and "Locate" functionality to the Table of Contents in both EPUB and PDF readers.

* Added sign-in requirement for credit purchases and improved purchase migration logic.

* Updated `EpubReaderTts` to support authenticated TTS requests by passing an auth token provider. The `ttsController.start` method now includes an `authToken` retrieved via `getAuthToken` and explicitly sets the `playbackSource` to "READER".

* feat(ai): replace summarization popup with a comprehensive AI Hub Bottom Sheet

* Improved locator logic and block traversal in `BookPaginator`.

* Updated AI features and Cloud TTS logic.

* Added manual clear and auto-reset functionality for AI summaries and recaps

* Optimized file importing, EPUB parsing, and TTS playback concurrency.

* Restricted TTS mode to BASE in OSS flavor and fixed TTS mode persistence in PDF viewer

* Bump version to 1.0.43(44)
2026-04-18 16:46:58 +05:30
.github ci: Add CLA Assistant workflow (#61) 2026-03-12 22:05:44 +05:30
app V1.0.43 oss (#202) 2026-04-18 16:46:58 +05:30
docs docs: Revamp README and add APK naming convention (#2) 2026-02-25 19:54:43 +05:30
fastlane/metadata/android/en-US update description, phone images and feature graphic in fastlane (#67) 2026-03-14 14:16:36 +05:30
gradle Initial commit 2026-02-24 17:37:40 +05:30
spotless Update readme (#3) 2026-02-25 21:30:28 +05:30
.gitignore docs: add CLA and CONTRIBUTING guidelines (#26) 2026-03-04 10:19:17 +05:30
build.gradle.kts docs: Revamp README and add APK naming convention (#2) 2026-02-25 19:54:43 +05:30
CLA.md docs: add CLA and CONTRIBUTING guidelines (#26) 2026-03-04 10:19:17 +05:30
CONTRIBUTING.md cla (#62) 2026-03-12 22:31:52 +05:30
gradle.properties Initial commit 2026-02-24 17:37:40 +05:30
gradlew Initial commit 2026-02-24 17:37:40 +05:30
gradlew.bat Initial commit 2026-02-24 17:37:40 +05:30
LICENSE Pdf text highlight (#49) 2026-03-09 17:37:44 +05:30
README.md Update localization section in README (#183) 2026-04-13 21:40:23 +05:30
settings.gradle.kts build: remove foojay-resolver-convention plugin for f-droid compliance (#12) 2026-02-27 15:08:39 +05:30

Episteme Reader Icon  Episteme Reader

A modern, offlinefirst, privacyfocused document & ebook reader for Android, built with Kotlin and Jetpack Compose.

Get it on F-Droid Get it on Google Play   Get it on Obtainium


Episteme Reader Preview

Overview

Episteme Reader is an offline-first reader for documents and ebooks on Android. It focuses on a clean and customizable reading experience.

Note: This is the Open Source (OSS) edition of Episteme Reader. The Google Play version is built from this core and may include additional proprietary features.

Features

Supported Formats

  • Documents: PDF, DOCX
  • Ebooks: EPUB, MOBI, AZW3, FB2
  • Comics: CBZ, CBR, CB7
  • Text: MD, TXT, HTML

Reading Experience

  • Themes (PDF & EPUB): Light, Dark, Sepia, OLED, Auto (system) and custom
  • PDF Modes: Vertical scroll and paginated view
  • EPUB Modes: WebView-based vertical scrolling and custom paginated engine
  • Custom Fonts: Import user-provided fonts (.ttf, .otf)
  • Typography: Adjustable font size, line spacing, and margins

Annotations (PDF)

  • Ink Annotations: Pen, Highlighter, Eraser
  • Text Annotations: Place notes anywhere, with system or custom fonts

Library & OPDS

  • Library: Built-in organization and quick access to your files
  • OPDS Support: Browse, search, and add books from OPDS 1.x/2.0 catalogs, with optional authentication

Accessibility & Utilities

  • Text-to-Speech (TTS): Read documents aloud using the system TTS engine
  • Offlinefirst: Core features work fully offline; no analytics or tracking

Architecture

  • UI: 100% Jetpack Compose (Material 3)
  • Pattern: MVVM with Unidirectional Data Flow
  • Database: Room (SQLite) for metadata and annotations
  • PDF Engine: pdfium-android (Native PDFium bindings)
  • EPUB Engine: WebView for vertical mode; custom renderer for paginated mode
  • MOBI/AZW3: Custom JNI bindings to libmobi
  • OPDS: Lightweight feed parsing and downloading (on-device)

Building from Source

  1. Clone the repository:

    git clone https://github.com/Aryan-Raj3112/episteme.git
    cd episteme
    
  2. Build:

    • Open in Android Studio and run the ossDebug variant, or
    • Build from the command line:
      ./gradlew assembleOssDebug
      

    The APK will be generated at:

    app/build/outputs/apk/oss/debug/Episteme-oss-v{version}-oss-debug.apk
    

Open Source Libraries

Powered by the Android OSS ecosystem:

  • Core & UI: AndroidX, Jetpack Compose, Kotlinx Serialization
  • Document Engines: PdfiumAndroidKt (PDF), libmobi (MOBI/AZW3), Google WOFF2 (fonts)
  • Parsers: Jsoup (HTML/EPUB), Flexmark (Markdown)
  • Media & Image Loading: Coil, Media3 (ExoPlayer)
  • Utilities: Room (Database), Timber (Logging)

Contributors

Translations

Help translate Episteme Reader into your native language! Weblate is used to manage localization.

Translation status

License

Licensed under the GNU Affero General Public License v3.0 (AGPL3.0). See the LICENSE file.

Support the Project

Help make Episteme Reader even better.