scottvr/wtffmpeg

A minimal character terminal (console) REPL UI for controlling ffmpeg via natural language descriptions of input files and the desired outcome, powered by local or remote LLM. Shell-style history with arrow keys support, !subshell support, /slash REPL op commands, run-time, env, and cli configuration.

What it solves

It eliminates the tedious process of searching for, reading, and manually adapting complex ffmpeg commands from the internet. Instead of manually translating a video or audio task into the specific flags and syntax of ffmpeg, users can describe their goal in plain English.

How it works

wtffmpeg is a command-line interface (CLI) tool that acts as a "stochastic shell." It uses a Large Language Model (LLM) to translate natural language prompts into executable ffmpeg commands. It provides a REPL (Read-Eval-Print Loop) environment where users can iteratively refine commands through conversation, maintaining context of previous requests to allow for incremental mutations of the command until the desired result is achieved. The tool does not execute commands autonomously; it generates the command and presents it to the user for manual execution or copying to the clipboard.

Who it’s for

It is designed for anyone who uses ffmpeg for audio and video processing, from beginners who struggle with the syntax to experienced users who want to avoid the repetitive effort of looking up complex flags for tasks they don't perform frequently.

Highlights

  • Conversational REPL: Maintains session history and context, allowing users to say things like "now just like that, but..." to modify previous commands.
  • User Control: Commands are generated but not executed automatically, ensuring the user maintains full control over their system.
  • Flexible History Navigation: Configurable scrolling (prompts, commands, or both) with modifier keys for quick filtering.
  • Broad LLM Compatibility: Supports OpenAI and other OpenAI-compatible APIs (such as Ollama for local models).
  • Transcript Management: Keeps a session transcript of full model responses (including explanations and warnings) that can be accessed via /raw or a toggleable pane.

Related

  • Project
  • Project
  • Project
  • Project
  • Project