What is ffmpeg-skill? Video editing with a coding agent: setup, 42 tools and example requests
You write a plain request like "Take these two parts of the interview and make an exactly 60-second vertical Reel"; with ffmpeg-skill, Claude Code, Cursor or Codex first measures the file, then cuts, crops and adjusts captions and audio with the right tools out of 42 ready-made ones, and finally checks the output against the platform rules and reports duration, resolution and a visual contact sheet. There is no cloud and no API key, and it never overwrites the source file; FFmpeg and Python must be installed on your computer. The tools can also be connected as an MCP server. Free (MIT); a new project: first release September 3, 2026, largely a single developer.
- What it does
- Lets a coding agent edit video with the FFmpeg on your computer
- Free
- Yes, MIT; no account or API key
- Where
- Claude Code, Cursor, Codex; Claude Desktop via MCP
- Requires
- FFmpeg 5.0+ (6.1+ recommended), Python 3.9+
- Tools
- 42 tools; 12 by default over MCP
- Data
- Files stay on your computer, nothing is uploaded
- Version
- 2.17.3 (October 28, 2026)
What does ffmpeg-skill do? Which problem does it solve?
FFmpeg is a program that can do anything with video and audio, but its commands are hard to memorize. A coding agent "knows" FFmpeg but often guesses: it assumes the frame rate, picks a codec the container can't carry, re-encodes a file that only needed cutting, and says "done" without opening the result. That is the problem the README describes. ffmpeg-skill gives the agent 42 ready-made tools that measure, have clear limits and check their own results: the agent first measures the file, then runs the right tool, and finally measures and checks the output.
Who it helps: content teams and agencies producing Reels, TikTok, Shorts or podcasts; anyone who wants to split an interview, training or meeting recording into short clips; people who already use Claude Code, Cursor or Codex and want their video work done in the same place. It is not a video editing program (timeline, drag and drop): you write a request and the agent runs the tools.
The skill does not decide what to cut, which scene is interesting or what the captions say; those are decisions for the agent or for you. The README draws this line explicitly: the skill is the "hands", the "brain" that decides is elsewhere.
How does ffmpeg-skill work? Measure, plan, run, check
- Protects your source: no tool overwrites its input; the output is a new file. An existing output file is only replaced with
--overwrite. - No free-form shell commands: every operation is a Python script with typed options; it does not accept FFmpeg filter strings or raw arguments from outside.
- Tells you what your machine can do:
npx ffmpeg-skill doctorlists which components (libx264, libass, loudnorm…) your installed FFmpeg has and which tools can't be used. - Fixed report format: when the job is done it says
Done:, otherwiseFailed:; anything left incomplete goes in the note.
Which tools does ffmpeg-skill include? The 42 tools by group
| Group | Tools | What they do (README) |
|---|---|---|
| Analysis and inspection | 3 | probe (duration, frame rate, resolution, HDR, audio streams), scenes (scene changes, audio peaks, highlight suggestions, music beats), look (contact sheet, single frame, side-by-side comparison) |
| Editing | 24 | cut, join (joining with transitions), silence (silence removal), fit (fitting to a duration and aspect ratio), crop, cropdetect, stabilize, denoise, deinterlace, straighten, redact (blurring), broll, speedramp, freeze, loop, reverse, pad, insert (clip from an image), background, sequence, waveform (audio waveform video), metadata (chapter markers), grid, sphere (360 video) |
| Audio | 3 | audio (audio cleanup, compressor, ducking under music), sync (aligning two recordings by audio), loudness (EBU R128, −14 LUFS default) |
| Visuals | 4 | caption (SRT/ASS captions, platform safe area), overlay (logo, watermark, picture-in-picture, green screen), graphics (lower third, title card, progress bar), color (HDR → SDR, LUT, color correction) |
| Delivery | 4 | export (YouTube, Reels, TikTok, Shorts, LinkedIn, X, ProRes, GIF presets), check (PASS/WARN/FAIL against platform rules), proxy (small preview copy), report (single-file HTML delivery report) |
| Workflow management | 4 | render (the whole edit from one project.json), batch (the same recipe for every file in a folder), multicam (syncing several cameras by audio and cutting between them), verify |
Every tool shares common options: --dry-run (show the plan), --json (structured result with the output's measurements), --fast (preview quality), --progress, --timeout (stops a stuck FFmpeg, default 1,800 s) and --overwrite. Audio files (WAV, FLAC, MP3, M4A, OGG, Opus) are handled with the same commands; visual tools reject an audio file with "no video stream" instead of inventing an image.
How to install ffmpeg-skill: Claude Code, Cursor, Codex and MCP
First, FFmpeg must be installed on your computer (the skill does not bring FFmpeg with it); then you install the skill into your agent. Setup is done once; the copy does not update itself.
| Operating system | FFmpeg install command (README) |
|---|---|
| macOS | brew install ffmpeg-full (the skill finds ffmpeg-full in the same Homebrew on its own; if there is no ffmpeg on your PATH at all, or you want every program to use it, put it at the front of PATH). The plain ffmpeg package lacks the subtitles, drawtext and zscale filters |
| Ubuntu / Debian | sudo apt install ffmpeg |
| Windows | winget install Gyan.FFmpeg |
› npx ffmpeg-skill@2.17.3› npx ffmpeg-skill@2.17.3 doctorThe README writes the command without a version (npx ffmpeg-skill); adding @2.17.3 is npm's way of pinning a version. To install only into the current project use --project (→ ./.claude/skills/ffmpeg-skill); for another folder, --dir <folder>.
› npx ffmpeg-skill@2.17.3 --cursor› npx ffmpeg-skill@2.17.3 --codex› npx ffmpeg-skill@2.17.3 --allThe route that needs no Node: the repository is its own plugin marketplace. With this route, updates come via claude plugin update.
› /plugin install ffmpeg-skill --marketplace kajisho5/ffmpeg-skill› claude plugin marketplace add kajisho5/ffmpeg-skill
claude plugin install ffmpeg-skill@ffmpeg-skillA skill installed as a plugin is named ffmpeg-skill:ffmpeg-skill. Don't install the same skill both with npx and as a plugin: you end up with two copies.
After installing the skill, mcp/server.py in the same folder connects as an MCP server to Claude Desktop, Cursor or another MCP client. Add this to the client's MCP settings file (replace the path with your own user folder):
› {"mcpServers": {"ffmpeg-skill": {"command": "python3", "args": ["/Users/you/.claude/skills/ffmpeg-skill/mcp/server.py"]}}}On Windows, the python.org installer names the command python (or py), not python3; if the server doesn't start, change the "command" value to "python". By default the server lists 12 core tools (render, look, caption, export, check, fit, cut, audio, loudness, graphics, silence, probe); the other 30 tools can be called by name, and FFMPEG_SKILL_MCP_FULL=1 lists them all.
- FFmpeg: 5.0 or later; 6.1+ recommended (5.x has been considered outdated since 2.14.0, and version 3.0 will require 6.1).
- Python: 3.9 or later, standard library only (installs no extra packages); 3.10+ recommended.
- Node: 16+ only for the
npxinstall. - What runs during setup: the
npxpackage carries no extra dependencies and no install script (postinstall); the installer copies the SKILL.md, scripts/, templates/, references/, docs/ and mcp/ folders into the target folder.
How to use ffmpeg-skill: what you write and what you get
After setup you talk to your agent as usual; the skill kicks in on its own when you mention a video or audio file. The examples below come from the README; the outputs are described as far as the README describes them.
What you get: according to the README, the agent measures (probe.py), cuts the two ranges (cut.py --segments 0:45-3:10,5:00-6:30), fits the result to 60 seconds and 9:16 by cropping (fit.py --duration 60 --aspect 9:16 --fit crop), exports with the Reels preset (export.py --preset reels), checks it against the Reels rules (check.py --platform reels) and produces a contact sheet (look.py). The report ends with a line like "final.mp4: 59.98 s, 1080×1920, 30 fps, AAC stereo", along with the image it reviewed.
› python3 ~/.claude/skills/ffmpeg-skill/scripts/render.py talk.mp4 --template tiktok --cues cues.txtWhat you get: the TikTok template crops the file to 9:16, places the captions word by word above TikTok's description bar and clear of the like column, brings the audio to −14 LUFS, exports with the TikTok preset and checks the file it wrote with check.py --platform tiktok. --template all produces every platform from the same edit and lists what was produced in a _pack.md table; --dry-run shows the plan without writing anything. Templates: tiktok, reels, shorts, youtube, x, linkedin, facebook, podcast.
What you get: based on the audio tools in the README, the agent removes the silences (silence.py), brings the audio to the podcast target (loudness.py … -I -16 --tp -1.5 -o … .m4a) and reports LUFS, true peak, chapter markers and channel count with check.py --platform podcast. Because an audio file has no visual step, the report says "Look: not needed".
Before a long job, say "show me the plan first, don't run it": every tool lists only the commands it would run with --dry-run. For edits with three or more steps, the README recommends a single project.json with render.py (re-encoding at every step costs quality).
Which programs does ffmpeg-skill work in? Requests in Turkish
| Claude CodeYes | Default install target (~/.claude/skills); plugin marketplace as well. |
|---|---|
| CursorYes | Installed with --cursor; the MCP server connects too. |
| CodexYes | Installed under ~/.agents/skills with --codex. |
| Claude Desktop and other MCP clientsYes | With the MCP settings in the README; the tools are reached over MCP. |
| WindowsPartly | Tests run on Windows too with every change, but the real-device video set has not been run on Windows yet (the maker's note, issue #143). |
| Requests and reports in TurkishYes | The maker's 1.13.0 evaluation includes Turkish requests, and the agent reported back in the user's language (the maker's own measurement). Tool names and options are in English. |
| Captions or filler-word removal from Turkish speechUnclear | Done with an optional local speech recognition engine; Turkish accuracy is not documented. If you supply the caption text yourself, it is burned in exactly as written. |
What does ffmpeg-skill do to my files? Does it connect to the internet?
The video, audio and image files the agent gives it; FFmpeg's component list (doctor).
New files next to the input (or wherever you specify with -o). It does not overwrite the input; an existing output is not replaced without --overwrite.
No cloud service and no API key. The only exception: the optional local speech recognition engines (Parakeet, whisper) download their model file on first run; audio is not uploaded.
!The skill does not bring FFmpeg with it; a vulnerability in your installed FFmpeg stays in your version until you update it. doctor warns about known high-severity vulnerabilities; keep FFmpeg up to date.
Is ffmpeg-skill free?
Yes. It is MIT-licensed and free; it requires no account, subscription or API key. It can be used for commercial work too (MIT asks you to keep the license notice). The developer accepts optional support through GitHub Sponsors. The only money goes to the agent you use (a Claude Code, Cursor or Codex subscription): because the skill does the processing on your computer, it adds no extra cost.
This license summary is not legal advice. Usage rights for the videos, music and fonts you process apply separately.
Common problems and fixes
| What happens | What to do (README) |
|---|---|
| The caption tool doesn't work on macOS | Homebrew's plain ffmpeg package has no subtitles filter: install brew install ffmpeg-full (the skill finds it on its own; if there is no ffmpeg on your PATH at all, put it at the front of PATH); doctor --json reports "usable" per tool. |
| "python3: command not found" on Windows | The python.org installer names it python or py; in commands you run by hand, write python instead of python3 (the installer and doctor handle this themselves). |
| No silence found | The default threshold is −35 dBFS; raise it with silence.py --threshold -25 or shorten the --min-silence value. |
| Timeout on a one-hour recording | The default 1,800 s is meant to catch a hang; use --timeout 0 (unlimited), a larger value, or --fast for a preview. |
| The subject left the frame when cropping from 16:9 to 9:16 | Cropping is centered by default and 70% of the width is lost; shift toward the subject with --crop-x/--crop-y, or use a blurred fill with --fit pad --pad-fill blur. |
| The new version didn't arrive | A copy installed with npx does not update itself; rerun the install command with the new version. If you installed it as a plugin, use claude plugin update. |
What it can't do (README FAQ): no face or object tracking; a moving logo or burned-in captions that change position are not removed (only a fixed, known rectangle is blurred); GPU encoding only with VideoToolbox on Apple Silicon.
How to uninstall ffmpeg-skill
› npx ffmpeg-skill@2.17.3 --uninstallIf you installed it as a plugin, remove it from the Installed tab of the /plugin panel in Claude Code. FFmpeg and Python are separate programs and are not removed along with the skill.
Frequently asked questions
What is ffmpeg-skill?
A free skill that lets a coding agent such as Claude Code, Cursor or Codex edit video and audio with the FFmpeg on your computer. With 42 ready-made tools it cuts, joins, crops, adds captions and adjusts audio, then checks the output and reports back.
How do I install ffmpeg-skill in Claude Code?
Install FFmpeg first, then run npx ffmpeg-skill in the terminal; the skill is copied to the ~/.claude/skills/ffmpeg-skill folder. npx ffmpeg-skill doctor shows whether your installed FFmpeg has the required components.
Does it work in Codex and Cursor?
Yes. Install it with --cursor for Cursor, --codex for Codex, or --all for all three at once.
Is ffmpeg-skill free?
Yes, it is MIT-licensed and free; it requires no account, cloud service or API key. Only the agent you use has its own cost.
Are my videos uploaded anywhere?
No. Processing is done with the FFmpeg on your computer. The optional local speech recognition engines download a model file on first use, but audio is not uploaded.
Do I need to install FFmpeg separately?
Yes. The skill does not bring FFmpeg with it; you need FFmpeg 5.0 or later (6.1 or later recommended) and Python 3.9 or later. On macOS, captions require the ffmpeg-full package.
Can it be used as an MCP server?
Yes. mcp/server.py in the skill folder connects to Claude Desktop or Cursor once added to the MCP settings file; by default 12 core tools are listed.
Related guides
Sources
- ffmpeg-skill GitHub repository (README)
- SKILL.md (the instructions the agent reads)
- npm package
- License (MIT)
- Security policy (SECURITY.md)
- Releases
Not clear in the official sources: Accuracy of automatic captions from Turkish speech and Turkish filler-word removal (not documented; you can supply the caption text yourself) · testing with real-device videos on Windows (the maker has not run it yet) · long-term maintenance (a new project, largely by a single developer). Each is covered in the relevant section.



