> **⚠ 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.
# Installation
Official releases are published at <https://github.com/vorlie/ani-cli-rs/releases>. Prebuilt assets are provided for Windows x64 and Linux x86-64. Linux ARM64, tested macOS, and tested Termux users build from source.
## Windows: portable installation
Open PowerShell and run:
```powershell
Invoke-WebRequest https://raw.githubusercontent.com/vorlie/ani-cli-rs/master/scripts/install.ps1 -OutFile install.ps1
.\install.ps1
Remove-Item .\install.ps1
```
The installer:
1. reads the latest GitHub release;
2. downloads the x64 Windows ZIP and its `.sha256` file;
3. verifies SHA-256 using .NET cryptography, including on older PowerShell versions without `Get-FileHash`;
4. installs `ani-cli-rs.exe` to `%USERPROFILE%\.local\bin` by default;
5. adds that directory to the user `PATH` unless `-NoPathUpdate` is supplied.
Open a new terminal after installation so it receives the updated user `PATH`.
Custom directory:
```powershell
.\install.ps1 -InstallDirectory "D:\Tools\bin"
```
Skip the `PATH` update:
```powershell
.\install.ps1 -NoPathUpdate
```
## Windows: Inno Setup wizard
If the release contains the setup asset:
```powershell
.\install.ps1 -UseSetup
```
This launches a per-user installer with an uninstall entry. It does not require administrator privileges. The portable and Setup installations use different installation management, so use the matching uninstall method.
## Linux
```sh
curl -fsSL https://raw.githubusercontent.com/vorlie/ani-cli-rs/master/scripts/install.sh -o install.sh
sh install.sh
rm install.sh
```
The script installs the official Linux x86-64 archive, verifies its published SHA-256 checksum, installs to `$HOME/.local/bin` by default, and adds that directory to `$HOME/.profile` when needed. On Linux ARM64 it exits with source-build instructions because no official ARM64 asset is published.
Custom locations:
```sh
ANI_CLI_RS_INSTALL_DIR="$HOME/bin" ANI_CLI_RS_PROFILE="$HOME/.bashrc" sh install.sh
```
Official Linux archives use musl so one release can work across common distributions such as Ubuntu, Debian, Arch, Fedora, and Alpine. Kernel and CPU architecture compatibility still apply.
### Linux ARM64
Linux ARM64 is source-buildable but is not device-tested by the maintainer and has no official release archive:
```sh
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo build --release --locked
```
The local `cargo release-linux-arm64` alias is intended for contributors with a suitable cross-linker or ARM64 build environment; its existence does not indicate an official binary.
## macOS
No official macOS release assets are provided. The source build and automatic IINA selection have been tested. Install the Rust toolchain and build locally:
```sh
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo build --release --locked
```
The binary is placed at `target/release/ani-cli-rs`. Copy it to a directory on your `PATH` if desired.
IINA is the default player on macOS. Install it with `brew install --cask iina` and ensure its `iina` command is on `PATH`.
## Android with Termux
Termux source builds are tested, but no Android release binary is published. Install a current Termux build from a trusted source, then run:
```sh
pkg update
pkg install rust
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo build --release --locked
install -Dm755 target/release/ani-cli-rs "$PREFIX/bin/ani-cli-rs"
```
Install an Android HLS-capable video player such as mpv-android or VLC. Do not use `pkg install vlc` for this integration: that installs a terminal VLC build rather than the Android application.
Run `ani-cli-rs "title"` to request mpv-android or `ani-cli-rs --vlc "title"` to request Android VLC. ani-cli-rs searches for `termux-am-starter`, `termux-am`, and `am`, in that order. If the explicit activity bridge is incompatible with the installed Termux app, it falls back to `termux-open` with the stream's media type, then `termux-open-url`. On this fallback path Android's chosen/default media handler takes precedence, so `--vlc` cannot guarantee VLC. `ANI_CLI_PLAYER` can override the activity-launcher executable if a device requires a different path.
## Build from source on any supported platform
Install a current stable Rust toolchain, then:
```console
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo build --release --locked
```
Windows output: `target\release\ani-cli-rs.exe`
Unix output: `target/release/ani-cli-rs`
Rust edition 2024 requires a recent toolchain. If Cargo says the `edition2024` feature is unavailable, update through rustup and verify that the rustup binaries appear before a distribution-installed `/usr/bin/cargo` in `PATH`.
## Uninstall
Portable Windows:
```powershell
Invoke-WebRequest https://raw.githubusercontent.com/vorlie/ani-cli-rs/master/scripts/uninstall.ps1 -OutFile uninstall.ps1
.\uninstall.ps1
Remove-Item .\uninstall.ps1
```
Linux:
```sh
curl -fsSL https://raw.githubusercontent.com/vorlie/ani-cli-rs/master/scripts/uninstall.sh -o uninstall.sh
sh uninstall.sh
rm uninstall.sh
```
For an Inno Setup installation, use Windows Installed Apps or the generated uninstaller.
## Verify the installation
```console
ani-cli-rs --version
ani-cli-rs --help
```
If the command is not found, see [Troubleshooting: installed but not found](Troubleshooting#installed-but-command-not-found).