Lissen is a deliberately small Android client for Audiobookshelf
Minimalistic Android client app for Audiobookshelf
At a glance
- What is it?
- Lissen is a Kotlin Android app for self hosted Audiobookshelf servers, with cloud progress sync, streaming, offline downloads and localisation through Weblate. It is distributed on Google Play, F-Droid and Obtainium, and its author is explicit that it is not a clone of the official app and does not try to match its feature set.
- Who is it for?
- Lissen suits someone who runs their own Audiobookshelf server and wants a small, fast phone client that does one thing well, since the app syncs progress, streams or downloads, and translates through Weblate. It is the wrong choice if you rely on the official Audiobookshelf app's feature set, because the project states plainly that it does not aim to replicate all of those features.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A client that refuses to grow
Lissen is described as a minimalistic Android client app for Audiobookshelf, and the README says more about what it is not than what it is. Lissen is not a clone of the official Audiobookshelf app and does not aim to replicate all of its features. The goal is a minimalistic interface and a smooth experience for listening to audiobooks and podcasts.
That framing matters for anyone deciding whether to install it, because a self hosted Audiobookshelf user already has a working app and a reason to want another one: less interface. The feature list the README does give is four items. There is an intuitive design for browsing and listening, cloud sync that automatically keeps audiobook progress up to date across devices, streaming that plays directly from the cloud without downloading first, and offline listening by downloading audiobooks to the device.
The last two together are the actual product decision. An audiobook client that only downloads is a network dependency, and one that only streams is a data plan problem. Supporting both means a local cache, and the repository contains a minifiedTest directory that suggests the offline path is tested carefully rather than incidentally.
The project is MIT licensed, written in Kotlin, and its homepage is lissenapp.org.
Three distribution channels and a published certificate
The app is available through Google Play, F-Droid and Obtainium, and the badges for all three are in the README.
The three channels are not interchangeable in practice. Google Play gives automatic updates and is the easiest route for most people. F-Droid builds from source, which matters for a self hosting audience that prefers to know what is in the binary. Obtainium installs directly from the repository, which suits people who want the newest build without waiting for a store review.
Release APKs are signed with a specific certificate, and the README publishes the SHA-256 fingerprint:
org.grakovne.lissen
1A:E5:50:AB:71:2B:C1:78:53:DF:F5:9F:52:C0:69:7E:CC:48:85:4C:9B:7E:51:B4:7A:6F:79:C9:D2:D0:FA:E4and it shows how to check an APK against it with apksigner verify --print-certs. Publishing the fingerprint is the useful part, because a self hosted user installing an APK from an unfamiliar source has no other way to check it is the one the project built.
The release history shows a steady cadence. Version 1.12.15 was tagged on 2026-10-19, 1.12.14 on 2026-10-15 and 1.12.13 on 2026-10-12, and the last push was on 2026-10-19, so the app is being worked on daily.
Building from source is a four step job
The build instructions are short, which is what you would expect from a project whose repository root is a Gradle project with an app module.
The first step is to clone the repository:
git clone https://github.com/grakovne/lissen.gitThe second is to point the build at your local Android SDK by editing local.properties, and the README suggests opening the file with nano.
The third is to open the project in Android Studio or build it from the command line, and the two Gradle invocations are:
./gradlew assembleDebug # Debug Build
./gradlew assembleRelease # Release BuildThe last step is to install the result on a device or an emulator. The repository root has build.gradle.kts, settings.gradle.kts, gradle.properties, a gradlew wrapper and a gradle directory, along with the app directory, a docs directory, a metadata directory that holds the store listing assets, a scripts directory and a github_runner_provisioning.sh script.
The metadata directory is worth noting. It contains the en-US images used for the store screenshots that appear in the README, which is the usual arrangement for a project that publishes to several stores from one source tree.
Weblate drives the translations
Localisation is handled through Weblate, with the Lissen translation project hosted there, and the README embeds the live translation status widget.
The contribution flow is spelled out in three steps: visit the translation project, sign up or log in to Weblate, and start translating or reviewing existing translations for your preferred language.
That arrangement is worth a comment, because it is a different model from the one where a project keeps a locale directory and accepts pull requests of .xml or .strings files. With Weblate, the translation platform is the source of truth for the translated strings and the app pulls from it, and the pull request workflow for translators happens inside Weblate rather than on the code host. It also means the translation memory and the reviewer workflow come with the platform, which is a lot of tooling for a small project to build itself.
The app supports a set of languages through that process, and the metadata directory in the repository holds per locale assets alongside the en-US ones.
The AI contribution policy is unusually specific
The README has a section on AI-assisted contributions, and it is the most distinctive thing in the document.
AI-assisted development is welcome in the project and can be very useful when applied thoughtfully. But any AI-generated changes that are not properly reviewed or tested will be discarded without hesitation. The reasoning is given plainly: AI is a great tool, but until it can reliably understand the code it produces and the consequences of its changes, all AI-generated contributions must remain under strict human review.
That is a coherent position, and it is a useful one to state explicitly in a repository, because the default expectation in most projects is the opposite: unreviewed machine written patches get merged if they pass CI. Here the review is stated as non-negotiable and discard is the stated consequence.
The repository also has an AGENTS.md at the root, which is the usual place to put the instructions a coding agent reads when it opens the project.
A demo server to try before you install anything
There is a demo Audiobookshelf instance you can connect to through the app, and the credentials are printed in the README:
https://demo.lissenapp.org/
Username: demo
Password: demoThe instance contains only public domain audiobooks from LibriVox, which is a detail that makes the demo actually usable. Audiobookshelf is a self hosted audiobook and podcast server, and the demo is a hosted copy of one for evaluation.
That matters for the decision, because the fastest way to know whether a minimal client suits you is to point it at a real server and browse a small library. The alternative is to install the app, configure your own server URL and credentials, and discover the interface is not what you want.
It is also worth being clear about what Lissen is not competing with. The README is careful that this is not a clone of the official Audiobookshelf app, and the stated goal is a minimalistic interface. If your use of Audiobookshelf depends on a specific feature of the official app, that is the thing to check before installing, not the feature list of this one.
Editorial conclusion
Lissen suits someone who runs their own Audiobookshelf server and wants a small, fast phone client that does one thing well, since the app syncs progress, streams or downloads, and translates through Weblate. It is the wrong choice if you rely on the official Audiobookshelf app's feature set, because the project states plainly that it does not aim to replicate all of those features. Before installing, check the signing certificate fingerprint against the one the README publishes, and try the public demo instance at demo.lissenapp.org with the demo credentials to see whether the minimal interface suits you.
Frequently asked questions
How do I install the Lissen Android app?
It is published on Google Play, on F-Droid as org.grakovne.lissen and through Obtainium. To build it from source, clone the repository, set the SDK path in local.properties, then run ./gradlew assembleDebug or ./gradlew assembleRelease and install the result on a device or emulator.
Is Lissen a replacement for the official Audiobookshelf app?
No. The README states that Lissen is not a clone of the official Audiobookshelf app and does not aim to replicate all of its features. The goal is a minimalistic interface and a smooth experience for listening to audiobooks and podcasts.
Can I try Lissen before installing it?
There is a demo Audiobookshelf instance at https://demo.lissenapp.org/ with the username demo and the password demo. It contains only public domain audiobooks from LibriVox.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/grakovne-lissen-android)Was this useful?