h3ray3s/Ani-plus

A blazing-fast, modern anime streaming and download CLI

Shell

4

30 commits

updated Oct 8, 2026

See the code

See what people are saying

SourceMessageScoreDate

Ani-plus — the premium animie cli, for my weebs (r/linux)

Been using ani-cli for a while, and one thing kept bugging me: downloading a whole series meant running it once per episode. So I took it and added the features I felt were missing. What's new: • Batch download — pick a range (all, 1-24, etc.) and it grabs them all in one go. • Auto-organises into…

0

Oct 8, 2026

README

Ani-plus



A CLI to browse and watch anime — inspired by ani-cli — with batch download, resume detection, persistent config, and more.

⚠️ This project is still in active development. New servers and features will be added in upcoming updates.


Why ani-plus?

FeatureAni-plus
Batch download✅ full batch loop
Auto-organises files into folders by series name✅
Resume downloads from last episode✅ detects existing files
Persistent download dir✅ -d /path saves to config
Interactive menu after anime select✅ Watch / Download / Quit
Quality preference remembered✅ saved in config
All ani-cli flags✅ preserved

Table of Contents


Showcase

$ ani-plus

Search anime: cyberpunk

  ▸ Cyberpunk: Edgerunners
    Cyberpunk 2077
    Cyberpunk: 2077 (Subbed)
    ...

Selected: Cyberpunk: Edgerunners
Episodes: 10 available
Save dir: /home/hera/anime

What would you like to do?
  1) Watch now
  2) Batch download
  3) Quit
Choice [1]: 2

Folder:  /home/hera/anime/Cyberpunk Edgerunners
Local progress: up to episode 3
Enter range (e.g. 4-24), or 'all' to resume from 4: 4-10

Choose quality:
  ▸ 1080p
    720p
    ...

Downloading Cyberpunk: Edgerunners Episode 4...
Downloading Cyberpunk: Edgerunners Episode 5...
...
Download complete: Cyberpunk: Edgerunners
Add another anime? (y/n): n

Installation

Please use install script as AUR is facing technical issues

For most linux Distro


curl -fsSL https://github.com/h3ray3s/Ani-plus/releases/latest/download/ani-plus-1.0.0-install.sh | sudo bash

Arch Linux (AUR)

# Using yay
yay -S ani-plus

# Using paru
paru -S ani-plus

Manual install from AUR:

git clone https://aur.archlinux.org/ani-plus.git
cd ani-plus
makepkg -si

Debian / Ubuntu

# Coming soon — pending Debian packaging
# For now, install from source (see below)

Fedora

# Coming soon — pending COPR setup
sudo dnf copr enable h3ray3s/ani-plus
sudo dnf install ani-plus

OpenSUSE

# Coming soon
zypper addrepo https://download.opensuse.org/repositories/home:/h3ray3s/ani-plus.repo
zypper install ani-plus

macOS

# Homebrew tap (coming soon)
brew tap h3ray3s/ani-plus
brew install ani-plus

Android (Termux)

pkg update
pkg install curl fzf mpv yt-dlp ffmpeg
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o $PREFIX/bin/ani-plus
chmod +x $PREFIX/bin/ani-plus

Setup MPV referrer for Android:

termux-setup-storage
# In MPV app: Settings → Advanced → mpv.conf
# Add: include="/storage/emulated/0/mpv/mpv.config.mp4"

Steam Deck

Full install script (paste into Konsole in Desktop Mode):

# Dependencies
flatpak install -y io.mpv.Mpv
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

# yt-dlp for downloads
mkdir -p ~/.local/bin
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

# PATH
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# ani-plus
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o ~/.local/bin/ani-plus
chmod +x ~/.local/bin/ani-plus

FreeBSD

sudo pkg install mpv fzf yt-dlp ffmpeg curl
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o /usr/local/bin/ani-plus
sudo chmod +x /usr/local/bin/ani-plus

From Source

Works on any Unix-like OS.

git clone https://github.com/h3ray3s/ani-plus.git
cd ani-plus
sudo cp ani-plus.sh /usr/local/bin/ani-plus
sudo chmod +x /usr/local/bin/ani-plus

Usage

Ani-plus Usage Guide

A visual walkthrough of every screen you'll see.


