16 releases
Uses new Rust 2024
| 0.3.5 | Jan 2, 2026 |
|---|---|
| 0.3.4 | Jan 2, 2026 |
| 0.2.9 | Jan 1, 2026 |
| 0.2.1 | Dec 31, 2025 |
| 0.1.0 | Dec 31, 2025 |
#82 in Video
105KB
2.5K
SLoC
ani-l
ani-l is a terminal-based anime library and streamer inspired by viu-media/viu.
It allows you to browse, search, and stream anime directly from your terminal using a TUI (Text User Interface) or CLI commands.
[!IMPORTANT] This project scrapes public-facing websites for its streaming / downloading capabilities and primarily acts as an anilist, jikan and many other media apis tui client. The developer(s) of this application have no affiliation with these content providers. This application hosts zero content and is intended for educational and personal use only. Use at your own risk.
✨ Features
- 🖥️ TUI Interface: A clean, keyboard-driven interface built with
ratatui. - 🔍 Search: Query the AniList API for anime metadata.
- 📺 Streaming: Stream episodes directly from sources like AllAnime.
- 💾 Library Management: Track your watch progress.
📦 Installation
🛠️ Prerequisites
Installing Rust
-
MacOS/Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -
Windows: Use rustup
Installing mpv
You must have mpv installed on your system. ani-l delegates video playback to it.
- macOS:
brew install mpv - Linux (Debian/Ubuntu):
sudo apt install mpv - Windows: Download mpv and ensure it is in your System PATH.
Option A: Install from Crates.io (Recommended)
cargo install ani-l
Option B: Build from Source
Clone the repository:
git clone [https://github.com/komposer-aml/ani-l.git](https://github.com/komposer-aml/ani-l.git)
cd ani-l
Build and install:
cargo install --path .
🚀 Usage
TUI Mode (Default)
Simply run the command to enter the interactive interface:
ani-l
Keybindings
| Key | Action |
|---|---|
| / | Focus Search Bar |
| Enter | Select / Search |
| j / Down | Move Down |
| k / Up | Move Up |
| J / PgDn | Jump Down (10 items) |
| K / PgUp | Jump Up (10 items) |
| Esc / Backspace | Go Back / Cancel |
| q | Quit (from Main Menu) |
CLI Commands
You can also use ani-l directly from the command line without the TUI. Search for an Anime:
ani-l search query --text "Naruto"
View Trending Anime:
ani-l search trending --page 1
Play a specific URL:
ani-l play --url "[https://example.com/video.mp4](https://example.com/video.mp4)" --title "My Video"
Watch a specific episode (CLI Stream):
# Searches and attempts to stream Episode 1 automatically
ani-l watch --query "One Piece" --episode 1
⚙️ Configuration
ani-l stores configuration files in your system's standard config directory:
• Linux: ~/.config/ani-l/config.toml
• macOS: ~/Library/Application Support/com.sleepy-foundry.ani-l/config.toml
• Windows: C:\Users\You\AppData\Roaming\sleepy-foundry\ani-l\config.toml
Example config.toml:
[general]
provider = "allanime"
[stream]
player = "mpv"
quality = "1080"
translation_type = "sub"
episode_complete_at = 85
👾 Contribution Guide
Contributions are welcome!
- Fork the repository.
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ani-l.git - Create a new Branch:
git checkout -b type/issue_id-short_description - Commit your changes:
git commit -m 'feat(scope): Added some amazing feature' - Push to the branch:
git push origin feat/123-amazing-feature - Open a Pull Request.
Development Guidelines
- Ensure your code is formatted:
cargo fmt - Check for lints:
cargo clippy - Run tests:
cargo test
📄 License
This project is licensed under the LGPL-2.1 License.
Dependencies
~46–83MB
~1M SLoC