@anjishnusengupta/ny-cli
v4.0.0
Published
Terminal-based anime streaming client — self-hosted scraping via aniwatch
Maintainers
Readme
✦ NY-CLI
ネコアニメ CLI — Watch Anime from Your Terminal
🌐 NyAnime Website 📦 Releases 🐛 Report Bug
🎯 What's New in v4.0.0
✨ Features
╭─────────────────────────────────────────────────────────────────╮
│ │
│ 🎬 STREAMING 👤 EXPERIENCE 🔧 TECHNICAL │
│ ─────────────── ─────────────── ─────────────── │
│ │
│ ▸ HLS Streaming ▸ User Accounts ▸ POSIX Shell │
│ ▸ Multi-Server ▸ Watch History ▸ Node.js 18+ │
│ ▸ Sub/Dub Select ▸ Cloud Sync ▸ aniwatch pkg │
│ ▸ Skip Intro ▸ Continue Watch ▸ Self-Hosted │
│ ▸ Auto Subtitles ▸ Random Anime ▸ Dual-Stack │
│ ▸ MPV/VLC/IINA ▸ Profile System ▸ Zero Config │
│ │
╰─────────────────────────────────────────────────────────────────╯| Feature | Description |
|:--------|:------------|
| 🎙️ Sub/Dub Selection | Choose sub or dub per anime — preference saved and synced to cloud |
| 🔄 Multi-Server Racing | Races HD-1, HD-2, StreamTape, StreamSB in parallel via Promise.any() |
| ⏭️ Skip Intro | Press s during intro to skip — uses API-provided timestamps |
| 📝 Multi-Language Subs | Auto-selects English, with all available languages loaded for switching |
| 🔁 Sub/Dub Fallback | If all sub servers fail, automatically retries with dub |
| 🌐 Dual-Stack Networking | Happy Eyeballs (RFC 6555) — works on any IPv4, IPv6, or dual-stack network |
| 🎚️ Player Support | MPV (recommended), VLC, IINA — auto-detected or configurable |
| Feature | Description | |:--------|:------------| | 🔐 Browser Auth | Login via nyanime.tech — just paste your User ID | | 📜 Watch History | Track all watched episodes with timestamps | | ☁️ Cloud Sync | Seamless sync between CLI and nyanime.tech website | | 📍 Continue Watching | Resume from where you left off — remembers your sub/dub choice | | 🎲 Random Mode | Discover new anime with random selection + sub/dub prompt | | 🔍 Quick Search | Search directly from command line or interactive menu |
🖥️ Terminal Demo
╔══════════════════════════════════════════════╗
║ ║
║ $ ny-cli "one piece" ║
║ ║
║ Searching for 'one piece'... ║
║ 1) One Piece (TV, 1155 sub / 1143 dub) ║
║ 2) One Piece Film: Red (Movie, 1 sub) ║
║ ║
║ Select [1-20]: 1 ║
║ Loading episodes... ║
║ ║
║ 1) Sub (Japanese audio + subtitles) ║
║ 2) Dub (English audio) ║
║ Sub or Dub? [1/2]: 1 ║
║ ║
║ One Piece (1155 eps) [SUB] ║
║ Episode [1-1155]: 1155 ║
║ ║
║ ▸ Starting playback... ║
║ One Piece - Episode 1155 [SUB] ║
║ ║
╚══════════════════════════════════════════════╝🚀 Quick Start
Prerequisites
- Node.js 18+
- npm
- mpv (recommended video player)
Installation
# One-line install
curl -sL https://raw.githubusercontent.com/AnjishnuSengupta/ny-cli/main/install.sh | sh# Or via npm
npm install -g @anjishnusengupta/ny-cli# Clone the repository
git clone https://github.com/AnjishnuSengupta/ny-cli.git
cd ny-cli
# Install dependencies
npm install --production
# Make executable and install
chmod +x ny-cli
sudo ln -sf "$(pwd)/ny-cli" /usr/local/bin/ny-cliyay -S ny-cli
# or
paru -S ny-cliUsage
# Interactive mode
ny-cli
# Quick search
ny-cli "attack on titan"
# Direct search
ny-cli -s "one piece"
# Continue watching
ny-cli -c
# Trending anime
ny-cli -t
# Random anime
ny-cli -r
# Login for cloud sync
ny-cli -l
# Help
ny-cli -h🛠️ Tech Stack
| Layer | Technologies |
|:-----:|:-------------|
| CLI |
|
| Backend |
|
| Scraping |
|
| Sync |
|
| Players |
|
📁 Project Structure
ny-cli/
├── 📄 ny-cli # Main CLI script (POSIX shell)
├── 📄 backend.mjs # Node.js scraping backend (aniwatch)
├── 📄 package.json # npm dependencies
├── 📄 install.sh # One-line installer
├── 📂 debian/ # Debian packaging
│ ├── changelog
│ ├── control
│ ├── install
│ └── rules
├── 📄 PKGBUILD # Arch Linux AUR package
├── 📄 ny-cli.spec # RPM spec file
└── 📄 LICENSE # MIT License🎮 Controls
During Playback (mpv)
| Key | Action |
|:---:|:-------|
| Space | Play / Pause |
| ← / → | Seek ±5s |
| ↑ / ↓ | Seek ±60s |
| s | Skip intro |
| f | Fullscreen |
| v | Toggle subtitles |
| m | Mute |
| q | Quit |
🤝 Contributing
Contributions are welcome! Here's how you can help:
# 1. Fork the repository
# 2. Create your feature branch
git checkout -b feature/amazing-feature
# 3. Commit your changes
git commit -m "feat: add amazing feature"
# 4. Push to the branch
git push origin feature/amazing-feature
# 5. Open a Pull Request🔗 Links & Resources
| | | |:-:|:-:| | 🌐 Website | nyanime.tech | | 🖥️ Web App | github.com/AnjishnuSengupta/nyanime | | 📦 npm | @anjishnusengupta/ny-cli | | 📚 aniwatch | ghoshRitesh12/aniwatch |
📜 License
This project is licensed under the MIT License.
Use freely. Give credit. Build cool things. 💜
⚠️ Disclaimer
"In a world full of filler episodes, be the main arc." ✦
Made with 💜 by Anjishnu
⭐ Star this repo if you found it useful!