Table of Contents


Starting Ani-plus

PLEASE SET DOWNLOAD DIR BY ani-plus -d /path

Just type ani-plus in your terminal.

$ ani-plus

You'll immediately be dropped into the search prompt.

Search anime: █

Search Flow

Type any anime name. Hit Enter.

Search anime: JBA No more balls

Ani-plus queries hianime.at and shows you a menu of matching results.

┌──────────────────────────────────────────┐
│  Select anime:                           │
│                                          │
│  ▸ JBA No more balls                     │
│    JBA No more balls (Dub)               │
│    JoJo's Bizarre Adventure              │
│    JoJo's Bizarre Adventure: Stone Ocean │
│    JoJo's Bizarre Adventure (Subbed)     │
│    ...                                   │
└──────────────────────────────────────────┘

Use arrow keys to navigate, Enter to select.


The Mode Menu

Once you pick an anime, Ani-plus fetches the episode list and shows you what to do next.

Selected: JBA No more balls
Episodes: 12 available
Save dir: /home/hera/anime

What would you like to do?
  1) Watch now
  2) Batch download
  3) Quit
Choice [1]: █

Three routes:

ChoiceWhat happens
1 or EnterWatch an episode now
2Batch download a range
3Exit cleanly

Watch Flow

Choose 1. Then pick an episode.

┌──────────────────────────────────────────┐
│  Select episode:                         │
│                                          │
│  ▸ 1                                     │
│    2                                     │
│    3                                     │
│    4                                     │
│    ...                                   │
└──────────────────────────────────────────┘

Select one, and Ani-plus:

  1. Fetches the stream URLs
  2. Picks the best quality
  3. Launches mpv (or your configured player)
hianime.at links fetched
Playing episode 1...

Multi-select for ranges: hold Tab to select multiple episodes, or enter a range directly with -e "1-5".


Batch Download Flow

Choose 2. Ani-plus scans the target folder first.

Anime:   JBA No more balls
Folder:  /home/hera/anime/JBA No more balls
Episodes available: 12

Enter range (e.g. 1-12), or 'all': █

Two ways to specify:

InputMeaning
1-12Download episodes 1 through 12
allDownload every episode
5Download just episode 5

After you type the range, Ani-plus asks for quality.


Resume Detection

If you already have episodes in the target folder, Ani-plus tells you.

Anime:   JBA No more balls
Folder:  /home/hera/anime/JBA No more balls
Episodes available: 12
Local progress: up to episode 3

Enter range (e.g. 4-24), or 'all' to resume from 4: █

Type all and it starts at episode 4. Type 5-8 and it downloads just those. No duplicate downloads.

How it works: Ani-plus scans the folder for .mp4, .mkv, and .webm files, extracts the highest episode number it finds, and picks up from there.


Quality Selection

After picking a range, Ani-plus asks for video quality.

┌──────────────────────────────────────────┐
│  Quality:                                │
│                                          │
│  ▸ best                                  │
│    1080p                                 │
│    720p                                 │
│    480p                                 │
│    360p                                 │
│    240p                                 │
└──────────────────────────────────────────┘

Pick one. Your choice is saved to config and pre-selected next time.

Then the download begins:

Downloading JBA No more balls Episode 4...
Downloading JBA No more balls Episode 5...
Downloading JBA No more balls Episode 6...
...
Download complete: JBA No more balls

Post-Play Menu

While an episode is playing, Ani-plus waits. When the player closes:

┌──────────────────────────────────────────┐
│  Playing episode 1 of JBA No more balls... │
│                                          │
│  ▸ next                                  │
│    replay                                │
│    previous                              │
│    select                                │
│    change_quality                        │
│    quit                                  │
└──────────────────────────────────────────┘
OptionAction
nextPlay the next episode
replayReplay the current episode
previousGo back one episode
selectJump to a specific episode
change_qualitySwitch quality mid-session
quitExit cleanly

Command-Line Flags

Skip the interactive menus with flags.

Direct watch

$ ani-plus -q 720p "JBA No more balls"

Searches, plays the first result, at 720p.

Specific episode

$ ani-plus -e 4 "JBA No more balls"

Searches, plays episode 4.

Episode range

$ ani-plus -e 5-8 "JBA No more balls"

