Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

pystardust/ani-cli

A cli tool to browse and play anime

pystardust/ani-cli.json
{
"createdAt": "2021-06-09T12:23:30Z",
"defaultBranch": "master",
"description": "A cli tool to browse and play anime",
"fullName": "pystardust/ani-cli",
"homepage": "",
"language": "Shell",
"name": "ani-cli",
"pushedAt": "2025-09-15T07:42:56Z",
"stargazersCount": 10123,
"topics": [
"anime",
"cli",
"fzf",
"linux",
"mac",
"posix",
"rofi",
"shell",
"steamdeck",
"syncplay",
"terminal",
"termux",
"webscraping",
"windows"
],
"updatedAt": "2025-11-25T22:51:58Z",
"url": "https://github.com/pystardust/ani-cli"
}




A cli to browse and watch anime (alone AND with friends). This tool scrapes the site allmanga.

Showcase

ani-cli-demo.webm

  • [Fixing errors]!(#fixing-errors)
  • [Install]!(#install)
    • [Tier 1: Linux, Mac, Android]!(#tier-1-support-linux-mac-android)
    • [Tier 2: Windows, WSL, iOS, Steam Deck, FreeBSD]!(#tier-2-support-windows-wsl-ios-steam-deck-freebsd)
    • [From Source]!(#installing-from-source)
  • [Uninstall]!(#uninstall)
  • [Dependencies]!(#dependencies)
    • [Ani-Skip]!(#ani-skip)
  • [FAQ]!(#faq)
  • [Homies]!(#homies)
  • [Contribution Guidelines]!(./CONTRIBUTING.md)
  • [Disclaimer]!(./disclaimer.md)

If you encounter No results found (and are sure the prompt was correct) or any breaking issue, then make sure you are on latest version by typing sudo ani-cli -U to update on Linux, Mac and Android. On Windows, run ani-cli -U. If after this the issue persists then open an issue.

Packaging status

These Platforms have rock solid support and are used by maintainers and large parts of the userbase.

Linux

Native packages have a more robust update cycle, but sometimes they are slow to upgrade.
If the one for your platform is up-to-date we suggest going with it.

Debian 13/unstable
Terminal window
sudo apt install ani-cli
Fedora

To install mpv (and vlc) you need RPM Fusion free enabled. Simply follow the instructions here: https://rpmfusion.org/Configuration To be able to install syncplay, you’ll need to enable this copr repo (instructions included): https://copr.fedorainfracloud.org/coprs/batmanfeynman/syncplay/.

To install ani-cli:

Terminal window
sudo dnf copr enable derisis13/ani-cli
sudo dnf install ani-cli

If for your distro uses rpm and you would like to see a native package, open an issue.

Arch

Build and install from the AUR:

Terminal window
yay -S ani-cli

Also consider ani-cli-git

Gentoo

Build and install from the GURU:

Terminal window
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge -a ani-cli

Consider using the 9999 ebuild.

Terminal window
sudo emerge -a =app-misc/ani-cli-9999
OpenSuse

On Suse the provided MPV and VLC packages are missing features that are used by ani-cli. The only required is the “Only Essentials” repository which has versions for each Suse release. You can find instructions on this here.

To add the ani-cli copr repo, update then install ani-cli run (on both versions):

Terminal window
zypper addrepo https://download.copr.fedorainfracloud.org/results/derisis13/ani-cli/opensuse-tumbleweed-x86_64/ ani-cli
zypper dup
zypper install ani-cli

You’ll get a warning about Signature verification failed [4-Signatures public key is not available] but this can be ignored from the prompt.

Note: package is noarch, so any architecture should work, even though the repo is labelled x86-64

MacOS

Install dependencies [(See below)]!(#dependencies)

Install HomeBrew if not installed.

Terminal window
git clone "https://github.com/pystardust/ani-cli.git" && cd ./ani-cli
cp ./ani-cli "$(brew --prefix)"/bin
cd .. && rm -rf ./ani-cli

To install (with Homebrew) the dependencies required on Mac OS, you can run:

Terminal window
brew install curl grep aria2 ffmpeg git fzf yt-dlp && \
brew install --cask iina

Why iina and not mpv? Drop-in replacement for mpv for MacOS. Integrates well with OSX UI. Excellent support for M1. Open Source.

Android

Install termux (Guide)

Terminal window
pkg up -y
pkg install ani-cli

If you’re using Android 14 make sure to run this due to #1206:

Terminal window
pkg install termux-am

For players you can use the apk (playstore/fdroid) versions of mpv and vlc. Note that these cannot be checked from termux so a warning is generated when checking dependencies.

Tier 2 Support: Windows, WSL, iOS, Steam Deck, FreeBSD

Section titled “Tier 2 Support: Windows, WSL, iOS, Steam Deck, FreeBSD”

While officially supported (except FreeBSD), installation is more involved on these platforms and sometimes issues arise.
Reach out if you need help.

Windows

ani-cli is on scoop. Please read further for setup instructions.

We will set up the bash.exe that comes with Git for Windows to be used with Windows Terminal. You may use terminals such as Wezterm or Alacritty, but this guide only covers Windows Terminal. The Git Bash terminal (i.e., mintty) [has problems with fzf]!(#windows-known-problems-and-solutions).

First, you’ll need to install the scoop package manager. (Install) Follow quickstart.

Next, get Windows Terminal. It comes preinstalled on Windows 11. If you do not have it, install it by running the following commands in powershell.

Terminal window
scoop bucket add extras
scoop install extras/windows-terminal

Next, get git. If you have it, please update it. If you do not already have it, install it by running scoop install git in powershell.

Ensure that Git Bash is present in the Windows Terminal tab drop down, as shown below.

![windows-terminal-git-bash-1.png]!(.assets/windows-terminal-git-bash-1.png)

If it is not there, please add it. To add it, first click the drop-down button beside the new tab button (shown above).

Then, navigate to Settings > Profiles > Add a new profile. Click + New empty profile.

![windows-terminal-git-bash-2.png]!(.assets/windows-terminal-git-bash-2.png)

Next:

  • If you installed git with scoop: Set Name as “Git Bash”, set Command line as %GIT_INSTALL_ROOT%\bin\bash.exe -i -l, and set Icon as %GIT_INSTALL_ROOT%\mingw64\share\git\git-for-windows.ico.
  • If you installed git by other means: Set Name as “Git Bash”, set Command line as C:\Program Files\Git\bin\bash.exe -i -l, and set Icon as C:\Program Files\Git\mingw64\share\git\git-for-windows.ico.

Next, set Starting Directory to %USERPROFILE%, and ensure that Hide profile from dropdown is set to “Off” (otherwise you won’t be able to see this profile in the drop down).

![windows-terminal-git-bash-3.png]!(.assets/windows-terminal-git-bash-3.png)

Now save your changes.

You will use this profile to run ani-cli in this bash shell. Under Startup in Windows Terminal Settings, you may set this profile as the default so that you do not have to switch to it every time you want to run ani-cli.

![windows-terminal-git-bash-4.png]!(.assets/windows-terminal-git-bash-4.png)

Now restart Windows Terminal. In the Git Bash profile, install ani-cli by running the following commands.

Terminal window
scoop bucket add extras
scoop install ani-cli

Next, install its dependencies.

Terminal window
scoop bucket add extras
scoop install fzf ffmpeg mpv

Consider also installing yt-dlp and aria2 for downloading to work.

Restart Windows Terminal. Go to the Git Bash profile and update ani-cli with ani-cli -U. You will use this keep ani-cli up-to-date.

Now you can use ani-cli. Read the output of ani-cli -h for more help.

If you have a problem, please update ani-cli to the latest version with ani-cli -U. If you still have a problem, please read further.

  • Stuck in “Search anime:”. This shouldn’t happen if you are using the Windows Terminal + Bash setup described above. It happens if you are using the Git Bash terminal (i.e., the mintty terminal). This is a problem between fzf and mintty, which should be resolved in future versions of fzf. For the time being, either use the Windows Terminal setup described above or, if you are dead-set on using the mintty terminal, run export MSYS=enable_pcon before running ani-cli.
  • “No such file or directory” or WSL-related errors: This shouldn’t happen if you are using the Window Terminal + Bash setup described above. This happens if you run ani-cli in powershell or cmd. This is due WSL’s bash.exe being called instead of Git for Windows’ bash.exe in %USERPROFILE%\scoop\shims\ani-cli.cmd. If you must use powershell or cmd, edit the %USERPROFILE%\scoop\shims\ani-cli.cmd file. In File Explorer, go to the C:\Users\USERNAME\scoop\shims directory and open the ani-cli.cmd file with notepad. Next:
    • If you installed git with scoop, replace @bash with @"%GIT_INSTALL_ROOT%\bin\bash.exe", or
    • If you installed git by other means, replace @bash with @"C:\Program Files\Git\bin\bash.exe". This should be fixed if the ani-cli scoop manifest gets updated in this PR.
  • curl can cause issues. ani-cli has been tested unsuccessfully with curl 7.83.1 and successfully with 7.86.0. If you run into issues, try installing a newer one with scoop.
  • If you installed mpv with scoop, your mpv configuration will get read from C:\Users\USERNAME\scoop\apps\mpv\current\portable_config. See the mpv documentation regarding portable_config for more details.
WSL

Follow the installation instructions of your Linux distribution.

Note that the media player (mpv or vlc) will need to be installed on Windows, not WSL. See the justification for this in the comment (here). Instructions on how to use the media player from WSL instead are also included in the linked comment.

When installing the media player on Windows, make sure that it is on the Windows Path. An easy way to ensure this is to download the media player with a package manager (on Windows, not WSL) such as scoop.

iOS

Install iSH and VLC from the app store.

Make sure apk is updated using apk update; apk upgrade then run this:

Terminal window
apk add grep sed curl fzf git aria2 ncurses patch
apk add ffmpeg
git clone --depth 1 https://github.com/pystardust/ani-cli ~/.ani-cli
cp ~/.ani-cli/ani-cli /usr/local/bin/ani-cli
chmod +x /usr/local/bin/ani-cli
rm -rf ~/.ani-cli

note that downloading is going to be very slow. This is an iSH issue, not an ani-cli issue.

Steam Deck
  • Switch to Desktop mode (STEAM Button > Power > Switch to Desktop)
  • Open Konsole (Steam Deck Icon in bottom left corner > System > Konsole)
  • Copy the script, paste it in the CLI and press Enter(“A” button on Steam Deck)
Terminal window
[ ! -d ~/.local/bin ] && mkdir ~/.local/bin && echo "export PATH=$HOME/.local/bin:\$PATH" >> ".$(echo $SHELL | sed -nE "s|.*/(.*)\$|\1|p")rc"
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
mkdir ~/.aria2c
curl -o ~/.aria2c/aria2-1.36.0.tar.bz2 https://github.com/q3aql/aria2-static-builds/releases/download/v1.36.0/aria2-1.36.0-linux-gnu-64bit-build1.tar.bz2
tar xvf ~/.aria2c/aria2-1.36.0.tar.bz2 -C ~/.aria2c/
cp ~/.aria2c/aria2-1.36.0-linux-gnu-64bit-build1/aria2c ~/.local/bin/
chmod +x ~/.local/bin/aria2c
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/.local/bin/yt-dlp
chmod +x ~/.local/bin/yt-dlp
mkdir ~/.patch
curl -o ~/.patch/patch.tar.zst https://mirror.sunred.org/archlinux/core/os/x86_64/patch-2.8-1-x86_64.pkg.tar.zst
tar xvf ~/.patch/patch.tar.zst -C ~/.patch/
cp ~/.patch/usr/bin/patch ~/.local/bin/
git clone https://github.com/pystardust/ani-cli.git ~/.ani-cli
cp ~/.ani-cli/ani-cli ~/.local/bin/
flatpak install io.mpv.Mpv

press enter(“A” button on Steam Deck) on questions

Terminal window
flatpak install io.mpv.Mpv

press enter(“A” button on Steam Deck) on questions

Terminal window
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

press enter(“A” button on Steam Deck) on questions

Make a ~/.local/bin folder if doesn’t exist and add it to $PATH
Section titled “Make a ~/.local/bin folder if doesn’t exist and add it to $PATH”
Terminal window
[ ! -d ~/.local/bin ] && mkdir ~/.local/bin && echo "export PATH=$HOME/.local/bin:\$PATH" >> ".$(echo $SHELL | sed -nE "s|.*/(.*)\$|\1|p")rc"
Terminal window
mkdir ~/.aria2c
curl -o ~/.aria2c/aria2-1.36.0.tar.bz2 https://github.com/q3aql/aria2-static-builds/releases/download/v1.36.0/aria2-1.36.0-linux-gnu-64bit-build1.tar.bz2
tar xvf ~/.aria2c/aria2-1.36.0.tar.bz2 -C ~/.aria2c/
cp ~/.aria2c/aria2-1.36.0-linux-gnu-64bit-build1/aria2c ~/.local/bin/
chmod +x ~/.local/bin/aria2c
Terminal window
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/.local/bin/yt-dlp
chmod +x ~/.local/bin/yt-dlp
Terminal window
mkdir ~/.patch
curl -o ~/.patch/patch.tar.zst https://mirror.sunred.org/archlinux/core/os/x86_64/patch-2.8-1-x86_64.pkg.tar.zst
tar xvf ~/.patch/patch.tar.zst -C ~/.patch/
cp ~/.patch/usr/bin/patch ~/.local/bin/
Terminal window
git clone https://github.com/pystardust/ani-cli.git ~/.ani-cli
cp ~/.ani-cli/ani-cli ~/.local/bin/
echo '[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=bash -c "source $HOME/.'$(echo $SHELL | sed -nE "s|.*/(.*)\$|\1|p")'rc && konsole --fullscreen -e ani-cli"
Name=ani-cli' > $HOME/.local/share/applications/ani-cli.desktop

The .desktop entry will allow to start ani-cli in Konsole directly from “Gaming Mode” In Steam Desktop app: Add game > Add a non-steam game > tick a box for ani-cli > Add selected programs

FreeBSD
Terminal window
sudo pkg install mpv fzf aria2 yt-dlp patch git
git clone "https://github.com/pystardust/ani-cli.git"
sudo cp ani-cli/ani-cli /usr/local/bin
rm -rf ani-cli
Terminal window
sudo pkg install mpv fzf aria2 yt-dlp patch

install git if you haven’t already

Terminal window
sudo pkg install git

install from source:

Terminal window
git clone "https://github.com/pystardust/ani-cli.git"
sudo cp ani-cli/ani-cli /usr/local/bin
rm -rf ani-cli

This method works for any unix-like operating system and is a baseline for porting efforts.

Install dependencies [(See below)]!(#dependencies)

Terminal window
git clone "https://github.com/pystardust/ani-cli.git"
sudo cp ani-cli/ani-cli /usr/local/bin
rm -rf ani-cli
  • apt:
Terminal window
sudo apt remove ani-cli
# to remove the repository from apt
sudo rm -f /etc/apt/trusted.gpg.d/ani-cli.asc /etc/apt/sources.list.d/ani-cli-debian.list
  • dnf:
Terminal window
sudo dnf remove ani-cli # for ani-cli
# disable the repo in dnf
dnf copr disable derisis13/ani-cli

You might want to uninstall RPM fusion if you don’t use it otherwise

  • zypper:
Terminal window
zypper remove ani-cli
zypper removerepo ani-cli

You might want to remove packman-essentials if you don’t need it otherwise

  • AUR:
Terminal window
yay -R ani-cli
  • Scoop:
Terminal window
scoop uninstall ani-cli
  • Linux:
Terminal window
sudo rm "/usr/local/bin/ani-cli"
  • Mac:
Terminal window
rm "$(brew --prefix)/bin/ani-cli"
  • Windows: In Git Bash run (as administrator):
Terminal window
rm "/usr/bin/ani-cli"
  • Termux package
Terminal window
pkg remove ani-cli
  • Android:
Terminal window
rm "$PREFIX/bin/ani-cli"
  • Steam Deck
Terminal window
rm "~/.local/bin/ani-cli"
rm -rf ~/.ani-cli

optionally: remove dependencies:

Terminal window
rm ~/.local/bin/aria2c
rm ~/.local/bin/yt-dlp
rm -rf "~/.aria2"
rm -rf "~/.fzf"
flatpak uninstall io.mpv.Mpv
  • iOS
rm -rf /usr/local/bin/ani-cli

To uninstall other dependencies:

apk del grep sed curl fzf git aria2 ffmpeg ncurses
  • grep
  • sed
  • curl
  • mpv - Video Player
  • iina - mpv replacement for MacOS
  • aria2c - Download manager
  • yt-dlp - m3u8 Downloader
  • ffmpeg - m3u8 Downloader (fallback)
  • fzf - User interface
  • ani-skip (optional)
  • patch - Self updating

Ani-skip is a script to automatically skip anime opening sequences, making it easier to watch your favorite shows without having to manually skip the intros each time (from the original README).

For install instructions visit ani-skip.

Ani-skip uses the external lua script function of mpv and as such – for now – only works with mpv.

Warning: For now, ani-skip does not seem to work under Windows.

Note: It may be, that ani-skip won’t know the anime you’re trying to watch. Try using the --skip-title <title> command line argument. (It uses the aniskip API and you can contribute missing anime or ask for including it in the database on their discord server).

  • Can I change subtitle language or turn them off? - No, the subtitles are baked into the video.
  • Can I watch dub? - Yes, use --dub.
  • Can I change dub language? - No.
  • Can I change media source? - No (unless you can scrape that source yourself).
  • Can I use vlc? - Yes, use --vlc or export ANI_CLI_PLAYER=vlc.
  • Can I adjust resolution? - Yes, use -q resolution, for example ani-cli -q 1080.
  • How can I download? - Use -d, it will download into your working directory.
  • Can i change download folder? - Yes, set the ANI_CLI_DOWNLOAD_DIR to your desired location.
  • How can I bulk download? - Use -d -e firstepisode-lastepisode, for example ani-cli onepiece -d -e 1-1000.

Note: All features are documented in ani-cli --help.

  • animdl: Ridiculously efficient, fast and light-weight (supports most sources: allmanga, zoro … (Python)
  • jerry: stream anime with anilist tracking and syncing, with discord presence (Shell)
  • anipy-cli: ani-cli rewritten in python (Python)
  • mangal: Download & read manga from any source with anilist sync (Go)
  • lobster: Watch movies and series from the terminal (Shell)
  • mov-cli: Watch everything from your terminal. (Python)
  • dra-cla: ani-cli equivalent for korean dramas (Shell)
  • redqu: A media centric reddit client (Clojure)
  • doccli: A cli to watch anime with POLISH subtitles (Python)
  • GoAnime: A CLI tool to browse, play, and download anime in Portuguese(Go)
  • Curd: A CLI tool to watch anime with Anilist, Discord RPC, Skip Intro/Outro/Filler/Recap (Go)
  • FastAnime: browser anime experience from the terminal (Python)
  • ani-skip: Automatically skip opening and ending sequences for IINA on MacOS (Typescript, official IINA plugin API)