ani-cli-rs 0.9.5

Cross-platform Rust port of ani-cli with Anikoto providers and a reusable provider/playback library
Documentation

> **⚠ This wiki is deprecated.**

The GitHub Wiki is no longer maintained. Edit documentation under `website/docs/` instead. See [Migrating from the Wiki](Migrating-from-Wiki) for the migration guide and the new site URL.

# Frequently Asked Questions


## Is this a fork of Bash ani-cli?


It is a standalone Rust port using Bash ani-cli as a compatibility baseline. The executable and repository are separate and use the `ani-cli-rs` name to avoid collisions.

## Are the commands the same?


Core compatibility flags and the interactive title workflow are intentionally familiar. ani-cli-rs also adds explicit scriptable subcommands and JSON output. Some platform-specific Bash features such as rofi/dmenu integration are intentionally excluded.

## Why does `download` reject an anime name?


`ani-cli-rs download SHOW_ID EPISODE` is the scriptable interface. Use:

```console
ani-cli-rs --download "anime name"
```

for interactive title/season/episode selection.

## Where do I find a show ID?


Run `ani-cli-rs search --json "title"` and use the returned provider-prefixed ID.

## Why is a season shown as another anime result?


Both catalogs commonly model seasons as separate show entries rather than one show containing a season list. Select the appropriately named result.

## Why does a download use `.part`?


It marks incomplete/resumable media. The file is renamed to `.mp4` after successful completion. See [Downloads](Downloads#why-files-use-part).

## Can I disable `.part`?


Not currently. Writing directly to the final name would make interrupted media appear complete and weaken safe resume/finalization behavior.

## Does my aria2 config work?


If present at `%USERPROFILE%\.aria2\aria2.conf` or `$HOME/.aria2/aria2.conf`, ani-cli-rs passes it explicitly. Safety-critical per-download arguments take precedence.

## Will a Linux binary built on Ubuntu work on Arch?


The official musl binary is intended to be portable across common distributions of the same CPU architecture. A normal glibc-linked build may depend on the builder's glibc version; use the musl release target for distribution.

## Why are there no macOS releases?


The project avoids consuming limited, higher-cost hosted macOS CI minutes. macOS source builds and automatic IINA playback are tested, but official assets are not promised.

## Is there an official Linux ARM64 build?


No. Linux ARM64 can be built from source, and a Cargo alias exists for contributor cross-builds, but the maintainer does not have ARM64 Linux hardware for device testing and does not publish an ARM64 release asset.

## Does Termux work?


Termux source builds are tested. ani-cli-rs requests mpv-android normally or Android VLC with `--vlc`. If the explicit activity bridge is unavailable, it uses Android's media handler through `termux-open`; the Android default or user selection then takes precedence over `--vlc`. Keep Termux running until relayed playback ends. A terminal VLC installed with `pkg install vlc` is not the Android application and is intentionally not selected.

## Why does antivirus flag the Windows executable?


It is currently unsigned and performs provider requests, local HLS relay traffic, downloads, and child-process launching. Those behaviors can trigger heuristics. Verify checksums, inspect the source, or build locally. A detection should still be evaluated rather than automatically dismissed.

## Why does one anime work while another fails?


Each episode can use different third-party hosts. Some copies are deleted, blocked, expired, or protected by changed provider protocols. ani-cli-rs cannot produce a stream when every upstream source is unavailable.

## Does `--allow-adult` bypass router filtering?


No. It only changes catalog filtering where the selected provider supplies adult metadata. DNS, FortiGuard, parental controls, antivirus, or ISP filtering still applies.

## Does ani-cli-rs require administrator/root access?


No. Official installers target per-user locations. External player/downloader installation may follow separate operating-system rules.

## Can Rust plugins be `.dll` or `.so` files?


The current roadmap prefers external executables with a versioned JSON-lines protocol. Rust has no stable ABI for safely loading arbitrary trait implementations across compiler versions.