| title | Quickstart |
|---|---|
| description | Install, render your first scene, and open the editor. |
No clone needed — reframe-video is on npm.
Install the skill and just describe the video you want:
/plugin marketplace add kiyeonjeon21/reframe
/plugin install reframe@kiyeonjeon21
Hand reframe a few images and clips and get an editable, deterministic montage scene:
npx reframe-video assemble photo1.jpg photo2.jpg clip.mp4 \
-o my-story --title "Our Year" --bgm uplift
npx reframe-video render my-story.tsIt probes each clip's real duration (so a short clip never freezes), bakes the numbers in, and scaffolds an editable .ts wiring the montage + a kinetic title + a music bed.
brew install ffmpeg
pnpm install
pnpm exec playwright install chromium
pnpm reframe render examples/scenes/lower-third.ts # → out/lower-third.mp4import { scene, text, seq, to, wait } from "@reframe/core";
export default scene({
id: "hello",
size: { width: 1920, height: 1080 },
fps: 30,
background: "#101014",
nodes: [
text({ id: "title", x: 960, y: 540, anchor: "center",
content: "Hello", fontFamily: "Inter", fontSize: 120, fontWeight: 800, fill: "#FFF" }),
],
// base props are the finished design; states are sparse overrides
states: {
hidden: { title: { opacity: 0, y: 580 } },
shown: { title: { opacity: 1, y: 540 } },
},
initial: "hidden",
// labels are stable addresses for overlay timing edits
timeline: seq(
to("shown", { duration: 0.6, ease: "easeOutCubic", label: "enter" }),
wait(2, "hold"),
),
});The complete syntax — node types, states, timeline operators, behaviors, the full motion vocabulary — is the authoring guide (also npx reframe-video guide), the same compact guide an LLM reads to write valid scenes on the first try.
- Node ≥ 20, pnpm ≥ 9, ffmpeg on PATH.
Executable doesn't exist at …/ms-playwright/…→npx playwright install chromium.- Fonts: only Inter 400 / 700 / 800 are bundled; other families silently fall back.