Searches, plays episodes 5 through 8 sequentially.

VLC instead of mpv

$ ani-plus -v "JBA No more balls"

Continue from history

$ ani-plus -c

Resumes the last anime you were watching.

Next-episode countdown

$ ani-plus -N "JBA No more balls"

Shows when the next sub/dub episode releases.

Update the script

$ ani-plus -U

Fetches the latest ani-plus.sh from the repo.


Config Menu

Ani-plus stores its settings in ~/.config/ani-plus/config.

Set download directory (once)

$ ani-plus -d /run/media/hera/Percival/anime

Download directory permanently set to: /run/media/hera/Percival/anime
Config saved at: /home/hera/.config/ani-plus/config

From then on, every batch download goes there. No cd required.

View current config

$ ani-plus --show-download-dir

Download directory: /run/media/hera/Percival/anime
Quality:            best
Config file:        /home/hera/.config/ani-plus/config

--- file contents ---
download_dir="/run/media/hera/Percival/anime"
quality="1080p"

Reset config

$ ani-plus --reset-config

Config reset. Defaults will be used next run.

Common Routes

ScenarioCommand
Browse and pick interactivelyani-plus
Play an anime by nameani-plus "JBA No more balls"
Play at 720pani-plus -q 720p "JBA No more balls"
Play episode 4ani-plus -e 4 "JBA No more balls"
Play episodes 5 through 8ani-plus -e 5-8 "JBA No more balls"
Continue from last sessionani-plus -c
Check next episode air dateani-plus -N "JBA No more balls"
Download one episodeani-plus --dl -e 4 "JBA No more balls"
Change download dir permanentlyani-plus -d /path/to/anime
Show current settingsani-plus --show-download-dir
Reset everythingani-plus --reset-config
Update scriptani-plus -U
Helpani-plus -h
Versionani-plus -V

Folder Layout After Batch Download

/your/download_dir/
├── JBA No more balls/
│   ├── JBA No more balls Episode 01.mp4
│   ├── JBA No more balls Episode 01.vtt   ← subtitles
│   ├── JBA No more balls Episode 02.mp4
│   ├── JBA No more balls Episode 02.vtt
│   └── ...
├── JoJo's Bizarre Adventure/
│   ├── JoJo's Bizarre Adventure Episode 01.mp4
│   └── ...
└── One Piece/
    ├── One Piece Episode 1080.mp4
    └── ...

Subtitle files are downloaded alongside each episode automatically.


Troubleshooting The Flow

SymptomCauseFix
Menu doesn't appearfzf not installedsudo pacman -S fzf
No search resultsCloudflare block on hianimeInstall curl-impersonate
Video doesn't plaympv missing referrerCheck the README FAQ
Download hangsyt-dlp out of dateyt-dlp -U
Config not loadingBad path in configani-plus --reset-config

Watch mode (default)

ani-plus
# → search → select anime → select episode → plays in mpv

Command-line flags

# Watch with quality
ani-plus -q 720p "JBA No more balls"

# Play specific episode
ani-plus -e 4 "cyberpunk edgerunners"

# Play range
ani-plus -e 5-8 "blue lock"

# Use VLC instead of mpv
ani-plus -v "Peak piece"

# Syncplay (watch with friends)
ani-plus -s "spy x family"

# Skip intro (requires ani-skip)
ani-plus --skip "jujutsu kaisen"

# Continue from history
ani-plus -c

# Next episode countdown
ani-plus -N "one piece"

# Update
ani-plus -U

All flags

FlagDescription
-c, --continueContinue from history
-q, --quality <q>Video quality (best, 1080p, 720p, 480p, 360p, 240p)
-v, --vlcUse VLC
-s, --syncplaySyncplay
-S, --select-nth <n>Select nth search result
-e, --episode <range>Episode or range
--dubDubbed version
--skipSkip intro (ani-skip)
--no-detachDon't detach player
--exit-after-playReturn player exit code
-N, --nextep-countdownShow next episode countdown
-d, --download-dir <path>Set persistent download directory
--show-download-dirShow config
--reset-configReset config
--dl, --downloadSingle-episode download
-D, --deleteDelete history
-l, --logviewShow logs
-V, --versionVersion
-h, --helpHelp
-U, --updateUpdate script
--rofi / --dmenuUse rofi/dmenu for menus

