CLI-Studio

An advanced Terminal User Interface (TUI) that abstracts and simplifies powerful command-line media tools (FFmpeg, ImageMagick, yt-dlp, Pillow, ExifTool).

Python 3.10+TUIMedia Tools

Key Features

  • 37+ Integrated Tools: A massive suite of media manipulation utilities out-of-the-box.
  • Interactive File Explorer: Visually browse your filesystem to select files and destinations. No more typing absolute paths.
  • Auto-Batch Processing: Select a folder instead of a file, and process every piece of media inside it with live progress bars.
  • Smart Input Autofill: Integrates ffprobe to dynamically analyze file metadata and pre-fill fields (e.g., video length).
  • Power User Log Console: Press Ctrl + L to toggle a debug log revealing the exact raw CLI commands being executed.
  • Dynamic Theming Engine: 8 built-in aesthetic themes that save to preferences. Switch instantly via /themes.

Prerequisites

CLI-Studio relies on several system-level media engines. Our installer attempts to configure these automatically.

  • Python 3.10+
  • FFmpeg & FFprobe: For all video and audio manipulation.
  • ImageMagick: For advanced image filtering and background removal.
  • ExifTool: For reading and stripping media metadata.
  • yt-dlp: For fetching web video and audio streams.

Installation

Option A: Automatic Install Recommended

Installs dependencies, sets up an isolated Python environment, and creates global command aliases on Linux or macOS.

curl -fsSL https://cso.codefxr.com/install | bash

Option B: Manual Setup

# 1. Ensure ffmpeg, imagemagick, and exiftool are installed via apt/brew/pacman

# 2. Clone the repository
git clone https://github.com/codefxr/cli-studio.git
cd cli-studio

# 3. Create Environment & Install
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# 4. Run
python cli-studio.py

Usage & Navigation

Launch the dashboard from anywhere using the full name or acronym:

cli-studio

# OR

cso

Keyboard Shortcuts

Key BindingActionDescription
?HelpOpen explanation for current tool
Ctrl + LLog ConsoleToggle raw execution log view
Alt + MMenuOpen the main tools menu
Alt + TThemesOpen theme selection screen
Alt + BBackReturn to previous screen
Alt + EExitClose the application
EscHome / CancelGo to Home or close modal
Ctrl + CQuitForce quit application

Command Bar Input

Type these commands into the bottom input bar to navigate quickly:

  • /home - Go to dashboard.
  • /menu - Open tool menu.
  • /video, /audio, /image - Jump directly to specific Toolkits.
  • /themes - Open theme picker.
  • /themes <name> - Apply a specific theme (e.g., /themes pink).

Tool Capabilities

Video Tools (ffmpeg & yt-dlp)

  • Download Media: Fetch single videos or playlists (--yes-playlist).
  • Convert & Scale: Transcode to MP4, MKV, AVI, WebM, MOV. Resize instantly (1920:-1).
  • Edit & Manipulate: Trim, extract audio, mute, rotate, reverse time, or change speed.
  • Advanced Filtering: Optimized GIFs, extract frames, watermarks, fade, or mux audio.

Audio Tools (ffmpeg)

  • Convert & Trim: Transcode to MP3, WAV, FLAC, AAC, OGG. Slice precise segments.
  • Professional Polish: Normalize audio (-af loudnorm), adjust multipliers, speed up tempo without shifting pitch, or mix tracks.

Image Tools (Pillow, ImageMagick, ExifTool)

  • Batch Convert & Resize: Process folders. High-quality scaling.
  • Creative Edits: Remove solid backgrounds, apply filters (Sepia, Charcoal), flip, crop.
  • Privacy & Utility: Strip tracking metadata (-all=), or convert folders to PDF.

Architecture & Security

Built on the Textual framework, utilizing an async component-based architecture.

Worker Threading

Heavy operations (transcodes, downloads) are offloaded to Textual Workers, ensuring the TUI remains responsive and updates progress bars without freezing.

Security (Anti-Flag Injection)

All user-provided paths are wrapped in abspath(expanduser()) to neutralize flag injection vulnerabilities when executing shell commands.

Troubleshooting

"ffmpeg not found"

Cause: System cannot locate ffmpeg in your PATH.

Solution: Install globally via apt install ffmpeg or brew install ffmpeg.

Downloads Failing (yt-dlp)

Cause: Websites update players, breaking older yt-dlp versions.

Solution: Update manually: pip install --upgrade yt-dlp

TUI Visual Glitches

Cause: Terminal lacks truecolor support, or window is too small.

Solution: Use modern, GPU-accelerated terminals like Ghostty, Alacritty, or Kitty.

Uninstalling

# 1. Remove application directory

rm -rf ~/.cli-studio

# 2. Remove global aliases

rm ~/.local/bin/cli-studio

rm ~/.local/bin/cso