Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/ronak-create/fablecut/edit-videonpx skills add ronak-create/FableCut --skill edit-videogit clone --depth 1 https://github.com/ronak-create/FableCutWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00062 | $0.00718 |
| Opus 5 | $0.00031 | $0.00359 |
| Sonnet 5 | $0.00012 | $0.00144 |
| Haiku 4.5 | $0.00006 | $0.00072 |
Grade A, and why
edit-video scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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
fablecut_status— starts the editor server if it isn't running and returns the URL, the current project summary, and what's inmedia/. Call it before anything else. If the user doesn't have a browser tab open, tell them the URL so they can watch.fablecut_docs— the full manual:project.jsonschema, 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 withstart: +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.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 61 lines · 62 tokens per session scan A 25b7ff749cfc
edit-video is a skill published in the GitHub repository ronak-create/FableCut (643 stars, last pushed 5d ago), licensed MIT. It adds 62 tokens to every session and 718 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
talking-head-recut
Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on…
embedded-captions
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet…
faceless-explainer
Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a…
pr-to-video
Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR…
slideshow
Author a HyperFrames slideshow — a presentation, pitch deck, or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation, and built-in presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. If the user didn't…
hyperframes-audio
Use when audio already placed in a HyperFrames composition needs to be mixed: fade-in/fade-out, crossfade, track gain or volume, volume automation, ducking, a music bed that fights a voiceover (voiceover carve), effects on a track (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush)…