#mpv #anime #cli

app anv

Stream anime or read manga from AllAnime straight into mpv from your terminal

4 releases (2 breaking)

Uses new Rust 2024

0.3.1 Feb 22, 2026
0.3.0 Feb 22, 2026
0.2.0 Dec 16, 2025
0.1.0 Nov 15, 2025

#153 in Video

MIT license

1.5MB
2.5K SLoC

logo.png

anv is a terminal-native anime launcher for people who think tmux panes and watchlists belong together. Point it at a title, pick your episode, and drop straight into mpv without touching a browser tab.

Why terminal otaku dig it

  • Curated for AllAnime streams – fast GraphQL search with zero spoiler thumbnails.
  • Sub or dub on demand via --dub; switches the query and history tagging automatically.
  • Episode selector behaves like a shell picker: arrow keys, Enter, Esc to bail.
  • Remembers what you watched last night, including translation choice – anv --history drops you right back in.
  • Reads manga too – anv --manga fetches chapters and pipes pages directly to your image viewer (mpv by default).
  • Manga page cache supports custom location via --cache-dir.
  • Jump directly to an episode with -e or --episode to skip the selection menu.
  • Fires up mpv (or whatever you export as ANV_PLAYER) with the highest-quality stream it can negotiate.

Install it

cargo install anv

From source

git clone https://github.com/Vedant-Asati03/anv.git
cd anv
cargo install --path .

Quick start quests

Search and stream:

anv "bocchi the rock"

Prefer the dub:

anv --dub "demon slayer"

Read manga chapters:

anv --manga "one punch man"

Read manga with a custom cache directory:

anv --manga --cache-dir "/tmp/anv-cache" "one punch man"

Jump back to last night’s cliffhanger:

anv --history

Jump directly to an episode:

anv -e 12 "bocchi the rock"

Set a custom player (e.g. tuned mpv build):

export ANV_PLAYER="/usr/bin/mpv --ytdl-format=best"
anv "naruto"

How the flow feels

  1. CLI asks AllAnime for matching series and shows you a clean list.
  2. Pick a show; anv fetches available episode numbers for the chosen translation.
  3. Episode picker highlights your last watched entry so Enter instantly resumes; Esc backs out like a prompt should.
  4. Streams are resolved through AllAnime’s clock API and piped to mpv with the right headers and subtitles.
  5. History gets updated in ~/.local/share/anv/history.json (Linux; platform-specific on others) so the next session remembers everything.

Tips and tweaks

  • Keep mpv upgraded – some providers only serve DASH/HLS variants that older builds struggle with.
  • If you want to experiment with custom players, ANV_PLAYER can be a full command string (add flags, wrappers, etc.).
  • Use --cache-dir <DIR> if you want manga page cache files somewhere specific (faster disk, larger partition, etc.).
  • Use -e <EP> to skip the interactive episode selector and start playing a specific episode immediately.
  • Use cargo install anv --force to update when new AllAnime quirks pop up.

Troubleshooting

  • mpv not found: install it or point ANV_PLAYER at your preferred binary.
  • Streams empty: AllAnime occasionally throttles or shuffles providers; try again later or update anv.
  • History file corrupted: delete the JSON under your data dir and anv recreates it on launch.

License

Released under the MIT License. Have fun, stay hydrated, and don’t skip the ending songs.

Dependencies

~13–23MB
~376K SLoC