Persistent Config

Set your download dir once — it sticks.

# Set download directory permanently
ani-plus -d /run/media/hera/Percival/anime

# Output:
# Download directory permanently set to: /run/media/hera/Percival/anime
# Config saved at: /home/hera/.config/ani-plus/config

From then on, every batch download goes to that folder. No more cd before running.

Check current config

ani-plus --show-download-dir

# Download directory: /run/media/hera/Percival/anime
# Quality:            best
# Config file:        /home/hera/.config/ani-plus/config
#
# --- file contents ---
# download_dir="/run/media/hera/Percival/anime"
# quality="1080p"

Reset config

ani-plus --reset-config

Config file location

OSPath
Linux / macOS~/.config/ani-plus/config
Windows%APPDATA%\ani-plus\config
Android (Termux)~/.config/ani-plus/config

Quality preference is also saved

When you pick a quality during batch download (e.g. 1080p), it's saved and pre-selected next time.


Dependencies

Required

ToolPurpose
grepText parsing
sedText parsing
curlHTTP requests
mpvVideo player
fzfInteractive menu
yt-dlp or ffmpegDownload engine

Optional

ToolPurpose
ani-skipAuto-skip intros
rofi / dmenuAlternative menus
vlcAlternative player
syncplayWatch with friends
patchSelf-update support

Install all deps (Arch)

sudo pacman -S curl sed grep fzf mpv yt-dlp ffmpeg

Install all deps (Debian/Ubuntu)

sudo apt install curl sed grep fzf mpv yt-dlp ffmpeg

Install all deps (macOS)

brew install curl fzf mpv yt-dlp ffmpeg
brew install --cask iina

Ani-Skip

ani-skip automatically skips anime openings.

# Install (Arch)
yay -S ani-skip

# Use with ani-plus
ani-plus --skip "one piece"

Fixing errors

Blocked by cloudflare

Install curl-impersonate:

# Arch
yay -S curl-impersonate-bin

# Manual install
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

ani-plus auto-detects and uses curl-impersonate if present.

"No sources found"

  • Try --dub flag (sub servers may be down)
  • Update with ani-plus -U
  • Check hianime status

Update failing

Install patch:

# Arch
sudo pacman -S patch

# Debian
sudo apt install patch

Then run ani-plus -U.


FAQ

Q: Can I use this instead of ani-cli? A: Yes — it's a superset. Every ani-cli flag works. Additionally, ani-cli is installed as a symlink so scripts calling ani-cli still work.

Q: Where does it download to by default? A: Current working directory. Set a permanent dir with ani-plus -d /path.

Q: Can I download at a specific quality? A: Yes. When prompted, pick from best, 1080p, 720p, 480p, 360p, 240p.

Q: Does it work on Windows? A: Via WSL. Native Windows support is coming.

Q: Where's the history stored? A: ~/.local/state/ani-plus/ani-hsts (respects $XDG_STATE_HOME).

Q: How do I report a bug? A: Open an issue.


Uninstall

Arch

sudo pacman -R ani-plus

From source

sudo rm /usr/local/bin/ani-plus
rm -rf ~/.config/ani-plus
rm -rf ~/.local/state/ani-plus

Cleanup saved config

rm -rf ~/.config/ani-plus
rm -rf ~/.local/state/ani-plus

Contributing

  1. Fork the repo
  2. Create a branch (git checkout -b feature/amazing)
  3. Commit (git commit -m "Add amazing feature")
  4. Push (git push origin feature/amazing)
  5. Open a Pull Request

AI policy: Pull requests containing AI-generated code must disclose this in the PR description. Low-effort AI-generated contributions will be rejected.


Disclaimer

ani-plus does not host any content. It scrapes publicly available stream URLs from hianime.at and passes them to mpv / yt-dlp.

  • Do not use this for piracy
  • Respect content licenses in your country
  • The maintainer is not responsible for how you use this tool

If you enjoy an anime, buy the Blu-ray or subscribe to a legitimate streaming service.


License

GPL-3.0


Credits

Made by Hera — a fork built out of frustration with -e 1 -e 2 -e 3...

h3ray3s/Ani-plus

