# Seanime: a self-hosted anime and manga server with a web UI, desktop app and mobile server

> Seanime is a Go and React media server for local anime libraries, with an AniList-backed catalogue, a torrent and debrid stack, and clients for desktop and mobile. It is opinionated about AniList only, and its documentation lives on seanime.app rather than in the repository.

**5rahim/seanime** — Open-source media server with a web interface and desktop app for anime and manga.

- Repository: https://github.com/5rahim/seanime
- Website: https://seanime.app
- Stars: 4,200 · Forks: 310
- Language: Go
- License: GPL-3.0
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/5rahim-seanime

## What Seanime solves, and for whom

An anime library is awkward for general media servers. Files arrive with release-group suffixes, absolute episode numbering, season splits that do not match any metadata provider, and specials that belong nowhere. Seanime is built around that problem rather than around films and television. The README describes it as a media server with a web interface and desktop app for managing your local library, streaming anime and reading manga, and it lists fast and smart scanning of local files without strict naming conventions or folder structures as a feature.

The intended user is someone with a local anime and manga collection who already keeps a list on AniList. AniList is the only tracker with built-in support; the README places MyAnimeList, Trakt and SIMKL under Not planned. Custom Sources exist for series that are not on AniList at all, so the catalogue is not strictly limited to what AniList returns, but list synchronization is.

The project is explicit that it is a one-person effort and may not meet every use case. That is worth reading literally. The feature list is broad (torrent search, debrid, transcoding, a manga reader, playlists, Discord Rich Presence, a schedule view), and breadth from a single maintainer usually means some corners are less finished than others.

## How the server, the scanner and the extension runtime fit together

The server is written in Go and the frontend in React with Rsbuild and Tanstack Router, according to the repository's tech stack section. The desktop client, Seanime Denshi, is Electron and bundles a libmpv-based video player that the README says supports SSA/ASS subtitles and shaders. The top-level layout matches that split: internal/ and main.go for the server, seanime-web/ for the web frontend, seanime-denshi/ for the desktop shell, mobile/ for the mobile side, and codegen/ for generated code.

Two dependencies tell you how the extension system works. The go.mod file requires github.com/dop251/goja and goja_nodejs, a JavaScript runtime embedded in Go, and github.com/evanw/esbuild, a bundler. Extensions are JavaScript executed inside the server process rather than separate services. The Extension Marketplace is described as an in-app repository for installing and managing extensions for online streaming, manga sources and torrent providers, so the same runtime covers all three extension categories.

Media handling pulls in github.com/anacrolix/torrent for BitTorrent, github.com/neilotoole/streamcache, and github.com/5rahim/hls-m3u8, which fits the torrent streaming and transcoding claims: pieces are fetched, cached and served as HLS to a player. Debrid support is not in the dependency list under those names, which suggests it goes through the same extension and HTTP layer rather than a dedicated client library.

The README's copyright notice is part of the architecture in a practical sense. Seanime does not provide, host or distribute media content, and extensions listed in the app are unaffiliated with the project and may be removed if they violate copyright law. Treat the marketplace as a directory, not as a curated catalogue with any guarantee of persistence.

## Installing Seanime and getting a first library scan

The README does not contain install commands. It points to the documentation site instead, under a Get started heading, with a link labelled How to install Seanime. So the first step is not a shell command at all.

```bash
# The README gives no install commands.
# It links to https://seanime.app/docs for the installation guide.
```

That guide covers the web interface, the desktop app for Windows, Linux and macOS, and the mobile apps. Building from source is a separate path: the README says you need Node.js and Go installed, and points to DEVELOPMENT_AND_BUILD.md in the repository root for the details. The go.mod file declares go 1.26.2, so a source build needs a Go toolchain at least that new.

Once the server is running, the client needs to reach it. The web interface and the desktop app connect to a server address, and the mobile apps either connect to your existing Seanime server or host their own via the Mobile Server app. The README does not state a default port or a default URL, so take the address from the documentation for the client you installed rather than guessing.

After connecting, the first real task is a library scan. Point the server at your anime directory and let the scanner run. The value of the scan is that it tolerates loose naming; the cost is that mismatches still happen, so expect to correct some entries by hand. Manga is separate: the Manga Reader reads chapters from your local library or through extensions in a unified interface.

## AniList-only sync is a design decision, not a missing feature

The most consequential limitation is stated plainly in the README under Not planned: built-in support for other trackers such as MyAnimeList, Trakt and SIMKL. If your watch history lives on MyAnimeList, Seanime will not sync it, and no extension category covers tracker sync. The three extension types are online streaming, manga sources and torrent providers.

Two more entries sit in the same list. Built-in support for other media players is not planned, though external player integration with MPV, VLC and MPC-HC is a shipped feature, and mobile players can be opened through intents or deep links. Built-in localization is also not planned, so the interface is not translated.

