Skill-Details
editor
KI-nativer lokaler Videoeditor, der FFmpeg in 19 deterministische Tools für Trimmen, Zusammenfügen, Untertitel, Zoom und Rendering einbettet.
Voraussetzungen (angegeben): Node.js
Vor Nutzung prüfen
Die automatische Prüfung bewertet Relevanz, nicht Sicherheit oder Empfehlung. Lies vor der Nutzung die Quellanweisungen.
SKILL.md
Dieser Auszug wurde bei der Prüfung gespeichert. Die externe Quelle enthält die vollständige und aktuelle Version.
---
name: editor
description: AI-native video editor for any agent. Use when the user asks to edit, trim, splice, caption, zoom into, add a title card, transition between, remove silence from, chroma-key, stabilize, or render video files. Wraps FFmpeg in 19 deterministic tools and a session log; runs locally; no generative AI.
license: MIT
compatibility: Requires Node 24+. FFmpeg is auto-downloaded via ffmpeg-static on first use; override with MAKEMYCLIP_FFMPEG_PATH.
metadata:
author: makemyclip
homepage: https://github.com/MakeMyClip/editor
runtime: node
install: npx skills add MakeMyClip/editor
---
# MakeMyClip Editor — Agent Skill
Drive a local video editor by chatting. When triggered, this skill shells out to the `clip` CLI via `npx` (auto-downloaded on first use, cached after). No MCP setup, no global install, no config edits.
## When to invoke
Trigger this skill when the user asks to:
- Edit, trim, cut, or splice a video file
- Zoom, pan, or apply Ken Burns to a region of a clip
- Add captions, titles, or lower-thirds to footage
- Assemble multiple clips into one (concat, montage)
- Render a screen recording into a demo or social clip
Do **not** invoke for: pure transcription (use a speech-to-text skill), thumbnail-only image work, or live streaming.
## How to use
### Probe a media file (implemented)
```bash
npx -y @makemyclip/editor ingest <input>
```
Returns metadata as JSON — duration, video stream (codec, dimensions, fps), audio stream (codec, sample rate, channels), plus a deterministic `mediaId` derived from the absolute path:
```json
{
"mediaId": "m_a1b2c3d4e5f6",
"ref": {
"path": "/abs/path/screen.mp4",
"durationSec": 83.5,
"video": { "codec": "h264", "width": 1920, "height": 1080, "fps": 30 },
"audio": { "codec": "aac", "sampleRate": 48000, "channels": "stereo" }
}
}
```
Call this first to ground yourself in what the source actually contains — duration for trim calculations, dimensions for zoom/overlay placement, presence of audio before suggesting `add_audio`. Same input path always returns the same `mediaId`.
### Split a clip at a point (implemented)
```bash
npx -y @makemyclip/editor split <input> <atSec>
```
Divides a clip into two halves at `atSec`. Stream-copy (no re-encode), so it's fast — both halves are produced in parallel. Returns paths to both:
```json
{ "before": "/var/folders/.../split-before-abc.mp4", "after": "/var/folders/.../split-after-xyz.mp4", "atSec": 12.5, "durationMs": 38 }
```
Keyframe-accurate (not frame-exact) because stream-copy can't decode-and-cut mid-GOP. If you need a frame-exact split, run `render` first to re-encode, then `split`.
### Trim a clip (implemented)
```bash
npx -y @makemyclip/editor trim <input> <start> <end>
```
Timecodes accept `HH:MM:SS[.ms]`, `MM:SS`, or seconds as a number. The output is JSON:
```json
{ "path": "/var/folders/.../makemyclip-editor/trim-abc123.mp4", "durationMs": 14 }
```
Trim is stream-copy (no re-encode), so it's fast and lossless. Output lands in `$MAKEMYCLIP_WORKSPACE` (defaults to `os.tmpdir()/makemyclip-editor`).
### Add a text overlay (implemented)
```bash
npx -y @makemyclip/editor add_text <input> <text> <position> <startSec> <endSec>
```
Burns a text overlay into a copy of the video.
- `<position>` is one of: `top-left`, `top-center`, `top-right`, `center-left`, `center`, `center-right`, `bottom-left`, `bottom-center`, `bottom-right`
- `<startSec>` / `<endSec>` are seconds from the start of the input
- Defaults: font size 48, white text, translucent black background box for readability
Returns JSON:
```json
{ "path": "/var/folders/.../makemyclip-editor/add-text-abc123.mp4", "durationMs": 412 }
```
The text is written to a temp file before being passed to ffmpeg, so quotes, colons, commas, brackets, and most Unicode work without manual escaping. Caveat: literal `%{...}` in the text would be interpreted as a drawtext expression (rare in real captions; avoid).
### Stitch clips togetheVollständige Quelle auf GitHub lesen (öffnet externe Seite)