A blazing-fast, modern anime streaming and download CLI

Shell

4

30 commits

updated Oct 8, 2026

See the code

See what people are saying

SourceMessageScoreDate

Ani-plus — the premium animie cli, for my weebs (r/linux)

Been using ani-cli for a while, and one thing kept bugging me: downloading a whole series meant running it once per episode. So I took it and added the features I felt were missing. What's new: • Batch download — pick a range (all, 1-24, etc.) and it grabs them all in one go. • Auto-organises into…

0

Oct 8, 2026

README

Ani-plus



A CLI to browse and watch anime — inspired by ani-cli — with batch download, resume detection, persistent config, and more.

⚠️ This project is still in active development. New servers and features will be added in upcoming updates.


Why ani-plus?

FeatureAni-plus
Batch download✅ full batch loop
Auto-organises files into folders by series name✅
Resume downloads from last episode✅ detects existing files
Persistent download dir✅ -d /path saves to config
Interactive menu after anime select✅ Watch / Download / Quit
Quality preference remembered✅ saved in config
All ani-cli flags✅ preserved

Table of Contents


Showcase

$ ani-plus

Search anime: cyberpunk

  ▸ Cyberpunk: Edgerunners
    Cyberpunk 2077
    Cyberpunk: 2077 (Subbed)
    ...

Selected: Cyberpunk: Edgerunners
Episodes: 10 available
Save dir: /home/hera/anime

What would you like to do?
  1) Watch now
  2) Batch download
  3) Quit
Choice [1]: 2

Folder:  /home/hera/anime/Cyberpunk Edgerunners
Local progress: up to episode 3
Enter range (e.g. 4-24), or 'all' to resume from 4: 4-10

Choose quality:
  ▸ 1080p
    720p
    ...

Downloading Cyberpunk: Edgerunners Episode 4...
Downloading Cyberpunk: Edgerunners Episode 5...
...
Download complete: Cyberpunk: Edgerunners
Add another anime? (y/n): n

Installation

Please use install script as AUR is facing technical issues

For most linux Distro


curl -fsSL https://github.com/h3ray3s/Ani-plus/releases/latest/download/ani-plus-1.0.0-install.sh | sudo bash

Arch Linux (AUR)

# Using yay
yay -S ani-plus

# Using paru
paru -S ani-plus

Manual install from AUR:

git clone https://aur.archlinux.org/ani-plus.git
cd ani-plus
makepkg -si

Debian / Ubuntu

# Coming soon — pending Debian packaging
# For now, install from source (see below)

Fedora

# Coming soon — pending COPR setup
sudo dnf copr enable h3ray3s/ani-plus
sudo dnf install ani-plus

OpenSUSE

# Coming soon
zypper addrepo https://download.opensuse.org/repositories/home:/h3ray3s/ani-plus.repo
zypper install ani-plus

macOS

# Homebrew tap (coming soon)
brew tap h3ray3s/ani-plus
brew install ani-plus

Android (Termux)

pkg update
pkg install curl fzf mpv yt-dlp ffmpeg
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o $PREFIX/bin/ani-plus
chmod +x $PREFIX/bin/ani-plus

Setup MPV referrer for Android:

termux-setup-storage
# In MPV app: Settings → Advanced → mpv.conf
# Add: include="/storage/emulated/0/mpv/mpv.config.mp4"

Steam Deck

Full install script (paste into Konsole in Desktop Mode):

# Dependencies
flatpak install -y io.mpv.Mpv
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

# yt-dlp for downloads
mkdir -p ~/.local/bin
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

# PATH
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# ani-plus
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o ~/.local/bin/ani-plus
chmod +x ~/.local/bin/ani-plus

FreeBSD

sudo pkg install mpv fzf yt-dlp ffmpeg curl
curl -L https://raw.githubusercontent.com/h3ray3s/ani-plus/main/ani-plus.sh \
  -o /usr/local/bin/ani-plus
sudo chmod +x /usr/local/bin/ani-plus

From Source

Works on any Unix-like OS.

git clone https://github.com/h3ray3s/ani-plus.git
cd ani-plus
sudo cp ani-plus.sh /usr/local/bin/ani-plus
sudo chmod +x /usr/local/bin/ani-plus

Usage

Ani-plus Usage Guide

A visual walkthrough of every screen you'll see.


Table of Contents


Starting Ani-plus

PLEASE SET DOWNLOAD DIR BY ani-plus -d /path

Just type ani-plus in your terminal.

$ ani-plus

You'll immediately be dropped into the search prompt.

Search anime: █

Search Flow

Type any anime name. Hit Enter.

Search anime: JBA No more balls

Ani-plus queries hianime.at and shows you a menu of matching results.

┌──────────────────────────────────────────┐
│  Select anime:                           │
│                                          │
│  ▸ JBA No more balls                     │
│    JBA No more balls (Dub)               │
│    JoJo's Bizarre Adventure              │
│    JoJo's Bizarre Adventure: Stone Ocean │
│    JoJo's Bizarre Adventure (Subbed)     │
│    ...                                   │
└──────────────────────────────────────────┘

Use arrow keys to navigate, Enter to select.


The Mode Menu

Once you pick an anime, Ani-plus fetches the episode list and shows you what to do next.

Selected: JBA No more balls
Episodes: 12 available
Save dir: /home/hera/anime

What would you like to do?
  1) Watch now
  2) Batch download
  3) Quit
Choice [1]: █

Three routes:

ChoiceWhat happens
1 or EnterWatch an episode now
2Batch download a range
3Exit cleanly

Watch Flow

Choose 1. Then pick an episode.

┌──────────────────────────────────────────┐
│  Select episode:                         │
│                                          │
│  ▸ 1                                     │
│    2                                     │
│    3                                     │
│    4                                     │
│    ...                                   │
└──────────────────────────────────────────┘

Select one, and Ani-plus:

  1. Fetches the stream URLs
  2. Picks the best quality
  3. Launches mpv (or your configured player)
hianime.at links fetched
Playing episode 1...

Multi-select for ranges: hold Tab to select multiple episodes, or enter a range directly with -e "1-5".


Batch Download Flow

Choose 2. Ani-plus scans the target folder first.

Anime:   JBA No more balls
Folder:  /home/hera/anime/JBA No more balls
Episodes available: 12

Enter range (e.g. 1-12), or 'all': █

Two ways to specify:

InputMeaning
1-12Download episodes 1 through 12
allDownload every episode
5Download just episode 5

After you type the range, Ani-plus asks for quality.


Resume Detection

If you already have episodes in the target folder, Ani-plus tells you.

Anime:   JBA No more balls
Folder:  /home/hera/anime/JBA No more balls
Episodes available: 12
Local progress: up to episode 3

Enter range (e.g. 4-24), or 'all' to resume from 4: █

Type all and it starts at episode 4. Type 5-8 and it downloads just those. No duplicate downloads.

How it works: Ani-plus scans the folder for .mp4, .mkv, and .webm files, extracts the highest episode number it finds, and picks up from there.


Quality Selection

After picking a range, Ani-plus asks for video quality.

┌──────────────────────────────────────────┐
│  Quality:                                │
│                                          │
│  ▸ best                                  │
│    1080p                                 │
│    720p                                 │
│    480p                                 │
│    360p                                 │
│    240p                                 │
└──────────────────────────────────────────┘

Pick one. Your choice is saved to config and pre-selected next time.

Then the download begins:

Downloading JBA No more balls Episode 4...
Downloading JBA No more balls Episode 5...
Downloading JBA No more balls Episode 6...
...
Download complete: JBA No more balls

Post-Play Menu

While an episode is playing, Ani-plus waits. When the player closes:

┌──────────────────────────────────────────┐
│  Playing episode 1 of JBA No more balls... │
│                                          │
│  ▸ next                                  │
│    replay                                │
│    previous                              │
│    select                                │
│    change_quality                        │
│    quit                                  │
└──────────────────────────────────────────┘
OptionAction
nextPlay the next episode
replayReplay the current episode
previousGo back one episode
selectJump to a specific episode
change_qualitySwitch quality mid-session
quitExit cleanly

Command-Line Flags

Skip the interactive menus with flags.

Direct watch

$ ani-plus -q 720p "JBA No more balls"

Searches, plays the first result, at 720p.

Specific episode

$ ani-plus -e 4 "JBA No more balls"

Searches, plays episode 4.

Episode range

$ ani-plus -e 5-8 "JBA No more balls"

Searches, plays episodes 5 through 8 sequentially.

VLC instead of mpv

$ ani-plus -v "JBA No more balls"

Continue from history

$ ani-plus -c

Resumes the last anime you were watching.

Next-episode countdown

$ ani-plus -N "JBA No more balls"

Shows when the next sub/dub episode releases.

Update the script

$ ani-plus -U

Fetches the latest ani-plus.sh from the repo.


Config Menu

Ani-plus stores its settings in ~/.config/ani-plus/config.

Set download directory (once)

$ ani-plus -d /run/media/hera/Percival/anime

Download directory permanently set to: /run/media/hera/Percival/anime
Config saved at: /home/hera/.config/ani-plus/config

From then on, every batch download goes there. No cd required.

View current config

$ ani-plus --show-download-dir

Download directory: /run/media/hera/Percival/anime
Quality:            best
Config file:        /home/hera/.config/ani-plus/config

--- file contents ---
download_dir="/run/media/hera/Percival/anime"
quality="1080p"

Reset config

$ ani-plus --reset-config

Config reset. Defaults will be used next run.

Common Routes

ScenarioCommand
Browse and pick interactivelyani-plus
Play an anime by nameani-plus "JBA No more balls"
Play at 720pani-plus -q 720p "JBA No more balls"
Play episode 4ani-plus -e 4 "JBA No more balls"
Play episodes 5 through 8ani-plus -e 5-8 "JBA No more balls"
Continue from last sessionani-plus -c
Check next episode air dateani-plus -N "JBA No more balls"
Download one episodeani-plus --dl -e 4 "JBA No more balls"
Change download dir permanentlyani-plus -d /path/to/anime
Show current settingsani-plus --show-download-dir
Reset everythingani-plus --reset-config
Update scriptani-plus -U
Helpani-plus -h
Versionani-plus -V

Folder Layout After Batch Download

/your/download_dir/
├── JBA No more balls/
│   ├── JBA No more balls Episode 01.mp4
│   ├── JBA No more balls Episode 01.vtt   ← subtitles
│   ├── JBA No more balls Episode 02.mp4
│   ├── JBA No more balls Episode 02.vtt
│   └── ...
├── JoJo's Bizarre Adventure/
│   ├── JoJo's Bizarre Adventure Episode 01.mp4
│   └── ...
└── One Piece/
    ├── One Piece Episode 1080.mp4
    └── ...

Subtitle files are downloaded alongside each episode automatically.


Troubleshooting The Flow

SymptomCauseFix
Menu doesn't appearfzf not installedsudo pacman -S fzf
No search resultsCloudflare block on hianimeInstall curl-impersonate
Video doesn't plaympv missing referrerCheck the README FAQ
Download hangsyt-dlp out of dateyt-dlp -U
Config not loadingBad path in configani-plus --reset-config

Watch mode (default)

ani-plus
# → search → select anime → select episode → plays in mpv

Command-line flags

# Watch with quality
ani-plus -q 720p "JBA No more balls"

# Play specific episode
ani-plus -e 4 "cyberpunk edgerunners"

# Play range
ani-plus -e 5-8 "blue lock"

# Use VLC instead of mpv
ani-plus -v "Peak piece"

# Syncplay (watch with friends)
ani-plus -s "spy x family"

# Skip intro (requires ani-skip)
ani-plus --skip "jujutsu kaisen"

# Continue from history
ani-plus -c

# Next episode countdown
ani-plus -N "one piece"

# Update
ani-plus -U

All flags

FlagDescription
-c, --continueContinue from history
-q, --quality <q>Video quality (best, 1080p, 720p, 480p, 360p, 240p)
-v, --vlcUse VLC
-s, --syncplaySyncplay
-S, --select-nth <n>Select nth search result
-e, --episode <range>Episode or range
--dubDubbed version
--skipSkip intro (ani-skip)
--no-detachDon't detach player
--exit-after-playReturn player exit code
-N, --nextep-countdownShow next episode countdown
-d, --download-dir <path>Set persistent download directory
--show-download-dirShow config
--reset-configReset config
--dl, --downloadSingle-episode download
-D, --deleteDelete history
-l, --logviewShow logs
-V, --versionVersion
-h, --helpHelp
-U, --updateUpdate script
--rofi / --dmenuUse rofi/dmenu for menus

