Skip to content

Requirements

What the apps run on, mpv and ffmpeg for the terminal app, Rust and cmake to build it, and a terminal with a graphics protocol for cover art.

Mac macOS 26 or later, on Apple silicon
iPhone and iPad iOS or iPadOS 26 or later, and AltStore or SideStore to install
Android Android 15 or later, on 64-bit ARM
Android TV Android TV or Google TV 11 or later, on 32-bit or 64-bit ARM
Windows Windows 10 version 2004 or later, on x64 or Arm64
Linux x86-64 or ARM64 with glibc 2.41 or newer: Ubuntu 25.04 or later (including 26.04 LTS), Fedora 42 or later, Debian 13. Not Ubuntu 24.04

The apps have mpv built in and need nothing else installed. See installation for the first start on each.

A prebuilt install needs only mpv and ffmpeg. The .deb pulls both in. Elsewhere, install them with brew install mpv ffmpeg, winget install shinchiro.mpv Gyan.FFmpeg, or your distro’s packages.

The Linux builds need glibc 2.28 or newer, which Debian 10, Ubuntu 20.04, RHEL 8 and every later release have. They do not run on musl distros such as Alpine.

mpv does all playback, over JSON IPC. anistream brings its own controls, thumbnails and shaders, so a stock mpv is enough. The player interface, with the skip button, Up Next, menus and thumbnails, needs mpv 0.36 or newer. Older versions play with mpv’s own controls; Ubuntu 24.04 ships 0.37 and Debian 12 ships 0.35.

ffmpeg remuxes downloads and handles their subtitles.

Building also needs Rust, cmake and a C toolchain, and NASM on Windows:

brew install mpv ffmpeg cmake # cmake is for wreq's BoringSSL
rustup toolchain install 1.99.1 # pinned by rust-toolchain.toml

cmake builds BoringSSL, which anistream’s HTTP client uses to match a browser’s TLS handshake, since some hosts answer differently depending on the client that connects. Rust 1.99.1 is pinned by rust-toolchain.toml, so rustup picks it up inside the repo. To build plugins, also run rustup target add wasm32-wasip2.

Cover art looks best in a terminal with a graphics protocol, such as Ghostty, Kitty, iTerm2 or WezTerm. It renders as images over the Kitty, Sixel or iTerm2 protocols, and falls back to Unicode halfblocks elsewhere. On Windows, WezTerm is one of them.

anistream --doctor reports what your terminal supports, which mpv you have and which config it reads, and, once the torrent source is on, the state of the VPN guard and your VPN’s kill switch.