auto-editor — Claude Code skill: cut dead space from video
A Claude Code skill that drives the auto-editor CLI: it drops silence, motionless stretches and black frames, and trims mic recordings.
npx skills add WyattBlue/auto-editor --skill auto-editor -a claude-codeWhat auto-editor does
The skill hands your agent a working guide to the auto-editor CLI. That tool splits a file into time sections, tags each one active or inactive, then applies an action per section. Defaults keep the active parts untouched and cut the rest. Plain auto-editor video.mp4 writes video_ALTERED.mp4, and -o sets the name. The skill works against an installed auto-editor or ./auto-editor from the repo.
--edit decides what counts as active: loudness (audio), frame-to-frame change (motion), mostly black frames (blackdetect), subtitle matching (subtitle, word). Combine methods with or, and, xor, not. Inside an operator the method must go in call form with an argument, otherwise you get Bad kind, and that is the snag people hit first. Pace comes from --margin and --smooth, while manual ranges like --cut 0,30 and --keep 0,30sec override the automatic pass.
Microphone capture runs on :mic, Ctrl-C stops it cleanly, and the normal analysis and render follow. Run --preview before a long export: it prints what would be cut and exits without rendering. Output that comes out bigger than expected usually points at the automatic bitrate, so set -b:v or -crf.
What it helps with
- strip silence from a call recording
- record a mic and get a trimmed file right away
- remove black frames from a screen capture
- see which chunks would be cut before rendering
- shrink a clip to a target bitrate
Example prompts for the agent
- Cut the silence out of
talk.mp4and save it astalk_cut.mp4. - Record the mic with
auto-editor :mic --sample-rate 44.1kHz, then drop the pauses. - Run
auto-editor talk.mp4 --previewfirst and show me what gets cut.
How to install auto-editor
1Skills CLI (Vercel)
npx skills add WyattBlue/auto-editor --skill auto-editor -a claude-code2Manually: put the files in place
~/.claude/skills/auto-editor/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/auto-editor/
1Skills CLI (Vercel)
npx skills add WyattBlue/auto-editor --skill auto-editor -a codex2Manually: put the files in place
.agents/skills/auto-editor/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add WyattBlue/auto-editor --skill auto-editor -a cursor2Manually: put the files in place
.cursor/skills/auto-editor/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install WyattBlue/auto-editor auto-editor2Manually: put the files in place
.github/skills/auto-editor/SKILL.md1Skills CLI (Vercel)
npx skills add WyattBlue/auto-editor --skill auto-editor -a gemini-cli2Platform CLI
gemini skills install https://github.com/WyattBlue/auto-editor --path skills/auto-editorManually: put the files in place
.devin/skills/auto-editor/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add WyattBlue/auto-editor --skill auto-editor -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about auto-editor
How do I install auto-editor in Claude Code?
Run npx skills add WyattBlue/auto-editor --skill auto-editor -a claude-code. The skill lands in ~/.claude/skills/auto-editor/SKILL.md.
What does auto-editor do?
It marks sections of a media file as active or inactive and applies an action to each: cut silence, speed up or keep segments, then render. It also records from a microphone via :mic.
Why does --edit fail with Bad kind inside an or expression?
Inside an operator the method needs an explicit argument in call form, such as audio:0.04 rather than bare audio. Without it the expression does not parse.
Source text
SKILL.md · Unlicense
--- name: auto-editor description: Record a microphone or edit video/audio with the auto-editor CLI — cut out dead space (silence, motionlessness, black frames), set the pace, make manual cuts, and render the result. Use when someone wants to capture and trim a microphone, remove silence, shorten a recording, speed through quiet parts, or otherwise edit media with auto-editor. --- # Editing with auto-editor auto-editor analyzes a media file, marks every timebase section as **active** (e.g. loud) or **inactive** (e.g. silent), then applies an action to each. The defaults: keep active sections unchanged, **cut** inactive ones. ```bash auto-editor path/to/video.mp4 # writes video_ALTERED.mp4 auto-editor video.mp4 -o out.mp4 # choose the output name ``` Run the installed `auto-editor`, or `./auto-editor` from this repo. `auto-editor info FILE` shows streams/codecs/duration; `--preview` prints what *would* be cut and exits without rendering — use it to sanity-check before a long render. ## Record and edit a microphone Use `:mic` as the input on macOS, Windows, or Linux. Stop capture gracefully with Ctrl-C; auto-editor then analyzes and edits the recording normally. ```bash auto-editor :mic # → mic_ALTERED.wav auto-editor :mic --sample-rate 44.1kHz -o trimmed.m4a auto-editor :mic --edit audio:threshold=6% ``` All normal edit, action, and rendering options apply. Editor and timeline exports preserve the source capture separately; use the **auto-editor-export** skill for recording-codec and naming details. ## 1. Choose what counts as "active" — `--edit METHOD` `audio:threshold=0.04,stream=all` is the default. Threshold takes a 0–1 fraction or a `dB` value (case-sensitive). | Method | Marks active when… | Key args (defaults) | |---|---|---| | `audio` | loudest sample ≥ threshold | `threshold=0.04`, `stream=all` | | `motion` | frame-to-frame change ≥ threshold | `threshold=0.02`, `stream=0`, `width=400`, `blur=9` | | `blackdetect` | frame is mostly black | `threshold=0.98`, `pixel-black=0.10` (wrap in `not` to cut black) | | `subtitle`/`regex` | a subtitle line matches `pattern` | `pattern` (required), `ignore-case=#f` | | `word` | a whole word appears in subtitles | `value` (required), `ignore-case=#t` | | `1` / `0` | **every** / **no** moment is active (keep-all / cut-all) | aliases `none` / `all`; a base for manual ranges | ```bash auto-editor video.mp4 --edit audio:threshold=0.04 auto-editor video.mp4 --edit audio:-19dB # dB form auto-editor video.mp4 --edit motion:threshold=0.02 auto-editor video.mp4 --edit blackdetect # cut to remove black: --edit "(not blackdetect:0.98)" ``` Combine streams/methods with boolean operators `or`, `and`, `xor`, `not`. Inside an operator, give the method an explicit arg in call form (`audio:0.04`, not bare `audio`) — a bare method there errors with `Bad kind`: ```bash auto-editor multi.mov --edit "(or audio:stream=0 audio:threshold=10%,stream=1)" auto-editor video.mp4 --edit "(or audio:0.03 motion:0.06)" # threshold is always positional arg 1 auto-editor video.mp4 --edit "(not audio:0.04)" # invert: keep the quiet parts ``` ### Labels — more than just silent vs. loud (`--edit:N`, `--when:N`) Every moment is tagged with an integer **label** (0–255), and each label has an action. Two labels are built in: | Label | Meaning | Set the membership with | Set the action with (default) | |---|---|---|---| | `0` | silent / inactive | (whatever `--edit` does *not* match) | `--when-inactive` = `-w:0` = `--when:0` (`cut`) | | `1` | normal / active | `--edit EXPR` (i.e. `--edit:1 EXPR`) | `--when-active` = `-w:1` = `--when:1` (`nil`) | So plain `--edit audio` is shorthand for `--edit:1 audio`: matched moments become label 1, the rest stay 0. `-w:0`/`-w:1` are just `--when:0`/`--when:1`. Add **custom classes** with `--edit:N EXPR` (N = 2–255) and give each its own action with `--when:N ACTION` (default `nil` = keep). Where classes overlap, the **higher label wins**: ```bash # Cut silence (0) and keep speech (1) as usual, but also zoom wherever there's motion (2) auto-editor video.mp4 --edit:2 motion:0.02 --when:2 zoom:2 auto-editor video.mp4 -e:2 motion:0.1 -w:2 speed:2 # -e/-w short forms # Three tiers: cut silence, keep quiet speech at 1x, speed up the loud parts auto-editor talk.mp4 --edit audio:-30dB --edit:2 audio:-12dB --when:2 speed:1.5 ``` `--edit:0` is rejected — label 0 is the implicit silent class; use `--when:0` to act on silent moments. (The `--edit 1` / `--edit 0` *values* above are unrelated: they set label 1's expression to the all-true / all-false constant.) ## 2. Set the pace — `--margin` and `--smooth` ```bash auto-editor video.mp4 --margin 0.2sec # default: pad each kept section by 0.2s both sides auto-editor video.mp4 --margin 0.3s,1.5sec # 0.3s before, 1.5s after (avoids clipped words) auto-editor video.mp4 --smooth 0.2s,0.1s # min-cut 0.2s, min-clip 0.1s (default); --smooth 0 = off ``` ## 3. Manual edits — range syntax `--cut`, `--keep`, `--set-speed`, `--set-action` take `START,STOP` ranges. Start is inclusive, stop exclusive. Default unit is the **timebase**; add `sec` (`s`/`second`) for seconds. Vars `start`/`end`; negatives count from the end. Ranges combine with automatic edits, or use `--edit 0`/`--edit 1` for manual-only editing. ```bash auto-editor video.mp4 --cut 0,30 -10sec,end # drop first 30 frames and last 10s auto-editor video.mp4 --keep 0,30sec # force-keep first 30s regardless of loudness auto-editor video.mp4 --set-speed 2,0,30 # SPEED,START,STOP: 2x over frames 0–29 auto-editor video.mp4 --edit 1 --cut 0,5sec # no auto cuts, just drop first 5s auto-editor video.mp4 --edit 0 --keep 0,5sec # keep only the first 5s ``` ## 4. Reverse the edit — see what gets cut ```bash auto-editor video.mp4 --when-active cut --when-inactive nil # keep the silence, cut the loud parts ``` ## 5. Render & file size ```bash auto-editor video.mp4 -c:v hevc -b:v 0 # variable bitrate auto-editor video.mp4 -b:v 230k # target a bitrate to shrink the file auto-editor video.mp4 -crf 23 -preset medium # quality-based encoding auto-editor video.mp4 --scale 0.5 # halve the resolution auto-editor video.mp4 -anorm ebu # EBU R128 loudness normalize (or peak:-3) ``` Larger-than-expected files are usually a too-high auto bitrate — set `-b:v` or `-crf`. `auto-editor cache` lists/`cache clear`s the analysis cache. ## Going further - Creative effects (speed/zoom/overlays/animations) → **auto-editor-effects** skill - Export to Premiere/Resolve/Final Cut, clip-sequence, or `.v1/.v2/.v3` timelines → **auto-editor-export** skill - Transcribe audio and cut by spoken words → **auto-editor-transcribe** skill - Full option list: `auto-editor --help` or <https://auto-editor.com/ref/options.md>
© WyattBlue · Unlicense · WyattBlue/auto-editor