Persistent Config

Set your download dir once — it sticks.

# Set download directory permanently
ani-plus -d /run/media/hera/Percival/anime

# Output:
# Download directory permanently set to: /run/media/hera/Percival/anime
# Config saved at: /home/hera/.config/ani-plus/config

From then on, every batch download goes to that folder. No more cd before running.

Check current config

ani-plus --show-download-dir

# Download directory: /run/media/hera/Percival/anime
# Quality:            best
# Config file:        /home/hera/.config/ani-plus/config
#
# --- file contents ---
# download_dir="/run/media/hera/Percival/anime"
# quality="1080p"

Reset config

ani-plus --reset-config

Config file location

OSPath
Linux / macOS~/.config/ani-plus/config
Windows%APPDATA%\ani-plus\config
Android (Termux)~/.config/ani-plus/config

Quality preference is also saved

When you pick a quality during batch download (e.g. 1080p), it's saved and pre-selected next time.


Dependencies

Required

ToolPurpose
grepText parsing
sedText parsing
curlHTTP requests
mpvVideo player
fzfInteractive menu
yt-dlp or ffmpegDownload engine

Optional

ToolPurpose
ani-skipAuto-skip intros
rofi / dmenuAlternative menus
vlcAlternative player
syncplayWatch with friends
patchSelf-update support

Install all deps (Arch)

sudo pacman -S curl sed grep fzf mpv yt-dlp ffmpeg

Install all deps (Debian/Ubuntu)

sudo apt install curl sed grep fzf mpv yt-dlp ffmpeg

Install all deps (macOS)

brew install curl fzf mpv yt-dlp ffmpeg
brew install --cask iina

Ani-Skip

ani-skip automatically skips anime openings.

# Install (Arch)
yay -S ani-skip

# Use with ani-plus
ani-plus --skip "one piece"

Fixing errors

Blocked by cloudflare

Install curl-impersonate:

# Arch
yay -S curl-impersonate-bin

# Manual install
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

ani-plus auto-detects and uses curl-impersonate if present.

"No sources found"

  • Try --dub flag (sub servers may be down)
  • Update with ani-plus -U
  • Check hianime status

Update failing

Install patch:

# Arch
sudo pacman -S patch

# Debian
sudo apt install patch

Then run ani-plus -U.


FAQ

Q: Can I use this instead of ani-cli? A: Yes — it's a superset. Every ani-cli flag works. Additionally, ani-cli is installed as a symlink so scripts calling ani-cli still work.

Q: Where does it download to by default? A: Current working directory. Set a permanent dir with ani-plus -d /path.

Q: Can I download at a specific quality? A: Yes. When prompted, pick from best, 1080p, 720p, 480p, 360p, 240p.

Q: Does it work on Windows? A: Via WSL. Native Windows support is coming.

Q: Where's the history stored? A: ~/.local/state/ani-plus/ani-hsts (respects $XDG_STATE_HOME).

Q: How do I report a bug? A: Open an issue.


Uninstall

Arch

sudo pacman -R ani-plus

From source

sudo rm /usr/local/bin/ani-plus
rm -rf ~/.config/ani-plus
rm -rf ~/.local/state/ani-plus

Cleanup saved config

rm -rf ~/.config/ani-plus
rm -rf ~/.local/state/ani-plus

Contributing

  1. Fork the repo
  2. Create a branch (git checkout -b feature/amazing)
  3. Commit (git commit -m "Add amazing feature")
  4. Push (git push origin feature/amazing)
  5. Open a Pull Request

AI policy: Pull requests containing AI-generated code must disclose this in the PR description. Low-effort AI-generated contributions will be rejected.


Disclaimer

ani-plus does not host any content. It scrapes publicly available stream URLs from hianime.at and passes them to mpv / yt-dlp.

  • Do not use this for piracy
  • Respect content licenses in your country
  • The maintainer is not responsible for how you use this tool

If you enjoy an anime, buy the Blu-ray or subscribe to a legitimate streaming service.


License

GPL-3.0


Credits

Made by Hera — a fork built out of frustration with -e 1 -e 2 -e 3...