# MoeList: an unofficial MyAnimeList Android client with a documented API ceiling

> MoeList is a Kotlin and Jetpack Compose Android client for MyAnimeList, with list management, seasonal calendars, charts, notifications, a home screen widget and an NSFW toggle, published on Google Play and IzzyOnDroid. New development is moving to MoeListKMP, and the README lists the features the MyAnimeList API simply does not allow.

**axiel7/MoeList** — Another unofficial Android MAL client

- Repository: https://github.com/axiel7/MoeList
- Website: https://moelist.net
- Stars: 658 · Forks: 24
- Language: Kotlin
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/axiel7-moelist

## An unofficial client, and the README says so first

MoeList is described as another unofficial Android MAL client, and the project makes its position clear early with a warning that new development will be done in MoeListKMP, a separate repository. That single line changes how the project should be evaluated. This repository is the mature Android application, written in Kotlin with Jetpack Compose and Material 3, and it is still receiving pushes, with the last commit on 2026-10-09, but new features land in the multiplatform successor. The audience is a person who wants a tracker client on Android without signing in to the official application, and the difference matters in practice because the official MyAnimeList app and this client are not the same product. The homepage is moelist.net, the app is on Google Play under the package com.axiel7.moelist and on IzzyOnDroid, and nightlies are available through nightly.link from the develop branch.

## The feature list, and the parts the API forbids

The features section is a conventional tracker feature set: airing anime notifications, an airing anime widget, management of your anime and manga lists, details pages for both, related titles, recommendations, characters, search, a seasonal anime calendar, search by season, top charts, your profile with statistics for anime and manga, light and dark themes with Android 12 dynamic color, and an NSFW toggle. Immediately below it the README has a section headed Not possible due to API limitations, and that list is the most useful thing in the document. Reviews, favouriting anime or manga, viewing or adding friends, viewing other users' lists, MyAnimeList notifications and messages, and manga characters and voice actors are all unavailable. A link to the open issues labelled api limited points to more. This is a ceiling imposed by MyAnimeList's API, not a backlog, so the honest way to read the feature list is as the full extent of what the app can be.

## The library stack is the standard Compose set

The README lists the libraries used, and the list doubles as a description of the architecture. The UI is Material 3 Components with Jetpack Compose, so the app is a single-activity Compose application rather than a mix of views. Networking is Ktor, which is why the API client is asynchronous and why the Kotlin coroutine model fits the rest of the design. Persistence is DataStore, which is the modern preference and key-value store for Android rather than SharedPreferences, and WorkManager handles the background scheduling that the airing notifications and the widget updates need. Dependency injection uses Koin, image loading uses Coil, and the home screen widget is built with Jetpack Glance rather than the older RemoteViews path. The repository layout matches the app structure, with the app module, a fastlane directory for store listing assets, a crowdin.yml for translations and a version.properties file that holds the version number separately from the build script.

## Building from source needs your own MyAnimeList client id

The build section is short because there is one thing you must supply yourself. You create a new private.properties file in the project root containing a client id:

```properties
CLIENT_ID="your_mal_api_client_id"
```

To get that id you go to the MyAnimeList API panel, create a new app with App Type set to android and Redirect URL set to moelist://moelist.page.link/. Both values matter. The app type determines which API endpoints the client is allowed to use, and the redirect URL has to match the one the app registers for its authentication callback, otherwise the OAuth round trip comes back to nothing. This is the standard arrangement for an unofficial API client, and it is also the point where a new user has to make a decision: you are registering an application in someone else's developer console, under your own account, to use an API whose terms you accept on your own behalf. The project then builds with Gradle, and the wrapper scripts gradlew and gradlew.bat are in the repository root alongside the Kotlin DSL build files.

## Distribution through Google Play, IzzyOnDroid and nightlies

There are three ways to get the app, and they serve different needs. The Google Play listing is the stable route and carries the download badge in the README, and IzzyOnDroid carries the same application as a F-Droid style build under the same package identifier, which matters for people who avoid proprietary distribution channels. The third is the beta channel, where the latest beta version is fetched from nightly.link using the develop branch of the build-android workflow. The project also runs a Discord server, linked from the README as the place to follow development, and a Crowdin project for translations, which is where a contributor adds a language rather than editing string resources directly. The project is GPL-3.0 licensed with the LICENSE file at the root, and it asks for donations through Ko-fi and lists BTC, ETH and LTC wallet addresses for the same purpose.

## Version 3.8.0 shipped in June 2025 with a successor project ahead

The release history is short and the last stable tag is a while back. v3.7.0 was published on 2024-05-29, v3.7.1 on 2024-07-17 and v3.8.0 on 2025-06-13. The last push to the repository was on 2026-10-09, so commits are still landing in the Android application even though the newest named release predates that by more than a year, and the README's own note that development happens in MoeListKMP is the reason. The version number is kept in a version.properties file at the root of the repository rather than hard-coded, which is what lets the fastlane listing and the nightly builds share a single source of truth. For anyone who wants to track the project, the useful signal is the develop branch and the Discord channel rather than the release tags, and for anyone who wants to contribute, the successor repository is the place to look, since the current one is where the existing Android app is maintained.

## Conclusion

MoeList fits an Android user who wants a tracker client for MyAnimeList with a modern Compose interface, notifications for airing shows and a home screen widget, and who is comfortable with an unofficial client that is limited by a third-party API. It does not fit someone who needs reviews, favourites, friends, user lists or notifications from MyAnimeList itself, because those are blocked by API limitations rather than by missing effort. Before installing, read the list of unsupported features and check the open issues labelled api limited, and if you plan to build from source, register your own client id in the API panel with the redirect URL the README specifies, since development has moved on to MoeListKMP.

## FAQ

### What is MoeList and where can I get it?

MoeList is an unofficial MyAnimeList client for Android, written in Kotlin with Jetpack Compose. It is on Google Play under com.axiel7.moelist, on IzzyOnDroid under the same identifier, and beta builds are published through nightly.link from the develop branch.

### Which MyAnimeList features does MoeList not support?

The README lists them under API limitations: reviews, favouriting anime or manga, viewing or adding friends, viewing other users' lists, MyAnimeList notifications and messages, and manga characters and voice actors. More cases are tracked in the open issues labelled api limited.

### How do I build MoeList from source?

Create a private.properties file in the project root with a client id, CLIENT_ID="your_mal_api_client_id". You obtain that id from the MyAnimeList API panel by creating an app with App Type set to android and Redirect URL set to moelist://moelist.page.link/.

### Is MoeList still being developed?

The README states that new development will be done in MoeListKMP. This repository still receives pushes, with the last one on 2026-10-09, and the most recent tagged release is 3.8.0 from 2025-06-13.

## Sources

- [axiel7/MoeList on GitHub](https://github.com/axiel7/MoeList)
- [License: GPL-3.0](https://github.com/axiel7/MoeList/blob/master/LICENSE)
- [Project website](https://moelist.net)
- [README](https://github.com/axiel7/MoeList/blob/master/README.md)
- [Releases](https://github.com/axiel7/MoeList/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/axiel7-moelist
