ShelfSync is a cross-platform app for browsing, downloading, and managing your e-book library from a remote catalog. Connect to an OPDS-compatible server (such as Grimmory), download books with integrity verification, and keep your library available offline on desktop or Android.
ShelfSync is not an e-reader — it gets verified books onto your device. Open them with your favorite reading app (we recommend Leafline).
Connect your shelf — point ShelfSync at any OPDS catalog:
Browse and download — cover-forward cards with serif titles, live download progress, and offline library states:
| Paper (light) | Lamplight (dark) |
|---|---|
![]() |
![]() |
- OPDS catalog browsing — navigate, search, and paginate remote catalogs with authenticated access (HTTP Basic Auth, scoped to the configured server).
- Verified downloads — downloads are staged as
.partfiles, hash-checked, and renamed atomically so you never end up with corrupt books. Bulk syncs run with bounded parallelism and live per-book progress ("X of Y"). - Offline library management — every publication tracks its state (complete / downloading / failed / unavailable / superseded), with explicit reconciliation against the catalog. Your files are never deleted automatically.
- Secure credentials — on Android, OPDS account passwords are encrypted with a non-exportable key held in the Android Keystore; on desktop they stay in memory only.
- E-Ink friendly UI — a fast React interface with grouped browsing by series, author, tag, or date added; keyboard accessible and screen-reader labeled.
Tap the badge on your Android device with Obtainium
installed, or add the source URL manually: https://github.com/jdluu/ShelfSync
Download the latest release for your platform from the Releases page:
- Windows / Linux: installers under
src-tauri/target/release/bundle.
No special permissions are required on Android beyond network access; downloads live in the app's private storage (you can point them at your Documents folder from the in-app storage picker).
Prerequisites: Rust (stable), Node.js LTS + pnpm, the Tauri prerequisites for your platform (e.g. libwebkit2gtk on Linux, MSVC Build Tools on Windows), and optionally the Infisical CLI plus the Android NDK for Android builds.
git clone https://github.com/jdluu/ShelfSync.git
cd ShelfSync
pnpm install
pnpm tauri dev # run the desktop app in development mode
pnpm tauri build # production build for your OS
pnpm build:android # Android build (requires Infisical secrets + NDK)For Android builds, authenticate with Infisical and fetch signing secrets first:
infisical login
pnpm secrets:fetch


