📦pystardust / ani-cli
← 返回首页
A cli tool to browse and play anime
⚖️ GPL-3.0#shell#cli#anime#posix#steamdeck📅 创建于 2021-06-09🔄 更新于 2026-10-22
🔗 GitHub Shell

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有





Discord Matrix

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

Showcase

ani-cli-demo.webm

Table of Contents

Fixing errors

If you encounter Blocked by cloudflare. Try installing curl-impersonate then install curl-impersonate from your respective package manager. If it is not available, then download from their github by running the following commands.

curl -LO "https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz"
sudo tar xf curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz -C /usr/local/bin

For other network errors, check the current status by clicking on these badges:

For any other 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.

Install

Packaging status

Tier 1 Support: Linux, Mac, Android

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

Linux #### Native Packages *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
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:
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:
yay -S ani-cli
Also consider `ani-cli-git`
Gentoo Build and install from the GURU:
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge -a ani-cli
Consider using the 9999 ebuild.
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](https://en.opensuse.org/Additional_package_repositories#Packman). To add the ani-cli copr repo, update then install ani-cli run (on both versions):
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 [HomeBrew](https://docs.brew.sh/Installation) if not installed.
brew tap pystardust/ani-cli https://github.com/pystardust/ani-cli.git
brew trust pystardust/ani-cli
brew install ani-cli && 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)](https://termux.com/) #### Termux package
pkg up -y
pkg install ani-cli
If you're using Android 14 make sure to run this due to [#1206](https://github.com/pystardust/ani-cli/issues/1206):
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. **Important Note:** The streams only play with the right referrer, which mpv on Android has to read from a config file: - Run this command and allow storage permissions:
termux-setup-storage
- Go to MPV > Settings > Advanced > mpv.conf - add this line:
include="/storage/emulated/0/mpv/mpv.config.mp4"
- Make sure to have storage (photos and videos on newer android) permission allowed to both MPV and termux. These permissions are asked by mpv if you click on the "file picker (legacy)" option. VLC on Android cannot be given the referrer, so it does not play the current provider.

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

While officially supported, 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)](https://scoop.sh/) 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.
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](https://raw.githubusercontent.com/pystardust/ani-cli/HEAD/.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](https://raw.githubusercontent.com/pystardust/ani-cli/HEAD/.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](https://raw.githubusercontent.com/pystardust/ani-cli/HEAD/.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](https://raw.githubusercontent.com/pystardust/ani-cli/HEAD/.assets/windows-terminal-git-bash-4.png) Now restart Windows Terminal. In the Git Bash profile, install `ani-cli` by running the following commands.
scoop bucket add extras
scoop install ani-cli
Next, install its dependencies.
scoop bucket add extras
scoop install fzf ffmpeg mpv
Consider also installing `yt-dlp` 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. #### Windows: Known Problems and Solutions 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](https://github.com/ScoopInstaller/Extras/pull/13342). - 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](https://mpv.io/manual/stable/) 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)](https://github.com/pystardust/ani-cli/issues/1266#issuecomment-1926945757). 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
cat > /etc/apk/repositories <<'EOF'
https://dl-cdn.alpinelinux.org/alpine/edge/main
https://dl-cdn.alpinelinux.org/alpine/edge/community
https://dl-cdn.alpinelinux.org/alpine/edge/testing
EOF

apk update
apk add --upgrade apk-tools
apk upgrade --available
Further details: https://github.com/ish-app/ish/issues/2530 Then run this:
apk add grep sed curl-impersonate bash fzf git ncurses patch 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
For Downloads on iOS in iSH, omit the usual `-d` flag and instead select the Download option in VLC: image
Steam Deck #### Copypaste script: * 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)
[ ! -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

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 #### Installation in steps: ##### Install mpv (Flatpak version):
flatpak install io.mpv.Mpv
press enter("A" button on Steam Deck) on questions ##### Install [fzf](https://github.com/junegunn/fzf):
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
[ ! -d ~/.local/bin ] && mkdir ~/.local/bin && echo "export PATH=$HOME/.local/bin:\$PATH" >> ".$(echo $SHELL | sed -nE "s|.*/(.*)\$|\1|p")rc"
##### Install [yt-dlp](https://github.com/yt-dlp/yt-dlp) (needed for download feature only):
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
##### Install [patch](https://savannah.gnu.org/projects/patch/) (needed for self-update feature [ -U ] ):
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/
##### Install ani-cli:
git clone https://github.com/pystardust/ani-cli.git ~/.ani-cli
cp ~/.ani-cli/ani-cli ~/.local/bin/
##### Optional: add desktop entry:
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 #### Copypaste script:
sudo pkg install mpv fzf 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
#### Installation in steps: ##### Install dependencies:
sudo pkg install mpv fzf yt-dlp patch
##### Install ani-cli: install git if you haven't already
sudo pkg install git
install from source:
git clone "https://github.com/pystardust/ani-cli.git"
sudo cp ani-cli/ani-cli /usr/local/bin
rm -rf ani-cli
Ubuntu Touch *Note: mpv is in desktop mode, so its a bit hard to navigate on a phone.* The problem is that you need to install and use nix for this to work, and for that you will need to use either NixManager (GUI) or crackle (CLI). we will be using crackle for copypaste script but feel free to use one or the other. #### Copypaste script:
wget -q -O - https://github.com/tuxecure/crackle/releases/latest/download/upgradefunc| bash -s setup
crackle install ani-cli mpv
This can be achieved from NixManager as well, my personal recommendation is to use NixManager as GUI is easier to use on phones.

Installing from source

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

Install dependencies (See below)

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

Uninstall

* apt:
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:
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:
zypper remove ani-cli
zypper removerepo ani-cli
You might want to remove `packman-essentials` if you don't need it otherwise * AUR:
yay -R ani-cli
* Scoop:
scoop uninstall ani-cli
* Linux:
sudo rm "/usr/local/bin/ani-cli"
* Mac:
brew uninstall ani-cli && brew untap pystardust/ani-cli
* Windows: In **Git Bash** run (as administrator):
rm "/usr/bin/ani-cli"
* Termux package
pkg remove ani-cli
* Android:
rm "$PREFIX/bin/ani-cli"
* Steam Deck
rm "~/.local/bin/ani-cli"
rm -rf ~/.ani-cli
optionally: remove dependencies:
rm ~/.local/bin/yt-dlp
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 ffmpeg ncurses

Dependencies

  • grep
  • sed
  • curl
  • mpv - Video Player
  • iina - mpv replacement for MacOS
  • yt-dlp - m3u8 Downloader
  • ffmpeg - m3u8 Downloader (fallback)
  • fzf - User interface
  • ani-skip (optional, for auto-skipping anime intros)
  • patch - Self updating

Ani-Skip

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.

FAQ

* Can I change subtitle language or turn them off? - Subtitles are a separate english track handed to the player, so you can toggle them there (mpv: press `v`). Other languages are not offered. * 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`.

Homies

  • ani-cli-rs: A cross-platform Rust port of ani-cli with two independent Anikoto catalogs and native MegaPlay/KotoCDN playback. (Rust)
  • jerry: stream anime with anilist tracking and syncing, with discord presence (Shell)
  • anipy-cli: ani-cli rewritten in python (Python)
  • mov-cli: Watch everything from your terminal. (Python)
  • doccli: [LINUX / WINDOWS] A CLI to watch anime with ENGLISH sub/dub or POLISH subtitles options, AniList integration, Discord RPC, and native Windows installer (Python)
  • GoAnime: A TUI tool to browse, play, and download anime in Portuguese and English, with Discord RPC, AniList integration, and intro skipping. (Go)
  • Curd: A CLI tool to watch anime with Anilist, Discord RPC, Skip Intro/Outro/Filler/Recap (Go)
  • ani-skip: Automatically skip opening and ending sequences for IINA on MacOS (Typescript, official IINA plugin API)

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR