Readwide is a local-first Android reader and file browser for TXT, Markdown, PDF, EPUB, Word-family documents, HWP/HWPX, images, comic archives, and common archive workflows. It supports local reading, recent files with reading-history search, bookmarks, folder shortcuts, file search and type filtering, in-document text search (including find inside PDFs), archive browsing, archive-backed image viewing, multi-select file operations, local copy/move/delete/extract/compress queues, and text-to-speech with a sleep timer, pause/resume, and a floating on-screen control. TXT keeps an exact source-page reader model; Markdown uses a rendered WebView visual-page model. PDF in-document find works on digital (text-based) PDFs; scanned or image-only PDFs are not searched, and OCR is not included. HWP/HWPX is text-first and read-only through Apache-2.0 Java libraries, not Hancom-compatible layout rendering or editing. RAR/CBR is read-only and limited: some archives may not open, and full RAR compatibility is not guaranteed. EPUB offers independent text size, spacing and alignment controls, searchable contents and marked-footnote text popups for supported books. Ready horizontal single-pane sections can show within-section progress; this is not an exact whole-book page count. Fixed-layout, image and vertical sections retain layout restrictions. The default build does not request INTERNET permission and does not include ads, analytics, telemetry SDKs, Firebase, Google Play Services, an account system, cloud sync, an in-app update checker, or a developer-operated upload backend. Android Auto Backup is disabled. Broad file access is used for local file browsing and management of selected folders and files. Files opened into Readwide from other apps are copied into an app-private cache with filename sanitization, a path check, and a 2 GB per-file limit, and JSON backup import is capped at 256 MB. Read-aloud passes spoken text to the installed Android speech engine. A network-required voice can use that engine's online service; choose an offline voice for local synthesis. The engine's own data handling applies. JSON backups include reading metadata and durable TXT Contents options/manual/hidden entries, not document files, imported fonts or storage permissions. Path/content-bound records may not apply after moving or changing a document. Readwide uses the Android applicationId com.readwide.manager; older TextView Reader builds used com.textview.reader and install as a separate app. The F-Droid build is signed by F-Droid and does not update in place over Readwide APKs from GitHub, which use a different signing key. To switch builds, export a JSON backup from the old one, install the new one, then import the backup to restore bookmarks, reading positions, themes, and settings.
First release: Nov 8, 2026, 1 total release.
Most recent release: Nov 8, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Nov 8, 2026 1.0.22## Readwide 1.0.22 - 2026-11-08 ### TXT navigation and saved data - Release failed exact-page index and load/search requests so later requests can retry. Ignore queued or late work from failed requests. - Return to the current page start on a backward tap after a blank or short row, matching normal TXT behavior. - Preserve bookmark and reading-position stores after read or parse failures. Require complete stores before edits, backup export or import. - Cancel rejected backup tasks before startup and keep a running import's lock through commit or rollback. ### Settings and backup recovery
More…
- Group reading controls, button order, files/archives, security/folder permissions and backup/reset by purpose. View settings groups text size, TXT/EPUB layout and reader display; detailed help opens separately. - Add per-viewer tap zones that follow TXT or retain independent orientation and proportions. Include the choices in backup/reset while keeping existing defaults. - Use aligned, compact two-line tap-profile rows and left-aligned folder entries. Tighten backup-control spacing and show the installed version beside App information, with a smaller gap before the update link. - Keep saved timeout values after reset/import and screen recreation. Attempt rollback on failed preference changes and leave failed reset confirmation open. - Show EPUB custom-font discovery failures while retaining built-in choices and allowing retry. ### Storage access and file operations - Manage registered folders under Settings > Security and folder permissions > Folder access. Add, open or revoke individual grants without deleting files; earlier registrations remain available. - Add provider-backed copy, move, rename, delete and new-folder actions. Offer folder authorization after eligible failures on internal shared storage and detected SD/USB volumes, without replaying the failed operation. - Recheck selected sources, copied bytes, destination contents and provider capabilities. Preserve remaining originals, changed backups and uncertain outputs when a transfer cannot be safely completed. - Retain provider operations through rotation and keep folder grants while they are in use. Reject stale dialog callbacks, changed overwrite targets and incomplete provider metadata. - Detect additional mounted SD/USB volumes, refresh discovery on return and avoid sidebar rebuilds for unchanged content. - Complete failed folder loads, reject obsolete results and cancel superseded provider queries. Retry reloads the listing without repeating file operations. ### Image controls - Fit images between visible controls without decoding them again. Preserve zoom and short-image vertical position where the visible bounds allow. - Tighten filename, page-counter and slider spacing while retaining system insets. - Allow previous/next taps through empty bottom-panel app space and limit page selection to the centered label. Slider dragging remains separate. ### Archive handling - Validate RAR3/RAR4 header CRC boundaries, read each encrypted header's salt, retain full-width service sizes and reject overflowing RAR5 integers. - Preserve password requests and distinguish missing volumes or truncated payloads from unsupported decoding. Allow checked unsplit AES-stored solid members and skip stored data without temporary decoded files. - Correct EGG encryption-header lengths and AZO's seven-bit history index. Six public AZO samples now match Bandizip's names and bytes, including four that previously failed. - Report rejected EGG/ALZ ZipCrypto passwords through password retry and reject nonempty directory payloads without changing valid EGG solid ownership. - Reuse checked supplemental 7z headers, buffer packed checksum reads and avoid a redundant AZO input copy. Close split input and allocated inflater resources after construction failures. - Recheck original source volumes before decoder retry and output acceptance. Stop ZIP creation on detectable source edits while preserving existing destinations. - Correct fixture/report path handling and failure reporting; skipped samples remain separate from passed checks. ### Release boundary - Version `1.0.22 / 10022` keeps exact page boundaries and counts, partition behavior, half-visible-row selection, existing bookmark coordinates, dependency versions and signing configuration. - Scoped host comparisons cover retained RAR, EGG, ALZ and 7z samples. They do not establish complete encrypted/split/solid/VM compatibility, a current APK build or device validation. - See [release notes](docs/GITHUB_RELEASE_NOTES_READWIDE_1_0_22.md), [development changes](docs/DEV_CHANGES_1_0_22.md), [source status](docs/CURRENT_SOURCE_STATUS_1_0_22.md) and [release readiness](docs/RELEASE_READINESS_1_0_22.md) for behavior, implementation details, open findings and outstanding checks.