Universal CLI media player for YouTube, YouTube Music, Twitch, Anime, and local files. Terminal-first interface with Catppuccin Mocha theme, CAVA-style visualizer, and keyboard-driven controls.
# Install app and all runtime dependencies (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/sqrilizz/media-cli/main/scripts/install.sh | bash
# Run
media-cli- πΊ YouTube - search and play videos
- π΅ YouTube Music - audio-only mode for music
- π΄ Twitch - live streams
- π Anime - anime via allanime API (like ani-cli)
- π Local Files - play from ~/Videos
- π History - track watched content
- βοΈ Config - defaults via
~/.config/media-cli/config.toml - π¨ Native TUI - responsive keyboard-first interface powered by ratatui
- ποΈ Music Deck - audio controls with progress bar and CAVA-style visualizer (BARS / MIRROR)
- π Interactive Mode - next/previous/replay/select
Detects the platform, installs the only two runtime dependencies (mpv and yt-dlp), then installs the correct binary:
curl -fsSL https://raw.githubusercontent.com/sqrilizz/media-cli/main/scripts/install.sh | bashcurl -fsSL https://raw.githubusercontent.com/sqrilizz/media-cli/main/scripts/install-direct.sh | bashThis entrypoint redirects to the same full installer and also installs all dependencies.
Download for your platform from releases:
curl -L https://github.com/sqrilizz/media-cli/releases/latest/download/media-cli-linux-x86_64 -o media-cli
chmod +x media-cli
sudo mv media-cli /usr/local/bin/curl -L https://github.com/sqrilizz/media-cli/releases/latest/download/media-cli-linux-arm64 -o media-cli
chmod +x media-cli
sudo mv media-cli /usr/local/bin/curl -L https://github.com/sqrilizz/media-cli/releases/latest/download/media-cli-macos-x86_64 -o media-cli
chmod +x media-cli
sudo mv media-cli /usr/local/bin/curl -L https://github.com/sqrilizz/media-cli/releases/latest/download/media-cli-macos-arm64 -o media-cli
chmod +x media-cli
sudo mv media-cli /usr/local/bin/Download media-cli-windows-x86_64.exe from releases and add to PATH.
git clone https://github.com/sqrilizz/media-cli
cd media-cli
cargo build --release
sudo cp target/release/media-cli /usr/local/bin/media-cli# YouTube video
media-cli yt "title"
media-cli yt "https://youtube.com/watch?v=..."
# YouTube Music (audio only)
media-cli music "song name"
# Twitch stream
media-cli twitch channel
media-cli twitch https://twitch.tv/channel
# Anime
media-cli anime "title"
# Local files
media-cli file
media-cli file /path/to/folder
# History
media-cli history
media-cli history --clear
# Settings
media-cli settings --init
media-cli settings --defaultsmpvorvlc- video playeryt-dlp- for YouTube- HTTP requests are handled natively inside media-cli
- Twitch streams are resolved through
yt-dlp
| Platform | Command |
|---|---|
| Ubuntu/Debian | sudo apt install mpv yt-dlp |
| Arch Linux | sudo pacman -S mpv yt-dlp |
| Fedora | sudo dnf install mpv yt-dlp |
| macOS | brew install mpv yt-dlp |
| Windows | Install mpv and yt-dlp |
--terminal/-t- play in terminal (mpv only), overrides config--quality <Q>- video quality (720p, 1080p, best), overrides config--player <P>- choose player (mpv, vlc), overrides config
Create a documented config file:
media-cli settings --initConfig path: ~/.config/media-cli/config.toml.
Supported defaults include player, quality, terminal, local_dir, anime_mode, and Music Deck visualizer settings. See docs/CONFIG.md.
# Music in console
media-cli music "lofi hip hop"
# YouTube in terminal
media-cli yt "music video" --terminal
# Twitch with quality
media-cli twitch streamer --quality 720pPlays audio only without video, perfect for background music:
- Minimal resource usage
- In-app controls for pause, mute and stop
- Configurable visualizer styles:
bars(vertical CAVA-style) andmirror(symmetric) - Press
Vduring playback to toggle visualizer style
Full provider implementation like ani-cli:
- Multiple provider support (Ak, S-mp4, Luf-Mp4, Yt-mp4)
- Automatic working provider selection
- Subtitles and quality options
After playback:
replay- replay currentnext- next itemprevious- previous itemselect- select anotherquit- exit
The main menu, search results, filtering, episode selection, and playback actions all use the same built-in interface. No external menu program is required.
MIT
- README.md - Main documentation
- docs/EXAMPLES.md - Usage examples
- docs/HOW_TO_USE.md - User guide
- docs/QUICK_REFERENCE.md - Command reference
- docs/CONFIG.md - Configuration file reference
- CHANGELOG.md - Version history
- docs/CONTRIBUTING.md - Development guide
- docs/GITHUB_RELEASE_SETUP.md - Release setup
- docs/START_HERE.md - Quick start for developers
media-cli/
βββ src/ # Source code
β βββ main.rs # Main application
β βββ cli.rs # CLI argument parsing
β βββ player.rs # Media player integration
β βββ tui.rs # Terminal UI (ratatui)
β βββ history.rs # Watch history
β βββ sources/ # Media source modules
β βββ youtube.rs # YouTube support
β βββ anime.rs # Anime support
β βββ twitch.rs # Twitch support
β βββ local.rs # Local files
βββ scripts/ # Installation scripts
β βββ install.sh # Main installer
β βββ install-direct.sh # Compatibility installer
βββ docs/ # Documentation
βββ .github/ # GitHub Actions workflows
βββ README.md # This file
βββ CHANGELOG.md # Version history
βββ LICENSE # MIT License