The single-maintainer note matters here too. A one-person project that already spans a Go server, a React frontend, an Electron desktop client, iOS and Android apps and a JavaScript extension runtime has a lot of surface area. The README's own framing, that it may not meet every use case and other tools might be a better match, is the honest version of that trade-off.

There is also a maintenance question the README does not answer. It does not document rollback, does not describe a downgrade path between releases, and does not state a support window for older versions. If you pin a version and it breaks your library, the repository is silent on how to go back.

## Seanime against Jellyfin and Plex

The obvious comparison is Jellyfin, an open-source media server with no account requirement and a broad client ecosystem, or Plex, which is commercial and polished but centralized. Both are general media servers: they expect films, television and music, they match against providers like TheTVDB and TMDB, and their clients exist on televisions, consoles and set-top boxes.

Seanime approaches the same job from the opposite direction. It is narrow on purpose. The catalogue is AniList, the scanner is tuned for anime file naming rather than season and episode conventions, and the feature list is full of things a general media server would never ship: a torrent search engine driven by extensions, torrent streaming through BitTorrent or a debrid service, an auto downloader with filters and scoring, a manga reader, and a schedule for upcoming releases.

The practical difference shows up in what you give up. Jellyfin and Plex have mature multi-user support, television clients and years of transcoding work behind them. Seanime has AniList, manga, and a download pipeline. If your household watches films and television on a TV app, Seanime is the wrong tool. If your problem is that your anime library scans badly and your manga has no reader at all, Seanime is aimed at exactly that, and the general servers are the ones making you do the manual work.

## Licence, releases and what maintenance costs you

Seanime is licensed under GPL-3.0, and the LICENSE file sits at the repository root. For self-hosting that changes little. If you fork it, redistribute it or ship a modified server to others, the copyleft terms apply to the derivative work, and the extension marketplace is worth thinking about separately: extensions are JavaScript loaded into the server, and the README says they are unaffiliated with Seanime and may be removed if they violate copyright law. Whether an extension is covered by the project licence is not something the README addresses, so treat that as an open question for anyone packaging a distribution rather than as settled.

Upgrade cost is the part to plan for. The release history shows frequent patch releases: v3.10.0 on 2026-07-15, v3.10.1 on 2026-07-17, and v3.10.2 on 2026-07-23. The last push to the repository was on 2026-09-04, so the project is being worked on, but the cadence means you should decide deliberately whether to track every patch or pin.

The repository does not document a rollback procedure or a database migration policy between versions. The dependency on github.com/glebarez/sqlite in go.mod means there is a local database file holding your library state, and upgrading across releases is the moment when a migration would run. Back up that database before a version jump. That is the concrete cost of following a fast release cadence here, and the README does not remove it for you.

## Conclusion

Adopt Seanime if your library is anime and manga, you already track on AniList, and you want one server that also handles torrent search, debrid streaming and a manga reader. Do not adopt it if you need MyAnimeList, Trakt or SIMKL sync, built-in translations, or a second media player beyond MPV, VLC and MPC-HC: the README lists all of those under Not planned. Verify before committing: that a current release exists on the releases page, that the extension you need is still listed in the in-app marketplace, and that the Android path you intend to use (Tenji companion app or the Mobile Server app) is the one the docs describe for your device.

## FAQ

### How do I install Seanime?

The README does not give install commands. It links to the installation guide at seanime.app/docs under a Get started heading, which covers the web interface, the desktop app for Windows, Linux and macOS, and the mobile apps. Building from source needs Node.js and Go, with details in DEVELOPMENT_AND_BUILD.md.

### What is the server URL for Seanime?

The README does not state a default address or port for the server. Clients connect to a server address, and the mobile apps either connect to an existing Seanime server or host their own through the Mobile Server app. Take the address from the documentation for the client you installed.

### How do I use Seanime?

Install a server or the desktop app, connect the client to that server, then point it at your local anime directory and run a scan; the README says scanning works without strict naming conventions or folder structures. From there, AniList integration handles your lists, and extensions add online streaming, manga sources and torrent providers.

### How do I install Seanime on Linux?

The README lists Linux as a supported platform for the desktop app and points to seanime.app/docs for installation, but it does not include Linux-specific commands. The docs are the only install source given in the repository.

## Sources

- [5rahim/seanime on GitHub](https://github.com/5rahim/seanime)
- [License: GPL-3.0](https://github.com/5rahim/seanime/blob/main/LICENSE)
- [Project website](https://seanime.app)
- [README](https://github.com/5rahim/seanime/blob/main/README.md)
- [Releases](https://github.com/5rahim/seanime/releases)

---

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