A clean, open-source Android client for your self-hosted BookOrbit library.
No browsers, tracking, ads, or accounts. Just your books. And a feature rich book reader.
BookOrbit's web UI and the built-in reader is excellent — but opening it in a browser means living with tabs, address bars, and the browser stealing your back button. Star-BookOrbit wraps it in a proper Android app so it behaves like one.
| Without Star BookOrbit | With Star BookOrbit |
|---|---|
| Browser toolbar takes up screen space | Full screen reading experience |
| Back button closes the tab | Back navigates inside your library |
| Session mixed with browser cookies | Isolated, always stays logged in |
| "Add to homescreen" still shows browser chrome | Real app icon, real app. Works with http also if you are self-hosting (or using Tailscale, etc.) |
| Loses your server URL on browser clear | Remembers your server permanently |
| Reading stats are not instant or reliable | Built-in reading stats give complete, clean, in-depth details |
| Browser needs to be opened, your tab needs to be tracked by you | Directly open your BookOrbit app and start browsing your books, low memory footprint |
| You've to use additional OPDS apps, where two way sync is not always possible | Two-way sync is built in as you are using the BookOrbit built-in reader itself |
audiobook.mp4
- Zero Browser Chrome: True edge-to-edge reading. No address bars, nor bottom navigation tabs.
- HTTP, HTTPS & Tailscale Friendly: Bypasses standard PWA HTTPS restrictions, easily handling raw local IPs and custom ports.
- Draggable Utility Button: A transparent, movable FAB that stays out of the way of your book text while giving you quick access to refresh or disconnect.
- Encrypted Caching: Your server URLs and connection strings are secured locally using Android's
EncryptedSharedPreferences. - Universal Compatibility: Built perfectly for BookOrbit, but naturally supports any responsive self-hosted media server (Kavita, Audiobookshelf, Komga) (Future Roadmap).
- Remembers your BookOrbit server URL across restarts
- Full Material Design 3 with dynamic color (Android 12+)
- Automatic dark/light mode following system settings
- Zero telemetry, zero analytics, zero accounts
- FOSS
- Android 8.0+ (API 26)
- A running BookOrbit instance accessible from your phone (the url:port should be your own BookOrbit address)
- Local network:
http://192.168.x.x:8090 - Remote (e.g. via Tailscale):
http://100.x.x.x:8090 - Public HTTPS (e.g. via Cloudflare or nginx):
https://your-device.ts.net
- Local network:
Download the latest APK from Releases and sideload it, or build from source below.
(Or add it to your Obtainium/ObtainX)
git clone https://github.com/Star-Trowa/StarBookOrbit.git
cd StarBookOrbit
./gradlew assembleRelease- Open Orbit — enter your BookOrbit server URL on first launch
- Tap Connect — your library opens full screen
- The small floating button gives you Refresh and Change server
Tip: Drag the button anywhere on screen to keep it out of the way when reading books
Note: If you use any proxy or VPN, make sure to turn it on before connecting in the app.
Android's battery optimization might kill the app while you are listening with the screen off. To fix this:
- Long-press the StarBookOrbit app icon and tap App Info (the ⓘ button).
- Tap on App battery usage (or just Battery).
- Change the setting from "Optimized" to "Unrestricted".
- Multiple saved server URLs
- Theme override (force light/dark independent of system)
- Support for Audiobookshelf and Kavita
- F-Droid release
PRs welcome. Please follow clean coding practices, and the existing architecture — SOLID principles, clean separation between data, domain, and presentation layers.
Also, try to aim for adding test coverage for the code added/edited.
MIT — do whatever you want with it.
If my themes made your keyboard a little nicer, consider supporting my work:
- GitHub Sponsors: Sponsor @Star-Trowa
- Ko-fi: ko-fi.com/Star_Trowa







