Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add WyattBlue/auto-editor --skill auto-editor -a claude-code
Open on GitHub

What 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.mp4 and save it as talk_cut.mp4.
  • Record the mic with auto-editor :mic --sample-rate 44.1kHz, then drop the pauses.
  • Run auto-editor talk.mp4 --preview first 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-code

2Manually: put the files in place

~/.claude/skills/auto-editor/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/auto-editor/

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

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor