# Animeko: a Kotlin Multiplatform client that merges Bangumi tracking, BitTorrent sources and danmaku playback

> Animeko (formerly Ani) is an AGPL-3.0 Kotlin/Compose Multiplatform app for finding, tracking and watching anime across Android, iOS, Windows, macOS and Linux. The interesting part is the source aggregation layer, not the player.

**open-ani/animeko** — 集找番、追番、看番的一站式弹幕追番平台，云收藏同步 (Bangumi)，离线缓存，BitTorrent，弹幕云过滤。100% Kotlin/Compose Multiplatform

- Repository: https://github.com/open-ani/animeko
- Website: https://animeko.org
- Stars: 20,346 · Forks: 589
- Language: Kotlin
- License: AGPL-3.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/open-ani-animeko

## The gap Animeko targets: a tracker, a torrent client and a danmaku player in separate windows

The usual anime workflow is three tools. A tracking site holds your list and episode progress. A torrent or streaming source holds the video. A danmaku player or browser extension overlays comments on top. Animeko's README describes one application that covers all three: browsing subject information and community ratings from Bangumi, searching via a schedule and tag search, playing from aggregated sources, and writing progress back to Bangumi automatically when an episode finishes.

The audience is narrow and specific. If you already maintain a Bangumi account and you watch on a mix of a phone and a desktop, the sync is the point. The README states that finishing a video updates progress automatically and that opening the app resumes where you stopped, which removes the manual bookkeeping step. If you do not use Bangumi, or you only ever watch on one device with a single source, the aggregation layer adds dependency without adding much.

## How the source aggregation works: BitTorrent, Jellyfin, Emby and custom sources behind one selector

The repository layout mirrors the pipeline. Top-level directories include datasource/, torrent/, danmaku/, client/, app/ and utils/, which matches the README's description of aggregated video sources, aggregated danmaku sources, and a player. The README says the app aggregates video sources automatically and also supports BitTorrent, Jellyfin, Emby and custom sources, with a media selector offering a simple and a detailed view.

On the danmaku side, the README names two inputs: the aggregated sources from dandanplay and Animeko's own danmaku service, whose Swagger endpoint is published at danmaku-cn.myani.org. The topic list on the repository includes bittorrent, bt and torrent, and the README credits libtorrent, so torrent playback is handled by an embedded library rather than by handing a magnet link to an external client. Caching is described as available for all data sources, which means the same cache path serves a torrent and a Jellyfin stream.

The design consequence is that the app owns the network layer for both video and comments. That is what makes the single-window experience possible, and it is also the part most exposed to failures outside the project's control.

## Installing Animeko and playing one episode from a self-hosted source

The README does not document building from source for end users. It points to the download page at animeko.org/downloads and states that builds exist for Android, iOS, Windows, macOS and Linux, with a stable channel and a beta channel. The README recommends the stable version normally, and suggests the beta only if you are willing to test and can handle bugs yourself. There is no documented package manager command, no Homebrew formula, no apt repository and no Docker image in the README, so the honest instruction is to get the installer from that page.

What the repository does show is the toolchain, which matters if you intend to build it yourself. The top level contains gradlew, gradlew.bat, settings.gradle.kts and a build-logic/ directory, and the README names Kotlin Multiplatform and Compose Multiplatform as the architecture. A source build therefore goes through the Gradle wrapper script that sits at the repository root.

The README does not name the Gradle task that produces a desktop or Android artifact, so read the Gradle files in app/ before assuming a target name.

For a first real use, the path the README implies is: install the stable build, sign in to Bangumi so the collection and progress sync, then add a source. If you run Jellyfin or Emby at home, that is the cleanest test because it removes the BitTorrent variable. Add the server in the source settings, open a subject, and use the media selector to pick the episode from that server rather than from the aggregated list. If the episode plays and the progress line on Bangumi moves after you finish it, the two halves of the app you care about are working.

## Where Animeko breaks: alpha releases, service dependence and the BitTorrent variable

The release history is the first limitation. The most recent published tags are 6.2.0-alpha01, 6.1.0 and 6.1.0-beta01, with 6.1.0 as the stable line. An alpha at the top of the list is normal for a fast-moving client, but it means the feature you read about in a commit may only exist on a channel the README itself discourages for ordinary users. Plan around the stable tag, not the newest one.

The second limitation is dependence on services the project does not fully control. The README credits Bangumi for subject data and ratings, dandanplay for aggregated danmaku, and Animeko's own server for the schedule and a danmaku endpoint. If any of those is unreachable or changes shape, the corresponding screen degrades, and the README does not document offline fallbacks for metadata or a way to point the app at a different tracker.

