---
name: "ani-cli"
section: "1"
platform: "linux"
package: "ani-cli"
version: "4.10-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ani-cli"
---

# ani-cli(1)

watch anime from the commandline

## NAME

ani-cli - watch anime from the commandline

## SYNOPSIS

**ani-cli** \[*OPTIONS*\]

## DESCRIPTION

A shell script to browse and search anime from the command-line.

This tool scrapes the site allanime.

**ani-cli** without options defaults to iina on macOS, flatpak mpv on Steamdeck, mpv apk on android, vlc on iOS and mpv media player everywhere else.

## OPTIONS

- **-e \| --episode \| -r \| --range** *\<episode\>*

  Specify the episode numbers to watch. If range is specified it should be quoted or separated by a non-numeric character (eg. -).

- **-c \| --continue**

  Continue watching anime from history.

- **-d \| --download**

  Download episode.

- **-D \| --delete**

  Delete history.

- **-l \| --logview**

  Show logs.

- **-h \| --help**

  Show summary of options.

- **-q \| --quality** *\<best\|worst\|360\|480\|720\|1080\>*

  Set the video quality. Default quality is best.

- **-s \| --syncplay**

  Watch anime together with friends, using Syncplay (works with mpv only).

- **-U \| --update**

  Fetch update from github.

- **-v \| --vlc**

  Use VLC as the media player.

- **-S \| --select-nth** *\<index\>*

  Selects nth entry.

- **-N \| --nextep-countdown**

  Prints a countdown to the next episode as the last episode in the list. If in history is after the current episode.

- **--dub**

  Play the dubbed version. Without this flag, it'll always play the subbed version.

- **--rofi**

  Use rofi instead of fzf for the interactive menu

- **--skip**

  Use ani-skip to skip the intro of the episode (mpv only)

- **--no-detach**

  Don't detach the player (useful for in-terminal playback, mpv only)

- **--exit-after-play**

  Exit the player, and return the player exit code (useful for non interactive scenarios, mpv only)

- **--skip-title** *\<title\>*

  Specify the title to use for ani-skip

## ENVIRONMENT VARIABLES

ani-cli v4 uses environment variables to control unstable/untested and niche features in addition to everything that has an option. Command-line options take precedence over env vars. Note that these are all subject to change.

- **ANI\_CLI\_MODE**

  Controls the scraped media's mode, valid options are sub or dub. Default is sub.

- **ANI\_CLI\_DOWNLOAD\_DIR**

  Controls the directory where files are downloaded. Default is the current dir.

- **ANI\_CLI\_QUALITY**

  Controls the scraped media's quality, check allanime for valid options or set to worst/best. Default is best.

- **ANI\_CLI\_PLAYER**

  Sets the player ani-cli uses. Can be debug (print links), download (equivalent to -d), android\_mpv (apk and am start), android\_vlc (apk and am start), flatpak\_mpv (for flatpak), catt (for streaming to tv), or any player that can play urls. For defaults see working without arguments.

- **ANI\_CLI\_EXTERNAL\_MENU**

  Controls the frontend of ani-cli. Can be 0 (uses fzf) or 1 (uses rofi dmenu). Default is 0.

- **ANI\_CLI\_EXTERNAL\_MENU\_NORMAL\_WINDOW**

  Controls the way rofi displays the window. Can be 0 (no additional arguments passed to rofi) or 1 (the menu is displayed as a normal window, -normal-window argument is passed to rofi). Default is 0.

- **ANI\_CLI\_LOG\_EPISODE**

  Controls the logging feature for playback. Can be 1(logs) or 0(doesn't log). Default is 1.

- **ANI\_CLI\_MULTI\_SELECTION**

  Controls the multi flag for the chosen frontend. Default is -m for fzf and --multi-select for rofi dmenu.

- **ANI\_CLI\_HIST\_DIR**

  Controls the directory ani-cli uses for storing history. A /ani-cli subfolder is created there for the histfile if doesn't exists. Default is $XDG\_STATE\_HOME if set, $HOME/.local/state if not.

- **ANI\_CLI\_DEFAULT\_SOURCE**

  Controls the default source. Valid is history (equivalent to -c), everything else means search. Default is search.

- **ANI\_CLI\_SKIP\_INTRO**

  Controls if ani-skip is used to skip intros (works with mpv only). Can be 0 (disabled) or 1 (enabled). Default is 0.

- **ANI\_CLI\_NO\_DETACH**

  Controls if mpv is detached from the main process for playback, which can be useful for use with terminal renderers such as kitty. (works with mpv only). Can be 0 (disabled) or 1 (enabled). Default is 0.

- **ANI\_CLI\_SKIP\_TITLE**

  Overrides the anime title to query for skip times. Can be any string value. Default is empty, resolving to the anime title as given by ani-cli.

## EPISODE SELECTION

Multiple episodes can be chosen using fzf (or alternative frontend's) multi-selection mode. For this refer to their instructions.

## BUGS

Use the GitHub issue tracker: https://github.com/pystardust/ani-cli/issues

## COPYRIGHT

ani-cli is licensed under the GNU General Public License v3.0

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see \<http://www.gnu.org/licenses/\>.
