{"id":50912964,"url":"https://github.com/Aryan-Raj3112/episteme","last_synced_at":"2026-07-04T04:01:06.836Z","repository":{"id":340557055,"uuid":"1165671069","full_name":"Aryan-Raj3112/episteme","owner":"Aryan-Raj3112","description":"A multi-platform document and e-book reader.","archived":false,"fork":false,"pushed_at":"2026-06-26T07:48:45.000Z","size":59460,"stargazers_count":974,"open_issues_count":112,"forks_count":46,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-06-26T09:34:25.149Z","etag":null,"topics":["android","ebook","epub","foss","jetpack-compose","kotlin","linux","opensource","pdf","reader","windows"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aryan-Raj3112.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"CLA.md"},"funding":{"github":["Aryan-Raj3112"],"patreon":"epistemereader"}},"created_at":"2026-02-24T12:21:11.000Z","updated_at":"2026-06-26T08:28:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Aryan-Raj3112/episteme","commit_stats":null,"previous_names":["aryan-raj3112/episteme"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/Aryan-Raj3112/episteme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aryan-Raj3112%2Fepisteme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aryan-Raj3112%2Fepisteme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aryan-Raj3112%2Fepisteme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aryan-Raj3112%2Fepisteme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aryan-Raj3112","download_url":"https://codeload.github.com/Aryan-Raj3112/episteme/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aryan-Raj3112%2Fepisteme/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35021372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ebook","epub","foss","jetpack-compose","kotlin","linux","opensource","pdf","reader","windows"],"created_at":"2026-06-16T12:00:30.074Z","updated_at":"2026-07-04T04:01:06.823Z","avatar_url":"https://github.com/Aryan-Raj3112.png","language":"Kotlin","funding_links":["https://github.com/sponsors/Aryan-Raj3112","https://patreon.com/epistemereader","https://www.patreon.com/c/epistemereader"],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n  \u003ch1\u003e\n    \u003cimg src=\"docs/ICON.png\" height=\"48\" width=\"48\" align=\"absmiddle\" alt=\"Episteme Reader Icon\"/\u003e\n    \u003cspan\u003e\u0026nbsp;Episteme Reader\u003c/span\u003e\n  \u003c/h1\u003e\n\n  \u003cp\u003eA modern, offline-first, privacy-focused document and e-book reader for Android and desktop, built with Kotlin Multiplatform and Compose.\u003c/p\u003e\n\n  \u003ca href=\"https://epistemereader.com\"\u003e\u003cimg alt=\"Download from epistemereader.com\" src=\"https://img.shields.io/badge/Download-epistemereader.com-2f6f5e?style=for-the-badge\" height=\"44\" align=\"absmiddle\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://f-droid.org/packages/com.aryan.reader.oss/\"\u003e\u003cimg alt=\"Get it on F-Droid\" src=\"https://f-droid.org/badge/get-it-on.png\" height=\"66\" align=\"absmiddle\"/\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://play.google.com/store/apps/details?id=com.aryan.reader\"\u003e\u003cimg alt=\"Get it on Google Play\" src=\"https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg\" height=\"44\" align=\"absmiddle\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/Aryan-Raj3112/episteme\"\u003e\u003cimg alt=\"Get it on Obtainium\" src=\"https://raw.githubusercontent.com/ImranR98/Obtainium/main/assets/graphics/badge_obtainium.png\" height=\"64\" align=\"absmiddle\"/\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" align=\"center\"\u003e\n      \u003cimg src=\"docs/EPISTEME.png\" alt=\"Episteme Reader on Android\"/\u003e\n      \u003cbr/\u003e\n      \u003csub\u003eAndroid\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\" align=\"center\"\u003e\n      \u003cimg src=\"docs/EPISTEME_desktop.png\" alt=\"Episteme Reader on desktop\"/\u003e\n      \u003cbr/\u003e\n      \u003csub\u003eDesktop\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Overview\n\nEpisteme Reader is a customizable reader for documents, e-books, comics, and text-heavy files. The app is designed around local-first reading, deep typography controls, flexible layouts, and a consistent Kotlin Multiplatform core across Android and desktop.\n\nThe same core reading experience is available across editions. The main differences are distribution channel, network access, and whether proprietary online services are included.\n\n## Core Features\n\nAvailable across supported editions unless noted in the edition table:\n\n* **Formats:** PDF, EPUB, MOBI/AZW3, FB2, DOCX, ODT/FODT, TXT, Markdown, HTML, and comic archives.\n* **Reading modes:** Paginated reading, vertical scroll, PDF multi-tab reading, PDF reflow, auto-scroll, and musician mode.\n* **PDF tools:** Ink annotations, highlighting, erasing, text annotations, and reading-focused PDF controls.\n* **Customization:** App themes, reader themes, custom local fonts, typography controls, spacing, margins, and layout tuning.\n* **Library tools:** Local folder sync, library organization, bookmarks, progress tracking, and file management.\n* **Accessibility:** System text-to-speech, app language selection, and reader settings that adapt to different reading preferences.\n\n## Editions\n\n| Edition | Platform | Network access | Distribution | Notes |\n|---|---|---|---|---|\n| **Play Store** | Android | Online-capable | [Google Play](https://play.google.com/store/apps/details?id=com.aryan.reader) | Full Android release with proprietary extras such as ML Kit OCR, cloud sync, AI tools, cloud TTS, and PDF bubble zoom. |\n| **OSS** | Android | Online-capable | [epistemereader.com](https://epistemereader.com), [GitHub](https://github.com/Aryan-Raj3112/episteme/releases), [F-Droid](https://f-droid.org/packages/com.aryan.reader.oss/), [Obtainium](https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/Aryan-Raj3112/episteme) | Fully open-source Android build with OPDS, downloadable fonts, and BYOK access to AI and cloud features. |\n| **OSS Offline** | Android | Offline-only | [epistemereader.com](https://epistemereader.com), [GitHub](https://github.com/Aryan-Raj3112/episteme/releases), [Obtainium](https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/Aryan-Raj3112/episteme) | Open-source Android build with network permissions removed. |\n| **Standard** | Desktop (Linux, Windows) | Online-capable | [epistemereader.com](https://epistemereader.com), [GitHub](https://github.com/Aryan-Raj3112/episteme/releases) | Full-featured desktop release with the shared KMP reader core and online-capable services. |\n| **Offline** | Desktop (Linux, Windows) | Offline-only | [epistemereader.com](https://epistemereader.com), [GitHub](https://github.com/Aryan-Raj3112/episteme/releases) | Desktop build focused on local reading with online services disabled. |\n\nFuture desktop platforms can use the same Standard and Offline model as support expands.\n\n## Languages\n\nEpisteme Reader currently supports: English, Arabic, Belarusian, German, Spanish, Estonian, French, Hindi, Indonesian, Italian, Japanese, Korean, Dutch, Polish, Portuguese (Brazil), Russian, Turkish, Ukrainian, Vietnamese, and Chinese Simplified.\n\nWant Episteme Reader in another language? Please request it through [GitHub Issues](https://github.com/Aryan-Raj3112/episteme/issues/new/choose) or start a thread in [Discussions](https://github.com/Aryan-Raj3112/episteme/discussions).\n\n## Building from Source\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Aryan-Raj3112/episteme.git\n   cd episteme\n   ```\n\n2. Build Android:\n   * Open in Android Studio and run the `ossDebug` or `ossOfflineDebug` variant, or\n   * Build from the command line:\n     ```bash\n     ./gradlew assembleOssDebug\n     ```\n   The APK will be generated at:\n   `app/build/outputs/apk/oss/debug/Episteme-oss-v{version}-oss-debug.apk`\n\n3. Build desktop:\n   ```bash\n   ./gradlew :desktopApp:packageReleaseDistributionForCurrentOS\n   ```\n   For the offline desktop build, pass:\n   ```bash\n   ./gradlew :desktopApp:packageReleaseDistributionForCurrentOS -PdesktopFlavor=oss\n   ```\n\n## Open Source Libraries\n\nPowered by the Kotlin, Android, and desktop OSS ecosystem:\n\n* **Core and UI:** Kotlin Multiplatform, Compose Multiplatform, AndroidX, Jetpack Compose, Kotlinx Serialization\n* **Document engines:** PdfiumAndroidKt, PDFium, libmobi\n* **Parsers:** Jsoup, Flexmark, Apache Commons Compress\n* **Media and image loading:** Coil, Media3\n* **Utilities:** Room, Timber, JNA\n\n## Contributors\n\n| Contributor | Contribution |\n|---|---|\n| \u003cimg src=\"https://github.com/CCerrer.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"CCerrer avatar\"\u003e [CCerrer](https://github.com/CCerrer) | Testing and QA |\n| \u003cimg src=\"https://github.com/ottozumkeller.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"ottozumkeller avatar\"\u003e [ottozumkeller](https://github.com/ottozumkeller) | German translation |\n| \u003cimg src=\"https://github.com/TURBOKANTR.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"TURBOKANTR avatar\"\u003e [TURBOKANTR](https://github.com/TURBOKANTR) | Turkish translation |\n| \u003cimg src=\"https://github.com/eyadalkordy24.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"eyadalkordy24 avatar\"\u003e [eyadalkordy24](https://github.com/eyadalkordy24) | Arabic translation |\n| \u003cimg src=\"https://github.com/berebara.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"berebara avatar\"\u003e [berebara](https://github.com/berebara) | Russian translation |\n| \u003cimg src=\"https://github.com/mh4ckt3mh4ckt1c4s.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"mh4ckt3mh4ckt1c4s avatar\"\u003e [mh4ckt3mh4ckt1c4s](https://github.com/mh4ckt3mh4ckt1c4s) | French translation |\n\n## Supporters\n\nThank you to the people helping keep Episteme Reader moving:\n\n| Supporter | Platform |\n|---|---|\n| \u003cimg src=\"https://github.com/Myshadowslullaby.png?size=48\" width=\"24\" height=\"24\" valign=\"middle\" alt=\"Myshadowslullaby avatar\"\u003e [Myshadowslullaby](https://github.com/Myshadowslullaby) | GitHub Sponsors |\n\n## Support the Project\n\nHelp make Episteme Reader better:\n\n* [Sponsor on GitHub](https://github.com/sponsors/Aryan-Raj3112)\n* [Support on Patreon](https://www.patreon.com/c/epistemereader)\n* Star the repository to help visibility\n* Report bugs or request features via [GitHub Issues](https://github.com/Aryan-Raj3112/episteme/issues/new/choose)\n* Share feedback in [Discussions](https://github.com/Aryan-Raj3112/episteme/discussions)\n* Leave a review on the [Google Play Store](https://play.google.com/store/apps/details?id=com.aryan.reader)\n* Tell a friend\n\n## License\n\nLicensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). See the [LICENSE](../LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAryan-Raj3112%2Fepisteme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAryan-Raj3112%2Fepisteme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAryan-Raj3112%2Fepisteme/lists"}