agentsclimarketplace

Edit video

Skill ronak-create/FableCut/skills/edit-video

Edit video with FableCut — assemble a cut, add titles and captions, grade, add transitions, keyframe animation, speed ramps, and export. Use whenever the user wants to cut, trim, caption, subtitle, grade, or otherwise edit a video, or asks to open/start the video editor.From its SKILL.md

Install
npx -y skills add ronak-create/FableCut --skill edit-video

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

2.9 KB, as published. Nobody here has run it

Editing video with FableCut

FableCut is a browser video editor whose entire timeline is one JSON document. You edit video by patching that document; the open editor UI hot-reloads within ~150 ms, so the user watches the timeline rebuild as you work.

Start here, every time

  1. fablecut_status — starts the editor server if it isn't running and returns the URL, the current project summary, and what's in media/. Call it before anything else. If the user doesn't have a browser tab open, tell them the URL so they can watch.
  2. fablecut_docs — the full manual: project.json schema, every prop, transitions, text animations, and a recipe book. Request a single section ({section:"props"}, {section:"Recipes"}) rather than the whole document. Skip it entirely if the schema is already in context.

Making edits

Prefer fablecut_patch_project. It sends only what changes, re-reads the latest document internally, and is merge-safe — it will not clobber a tweak the user just made in the UI. Batch related changes into one call; ops apply in order and bump the revision once.

fablecut_patch_project {ops:[
  {op:"updateClip", id:"c_v2", set:{props:{filterPreset:"teal-orange"}}}
]}

Use fablecut_get_project {compact:true} to plan — it's roughly 10× smaller than the full JSON. Fetch the full document only when you need exact keyframes.

fablecut_set_project replaces the whole document and is conflict-checked: if the user edited in the UI since your last read, it refuses rather than overwriting. On conflict, re-read, re-apply your change, and call it again.

Getting footage in

fablecut_import_media copies a local file into the project and registers it. Media entries may omit duration — the browser probes it and writes it back, so re-read after a moment instead of shelling out to ffprobe.

Things that trip people up

  • A cut is just two clips: the first with duration: t, the second with start: +t, in: +t×speed, duration: rest.
  • Video and audio clips must satisfy in + duration×speed ≤ media.duration.
  • Crossfades are same-track overlap plus transitionIn: {type:"fade"} on the later clip — not a separate object.
  • Vary the font per title. Reusing one typeface across a whole edit is the single clearest tell of a machine-made cut; fablecut_docs {section:"Text"} lists the built-in title styles.
  • Export is user-driven. The compositor lives in the browser, so you cannot render headlessly. Ask the user to click Export, or run ffmpeg directly against the source files if they just need a file.

Keep looking

Skills are one crate of 626,474. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.