- Kotlin 100%
|
Some checks are pending
build / build (push) Waiting to run
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| app | ||
| design-system | ||
| gradle | ||
| licenses | ||
| openspec | ||
| .gitignore | ||
| build.gradle.kts | ||
| CLAUDE.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
Muninn
An Android app — built for Boox e-ink readers — that browses your edda-library library over OPDS 2.0, downloads EPUBs, and opens them in NeoReader (the native Boox reader). It runs on the device.
Built with Kotlin + Jetpack Compose, tuned for e-ink: pure black-on-white, no animations, large touch targets.
A built-in EPUB reader may come later; v0.1 hands reading off to NeoReader.
Why
Reading the library on a Boox today means browsing the web UI in a sluggish e-ink browser, downloading, then finding the file. Muninn is a native, e-ink-first catalog client: search, tap, download, read.
Features (v0.1 scope)
- Connect to an edda-library server with a per-user or shared OPDS token.
- Browse the OPDS 2.0 navigation feed (authors, tags, publishers, series, unread…).
- Search the catalog.
- Download EPUBs and open them in NeoReader via an Android intent.
- E-ink-optimised Compose UI (no motion, high contrast).
Build
Requires the Android SDK and JDK 17.
./gradlew :app:assembleDebug # build debug APK
./gradlew :app:installDebug # install on a connected Boox over adb
The debug APK lands at app/build/outputs/apk/debug/app-debug.apk. Release APKs
are attached to each GitHub release (published on a v* tag).
Installing on the Boox
Enable developer options / USB debugging on the Boox, connect over USB (or
adb connect <ip>), then ./gradlew :app:installDebug — or sideload the APK
directly.
Configuration
In-app: enter your server URL and OPDS token (stored via DataStore). The token
is sent as the ?token= query parameter that edda-library accepts on /opds/*.
Fonts
The editorial type system bundles three OFL (SIL Open Font License) variable
fonts in app/src/main/res/font/ — Playfair Display (titles), Source
Serif 4 (body), JetBrains Mono (labels). License texts are in licenses/.
Development
Spec-driven via OpenSpec — see
openspec/changes/bootstrap-opds-client/ for the proposal, design, capability
specs, and tasks. Conventions live in CLAUDE.md.