ani-cli

pystardustGPL-3.0活跃维护

在终端里搜索、浏览并直接播放动漫的命令行工具,基于 fzf 交互选择,支持 Linux、macOS、Termux 和 Steam Deck,还能用 syncplay 和朋友同步观看。

A cli tool to browse and play anime

v5.1发布于 2026-09-11 19:02 UTC14,111star +8 / 7 天901fork同步于 2026-11-10 05:27 UTC

怎么上手

从 README 代码块原样提取,可能是其中一种安装方式
curl -LO "https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz"
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
git clone --depth 1 https://github.com/pystardust/ani-cli ~/.ani-cli
硬件要求按 README 关键词推断
支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v5.1
  1. v5.1最新正式版2026-09-11 · 2026-09-11 19:02 UTC

    In this release, iOS is broken, we hope to restore it in the future. You may also want to back up your history due to yet another provider change. Let's hope this one lasts a little longer.

    What's Changed

    New Contributors

    Full Changelog: https://github.com/pystardust/ani-cli/compare/v5.0...v5.1

  2. v5.02026-08-01 · 2026-08-01 14:23 UTC
    查看更新说明

    After the continued deterioration of allanime, we have now moved to anidb.app for our V5 provider. Special shoutout to @VVAT3R for pioneering the scraping of that site while we still worked on v4.15. That made things much easier for us to port.

    The history format has changed slightly with this new provider, so you'll need to migrate it.

    What's Changed

    • Feature: switch to anidb as provider for v5 by @71zenith in #1830

    • Documentation

      • add Windows Botan installation instructions by @port19x in #1817
      • Update ani-cli-rs entry in README by @vorlie in #1832
      • add shell command instructions to CONTRIBUTING.md by @RaitaroH in #1833
      • remove broken and archived projects homies by @candrapersada in #1840
    • Chore: formula version bump by @botantony in #1813

    New Contributors

    • @vorlie made their first contribution in #1832
    • @RaitaroH made their first contribution in #1833

    Full Changelog: https://github.com/pystardust/ani-cli/compare/v4.15...v5.0

  3. v4.152026-07-23 · 2026-07-23 16:20 UTC
    查看更新说明

    A lot has happened this month, with the continued breakage of allanime (#1763) and the subsequent fixes in #1779.

    Due to the changes in leadership at allanime, which give reason to believe that instability would continue if we kept this provider, we are now looking to change to a different one for v5. Until v5 is released, we will address any new breakage that may arise in the fix branch that was used in the latest PR.

    I would also like to welcome our new windows maintainer @vorlie.

    What's Changed

    • Documentation

      • docs: add Ubuntu Touch docs and reorganize unsupported into Tier 3 by @ChromiumOS-Guy in #1780
      • docs: add new windows maintainer to readme by @port19x in #1808
      • docs: bump min version to 4.12 for packaging status by @port19x in #1663
      • docs: first result for ctrl+f "discord" should be link to your discord by @MulverineX in #1764
      • docs: fix accidental dead link in #1780 by @ChromiumOS-Guy in #1786
      • docs: update broken aria2c download links for Steam Deck by @wwhsaber in #1746
    • Bug Fixes

      • fix: Add AES-256-GCM encryption by @71zenith in #1779
      • fix: escape sed special chars in update_history to handle & in titles by @saschabuehrle in #1619
      • fix: fixed regex for Status and Countdown Times by @buggedbeatle998 in #1717
      • fix: titles with no airing year info now show by @Dojjino858 in #1789
    • Feature

      • feat: add Homebrew formula for easier installation on macOS by @botantony in #1782
      • feat: added year aired to results view by @aaron-r-campbell in #1784
      • feat: keep ongoing anime selectable in -c and integrate nextep countdown by @sghoshm in #1707
      • feat: mp4upload provider, refactor, better mpv android support by @CoolnsX in #1704
    • CI

      • ci: build our own botan windows binary by @port19x in #1810

    New Contributors

    • @wwhsaber made their first contribution in #1746
    • @MulverineX made their first contribution in #1764
    • @sghoshm made their first contribution in #1707
    • @buggedbeatle998 made their first contribution in #1717
    • @saschabuehrle made their first contribution in #1619
    • @aaron-r-campbell made their first contribution in #1784
    • @botantony made their first contribution in #1782
    • @Dojjino858 made their first contribution in #1789

    Full Changelog: https://github.com/pystardust/ani-cli/compare/v4.14...v4.15

  4. v4.142026-05-01 · 2026-05-01 14:33 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/pystardust/ani-cli/compare/v4.13...v4.14

  5. v4.132026-04-26 · 2026-04-26 13:35 UTC
    查看更新说明

    Yet another maintenance release updating the decryption keys

    What's Changed

    Full Changelog: https://github.com/pystardust/ani-cli/compare/v4.12...v4.13

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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.

    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.

    sudo apt install ani-cli
    

    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.

    Build and install from the AUR:

    yay -S ani-cli
    

    Also consider ani-cli-git

    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
    

    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):

    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

    Install HomeBrew 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.

    Alternatively, a MacPorts package is available. Install it with sudo port install ani-cli.

    Install termux (Guide)

    Termux package
    pkg up -y
    pkg install ani-cli
    

    If you're using Android 14 make sure to run this due to #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.

    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.

    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.

    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

    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

    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

    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

    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.
    • 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.

    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.

    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:

    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:
    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 (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 (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

    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
    

    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)