auto-editor

A command-line video and audio editor that automatically cuts silence, motionless footage, and other dead space using loudness, motion, and scene-detection analysis, then exports directly to Premiere, Final Cut Pro, DaVinci Resolve, and more.

5.2Kstars
Unlicense

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
90/100Excellent
Development Activity96
Maintenance100
Community64
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
80/100Excellent
Architecture85
Code Quality75
Innovation85
Learning Curve75

Auto-Editor is a command-line tool that automates the most tedious part of video editing: cutting out the dead space before the real editing begins. Point it at a video or audio file and it analyzes loudness, motion, or black-frame detection to decide which sections are “active” and which are “silent,” then cuts, speeds up, or otherwise transforms each section according to configurable rules.

Under the hood, auto-editor is written in Nim and links directly against libav (FFmpeg’s underlying libraries) instead of shelling out to the ffmpeg binary, giving it tight control over decoding, filtering, and encoding. Its editing model goes well beyond a binary cut/keep: sections can be assigned integer labels (0-255) driven by combinable conditions like audio threshold, motion percentage, or black-frame detection, with per-label actions such as speed changes, and the results can be previewed before any rendering happens.

Rather than only producing a rendered output file, auto-editor can export an edit decision list directly into Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve, ShotCut, Kdenlive, or OpenTimelineIO project formats, so an automatic first pass can be refined by hand in a full NLE. It also supports local, offline transcription via whisper.cpp and Parakeet models (plus native OS speech APIs on macOS), microphone recording and auto-trimming (:mic), and compiles to WebAssembly for a fully in-browser version at app.auto-editor.com.

The project is released into the public domain (Unlicense) and has been under continuous, active development since 2020, with cross-platform builds for macOS, Windows, Linux, and ARM, and a companion suite of Claude Skills shipped in the repository for agent-driven editing workflows.

What You Get

  • A single CLI command (auto-editor path/to/video.mp4) that produces an edited file with dead space removed, no manual scrubbing required
  • Multiple detection methods (audio loudness, motion percentage, black-frame/scene detection, and combinations via boolean expressions) to decide what counts as “active” footage
  • A multi-label action system (up to 255 labels) so different sections can get different treatments, such as cutting silence while speeding up quieter-but-not-silent parts
  • Direct export to Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve, ShotCut, Kdenlive, and OpenTimelineIO so the automatic cut can be finished by hand in a real editor
  • Local, offline speech transcription via whisper.cpp/Parakeet and native OS speech APIs, with no audio ever leaving the machine
  • Microphone capture and auto-trimming (:mic) that records and edits in one step, plus a WebAssembly build that runs entirely in the browser

Common Use Cases

  • Removing silence and dead air from talking-head, tutorial, or podcast-style video before publishing
  • Trimming long screen recordings or lecture captures down to just the moments where something is happening
  • Auto-cutting motionless security or lock-off camera footage down to segments with actual movement
  • Generating a rough first-pass edit that gets exported into Premiere/Resolve/FCP for a human editor to polish
  • Recording and auto-trimming microphone-only audio (voiceovers, dictation) without post-processing in a separate tool

Under The Hood

Architecture Auto-Editor is organized as a clear analyze-decide-render-export pipeline: main.nim parses arguments via cli.nim and hands off to conductor.nim, which orchestrates the run; src/analyze/ (audio, motion, blackdetect, subtitle) produces per-frame activity signals; edit.nim and action.nim turn those signals plus user-specified rules into a labeled timeline.nim structure; src/render/ (video, audio, h264, hevc, smart, partialplan) turns the timeline into rendered media, while src/exports/ (fcp7, fcp11, kdenlive, mlt, otio, shotcut, json) turns the same timeline into edit-decision-list files for external NLEs. This separation means a single internal timeline representation can drive either a rendered file or a professional-editor handoff without duplicating cut logic.

Tech Stack The project is written in Nim (>=2.2.2) and links directly against libav (the FFmpeg libraries) through hand-written bindings in ffmpeg.nim/av.nim rather than shelling out to the ffmpeg CLI, giving it low-level control over decode/filter/encode without needing FFmpeg installed separately in a compiled binary. It builds and cross-compiles for macOS, Windows, Linux, and ARM via a custom ae.nimble task pipeline (including building FFmpeg itself from source per target), compiles to WebAssembly via Emscripten with C/JS glue for a browser build, includes a Swift file for native macOS speech recognition, and embeds whisper.cpp/Parakeet/ggml for local speech-to-text.

Code Quality Error handling is explicit and typed: parsing functions declare {.raises: [ActionParseError].} effect annotations and raise a dedicated exception type rather than relying on generic errors, which Nim’s compiler enforces at compile time. Functional and end-to-end tests live in a separate, private companion repository (auto-editor-tests) that CI checks out and runs via nimble test plus a Python end-to-end script; CI itself is extensive, covering macOS, Linux x64/ARM, and Windows cross-compilation with dependency caching and a dedicated 32-bit type-check pass. Comment density inside core modules is moderate, leaning on descriptive naming and Nim’s static typing over inline prose.

What Makes It Unique Most “auto-editing” tools stop at producing a rendered file; auto-editor’s timeline model is designed to also export directly into the project formats of major professional editors, letting an automatic first pass become the starting point for manual refinement rather than the end of the pipeline. Its labeling system goes beyond a binary active/silent cut, allowing many overlapping detection methods and per-label actions (including variable-speed sections) driven by a small boolean expression language. Combined with direct libav linkage, a from-scratch WebAssembly browser build, and fully local/offline speech transcription, it covers CLI, browser, and agent-driven (via bundled Claude Skills) editing without depending on cloud services.

Self-Hosting

Licensing Model Unlicense (public domain) — all features in this repository are available with no restrictions or license keys required. A separately hosted web/desktop application at app.auto-editor.com reuses these assets but ships its own additional proprietary components under a separate license; the CLI tool covered here is fully open.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search