Repository navigation
Releases: JoshShearer/Read-Me
Release list
Read Me 1.1.0
Read Me Offline 1.1.0
- Read Me plays the speech itself, so media keys, the lock screen and headset buttons control it with any voice engine.
- Notes read from Obsidian through the bridge keep going with the screen off and with Obsidian in the background. This needs the Local TTS Reader plugin's matching version, which in turn needs this release.
- Continuous play: the next item starts sooner, and an open Reader follows it.
- Settings can switch back to the engine's default voice.
- TalkBack reads each paragraph's text. An item that can't be opened says so and offers Retry.
One APK per ABI; most phones want arm64-v8a. Check them against SHA256SUMS.
Read Me 1.0.5
What's new
- Continuous play (Settings, off by default): when an item ends, Read Me goes on to the next unread item in the list, with the screen off and without opening Trim. It stops after the last unread item, or when you pause.
- The app is now built with Java 21 (F-Droid's build image has no Java 17).
Downloads
One APK per processor type. Most phones need read-me-1.0.5-arm64-v8a.apk. SHA256SUMS lists their checksums.
Checked before release (2026-10-09)
- F-Droid's own build job, run in its buildserver image, gives the same APKs as these for all four ABIs, signatures aside.
- On a Pixel 9 Pro XL (Android 17): sharing, Trim, Reader, Settings, playback with the screen locked, resume after a kill, the Obsidian bridge, continuous play, and 10 minutes of reading in airplane mode with the screen off (sentence gaps p95 17 ms).
Read Me 1.0.4
A smaller app: the build now removes code the app never uses (R8). Each APK is about 3.5 MB smaller (12-17 MB). Node.js for the build now comes from Debian. Nothing else changed from 1.0.3.
Which APK: almost every current phone wants read-me-1.0.4-arm64-v8a.apk. Older 32-bit phones want armeabi-v7a; emulators and Chromebooks want x86_64 (or x86). Android refuses an APK that doesn't match the phone.
Install: check the file against SHA256SUMS (sha256sum -c SHA256SUMS --ignore-missing).
Signing certificate SHA-256: f730c468c33f4de8ec5b6917920399169ccdef2664def86ffc4f0dbe01535bf5 (same key as before, so it installs over earlier versions).
Verified on the reference device (arm64-v8a, 2026-10-08):
- Passed: start-up, sharing links and text, reading with the screen off (gaps p95 20 ms, no stalls), every screen including a cold speech engine, the Obsidian bridge, and Settings.
- Not run: the long acceptance runs (a locked-screen article read and 10 minutes in airplane mode).
- Rare, seen only on this build: in testing, a screen occasionally stayed blank after tapping an item (2 of 70 tries).
- Untested on a device: the 32-bit ARM and x86 APKs.
Built from c0fabcea287c5cbfe5285ff35ed60ef35b261e40. The build is reproducible: F-Droid's own build job, run in F-Droid's build image, produced each of the four APKs identical to these apart from the signature.
Read Me 1.0.3
Smaller download: one APK per processor type, about 16-21 MB each instead of 55 MB. The Hermes JavaScript compiler is now built from a pinned copy of its source in the repository. The app itself is unchanged from 1.0.2.
Which APK: almost every current phone wants read-me-1.0.3-arm64-v8a.apk. Older 32-bit phones want armeabi-v7a, and emulators or Chromebooks want x86_64 (or x86). Unsure? Install an app such as "Device Info" and look for the CPU ABI, or try arm64-v8a first: Android refuses an APK that doesn't match.
Install: check the file against SHA256SUMS (sha256sum -c SHA256SUMS --ignore-missing).
Signing certificate SHA-256: f730c468c33f4de8ec5b6917920399169ccdef2664def86ffc4f0dbe01535bf5 (same key as before, so it installs over 1.0.0-1.0.2).
Verified on the reference device: the arm64-v8a APK starts cleanly, and plays, pauses and resumes with the screen off (gaps p95 17 ms, no stalls). Its code is 1.0.2's, which carries 1.0.1's full acceptance. The 32-bit ARM and x86 APKs were not run on a device.
Built from e6100ef744aeb3ee74ff55e9cd93e08ddef87a14. The build is reproducible: F-Droid's own build job, run in F-Droid's build image, produced each of the four APKs identical to these apart from the signature.
Read Me 1.0.2
Same app as 1.0.1, rebuilt so F-Droid can publish it: the APK no longer carries an encrypted list of its dependencies that only Google Play can read (Android's build tools added it to 1.0.0 and 1.0.1). Nothing else changed.
New in 1.0.1, if you are coming from 1.0.0: share a .md or .txt file (for example from Obsidian) to read it as text; readable voice names and a voice dropdown; below Android 14 you can choose the speech engine; a new reading layout and controls. Fixes: a voice or engine change reaches a paused item and the Obsidian bridge; Play waits for a slow-starting engine; an engine that cannot be bound no longer crashes the app; screens stay above the gesture bar.
Install: download read-me-1.0.2.apk and check it against SHA256SUMS:
b3cfb797c498f67e81c450d6c263bd87d83566ca2443d6bdfa3b8f4e95981fa4 read-me-1.0.2.apk
Signing certificate SHA-256: f730c468c33f4de8ec5b6917920399169ccdef2664def86ffc4f0dbe01535bf5 (same key as before, so it installs over 1.0.0 or 1.0.1).
Verified on the reference device: 1.0.2 (2026-10-04): starts cleanly, and plays, pauses and resumes with the screen off (gaps p95 21 ms, no stalls). Its code is identical to 1.0.1's apart from the version number; 1.0.1 passed the full acceptance the same day: sharing, trimming, playback at 2x with the screen locked, resuming after the app is killed, 10 minutes in airplane mode (gaps p50 4 ms, p95 12 ms, max 19 ms, no stalls), and the Obsidian bridge contract. The plugin's own read on this device is not yet recorded.
Built from 40515c62e7caabab6e1ec7a83839e9d798ffe5e8. The build is reproducible: F-Droid's own build job, run in F-Droid's build image, produced an APK identical to this one apart from the signature.
Read Me 1.0.1
Share a .md or .txt file (for example from Obsidian) to read it as text. Voices show readable names and are picked from a dropdown; below Android 14 you can choose the speech engine. New reading layout and controls on every screen.
Fixes: a voice or engine change now reaches a paused item and the Obsidian bridge; Play waits for a slow-starting engine; an engine that cannot be bound no longer crashes the app; screens stay above the gesture bar.
Install: download read-me-1.0.1.apk and check it against SHA256SUMS:
8ae6c3cff7be655202ffbddb30830ad4330426a27036b128fe0a4bc4efdb912e read-me-1.0.1.apk
Signing certificate SHA-256: f730c468c33f4de8ec5b6917920399169ccdef2664def86ffc4f0dbe01535bf5 (same key as 1.0.0, so it installs over it).
Verified on the reference device (2026-10-04):
- Sharing, trimming, playback at 2x with the screen locked, and resuming after the app is killed.
- 10 minutes of playback in airplane mode (gaps p50 4 ms, p95 12 ms, max 19 ms, no stalls).
- Every screen, the item states, playback controls and the Obsidian bridge contract. The plugin's own read on this device is not yet recorded.
Built from 8e4af79a08a8115f0c29f61f52c31593d5e1be83. The build is reproducible: F-Droid's own build job, run in F-Droid's build image, produced an APK identical to this one apart from the signature.
Read Me 1.0.0
First release.
Share an article link or any text to Read Me and it reads it aloud with your phone's own offline voice. Trim what you don't want first, then listen with the screen off; your place is kept. Controls work from headphones, the lock screen and the notification. No network voices, no tracking, no account. Also serves your offline voice to the Obsidian Local TTS Reader plugin on the same phone (off until you turn it on in Settings).
Install: download read-me-1.0.0.apk and check it against SHA256SUMS:
2bd71ac0f3ad34ecb15f9350afcb579695434f6d8608e672992dbe8d0f99025f read-me-1.0.0.apk
Signing certificate SHA-256: f730c468c33f4de8ec5b6917920399169ccdef2664def86ffc4f0dbe01535bf5
Verified on the reference device (2026-10-03):
- Sharing, trimming, playback at 2x with the screen locked, and resuming after the app is killed.
- 10 minutes of playback in airplane mode (gaps p50 12 ms, p95 19 ms, max 26 ms, no stalls).
- The Obsidian bridge contract and its hostile-input handling. The plugin's own read on this device is not yet recorded.
Built from d3edc19aa027f365f79dd8042f27aa7183ab0fe4. The build is reproducible: two clean builds following the F-Droid recipe match, and they match this APK apart from the signature.