Material You 3 eBook/audiobook reader — Episteme fork + bookshelf-api/ABS
* add a UI trigger for demo annotations * Implement internal link navigation * Simplify bottom padding logic in `EpubReaderScreen` for vertical scroll mode * Add support for Calibre metadata * Implement advanced library management with Room-backed collections, tags, and smart rules. * Display book series information in book details and remove tags from home screen * Implement zoom reset functionality in PDF viewer * Add a "Pages" thumbnail view to the PDF navigation drawer * Implement jump-back navigation in PDF viewer * MainViewModel: disable FolderSyncWorker, add log export, and enhance PDF position logging * Replace Gson with Kotlin Serialization in SmartCollectionEngine * Implement ONNX-based speech bubble detection * Implement speech bubble detection in PDF viewer * Implement "Smart Comic Zoom" feature for PDF manga/comic reading * Implement reader session persistence and restoration in `MainViewModel` * Add tap-to-turn page feature to PDF viewer * Improve book cache management and recovery * Refactor top overlay padding logic in `PdfViewerScreen` * Implement stylus eraser support in PDF reader * Refactor ReaderTextFormatPanel to use ModalBottomSheet and add new formatting controls * Introduce a customizable horizontal margin setting for the EPUB reader * Refine folder sync and metadata handling for better conflict resolution and stability. * Introduce user-adjustable image scaling for the EPUB reader * Use maxWidthPx as default width fallback for blocks * Improve cross-page text selection and header styling in the paginated reader * Refactor speech bubble detection and UI to support segmentation masks and interactive scaling * Improve speech bubble detection masking and rendering quality * Update ONNX speech bubble detector to use `.ort` model and optimize inference * Improve pagination accuracy * Implement hierarchical folder navigation for the library. * Refactor library item layout for improved space efficiency * Add support for browsing and downloading Google Fonts * Persist library landing state and add shelf search functionality * Fix base tts sample. * Move SpeechBubbleDetector to main source set and update ONNX dependency * Implement a "locate" feature and improve synchronization for TTS (Text-to-Speech) playback across EPUB and PDF readers. * Refine TTS synchronization and voice management in the EPUB reader * Adjust OCR checks for OSS flavor and optimize external dictionary intent flags * Add "Locate" button to PDF drawer's pages tab and move the page number to bottom right of thumbnail * fix various crashes * Refactor SpeechBubbleDetector into product flavors * Implement speech bubble detection caching and background prefetching * Implement on-demand download for Bubble Zoom ML model * Add smooth animation for PDF speech bubble expansion * fixes #252 * hide Google Fonts option, in FontsScreen, for offline variant * Bump version to 1.0.46(46) |
||
|---|---|---|
| .github | ||
| app | ||
| docs | ||
| fastlane/metadata/android/en-US | ||
| gradle | ||
| spotless | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle.kts | ||
| CLA.md | ||
| CONTRIBUTING.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
Episteme Reader
A modern, offline‑first, privacy‑focused document & e‑book reader for Android, built with Kotlin and Jetpack Compose.
Overview
Episteme Reader is an offline-first reader for documents and e‑books 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, ODT/FODT
- E‑books: 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
- Offline‑first: 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
-
Clone the repository:
git clone https://github.com/Aryan-Raj3112/episteme.git cd episteme -
Build:
- Open in Android Studio and run the
ossDebugvariant, 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 in Android Studio and run the
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
| Contributor | Contribution |
|---|---|
| Testing & QA | |
| Translation (German) | |
| Translation (Turkish) | |
| Translation (Arabic) |
Translations
Help translate Episteme Reader into your native language! Weblate is used to manage localization.
License
Licensed under the GNU Affero General Public License v3.0 (AGPL‑3.0). See the LICENSE file.
Support the Project
Help make Episteme Reader even better.
- ❤️ Sponsor on GitHub
- ⭐ Star the repository to help visibility
- 🐞 Report bugs or request features via GitHub Issues
- 💬 Share feedback in Discussions (ideas/UX): Discussions
- ✍️ Leave a review on the Google Play Store
- 📣 Tell a friend!