The third is the nature of BitTorrent playback. The README lists BitTorrent as a supported source and credits libtorrent, and the repository has a torrent/ module, but the README does not describe seeding behaviour, peer limits, or how the app handles a torrent with no seeders. In a region where torrent traffic is filtered, or on a network that blocks peer-to-peer, the BitTorrent path is the wrong tool and a direct HTTP source or a local Jellyfin server is the correct one. Nothing in the README suggests the app routes torrent traffic through a proxy.

## Animeko compared with Ikaros and with a plain Jellyfin plus Bangumi setup

The README links Ikaros (ikaros.run) alongside dandanplay, Bangumi and Mikan, which places it in the same neighbourhood. The difference in approach is where the media comes from. Ikaros is a self-hosted server: you deploy it, it manages your library and metadata, and clients connect to it. Animeko is a client that reaches out to public aggregation services and to BitTorrent, with Jellyfin and Emby as optional additions. With Ikaros the library is yours and the server is the source of truth. With Animeko the catalogue is Bangumi's and the video is whatever the aggregation layer resolves to at that moment.

That makes Animeko faster to start and less controllable. A Jellyfin user who already has files on disk and a Bangumi account can get the same tracking benefit by running the Jellyfin app and updating Bangumi by hand, or by using one of the clients that bridge the two. Animeko's advantage over that arrangement is the danmaku layer and the automatic progress write-back, both of which are exactly the features that depend on external services. If neither matters to you, the manual setup has fewer moving parts.

## Maintenance, upgrade cost and what AGPL-3.0 means for a client app

The repository is not archived and the last push was on 2026-09-20, so the project is being worked on now. The release cadence is dense: 6.1.0-beta01 on 2026-08-26, 6.1.0 on 2026-08-28, and 6.2.0-alpha01 on 2026-09-17. For a user, that means stable builds arrive often enough that staying current is cheap, but it also means the beta channel moves under you. The README's own advice is to take stable unless you can handle bugs, which is the right default for a media client you use daily.

Upgrade cost is mostly about the data you have accumulated. The README describes cloud sync of watch progress through Bangumi and offline caching for all sources. Progress lives on Bangumi, so it survives a reinstall or a move to another device. Cached video does not: a cache is local, and the README does not describe any export or migration path for it, so treat caches as disposable when you switch machines or platforms.

The licence is AGPL-3.0, per the repository. For someone installing the app, that changes nothing. For someone modifying it and running it as a network service, the AGPL's network clause is the part to read, and the text is in LICENSE.txt at the repository root. This is a description of the licence, not legal advice; if you plan to redistribute a modified build or host one, read the licence text yourself.

## Conclusion

Animeko fits viewers who already keep their list on Bangumi and want one client covering phone and desktop, with BitTorrent or Jellyfin sources and danmaku in the same player. It is a poor fit if you need a stable, non-alpha release cadence, since the newest published line is 6.2.0-alpha01 while 6.1.0 is the stable tag, or if you cannot accept the AGPL-3.0 obligations or dependence on the project's own danmaku and aggregation services. Before adopting it, install the stable build from animeko.org/downloads, point it at your own Jellyfin or Emby server and confirm playback and progress sync work for your library, then read LICENSE.txt for the network-service clause.

## FAQ

### What is Animeko and which platforms does it run on?

Animeko, formerly Ani, is a Kotlin Multiplatform application for finding, tracking and watching anime, with Bangumi progress sync, aggregated video and danmaku sources, BitTorrent support and offline caching. The README states it supports Android, iOS, Windows, macOS and Linux.

### Where do I download Animeko?

The README points to the download page at animeko.org/downloads, which offers a stable channel and a beta channel. The README recommends the stable version normally and suggests the beta only if you are willing to test and can deal with bugs.

### Does Animeko sync my watch progress?

Yes. The README describes cloud sync of watch progress through Bangumi, with progress updated automatically after a video finishes and the app resuming from where you left off. This requires a Bangumi account.

### What licence is Animeko released under?

The repository lists AGPL-3.0, with the licence text in LICENSE.txt at the repository root. Installing and using the app is unaffected; redistributing a modified build or running one as a network service is where the licence terms matter.

### Which video sources can Animeko play from?

The README states it aggregates video sources automatically and also supports BitTorrent, Jellyfin, Emby and custom sources, selectable through the media selector. The repository credits libtorrent for the torrent path.

## Sources

- [License: AGPL-3.0](https://github.com/open-ani/animeko/blob/main/LICENSE)
- [open-ani/animeko on GitHub](https://github.com/open-ani/animeko)
- [Project website](https://animeko.org)
- [README](https://github.com/open-ani/animeko/blob/main/README.md)
- [Releases](https://github.com/open-ani/animeko/releases)

---

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