remotion
${var} — the video brief: what the video should be about. Examples:
"explain what Uniswap v4 hooks are","recap this week's aeon ships","a 20s teaser for the $aeon token". Optional trailing flags:
--orientation landscape|portrait|square(defaultlandscape1920×1080;portrait1080×1920 for Shorts/Reels;square1080×1080)--theme dark|light(defaultdark)--accent #hex(brand/highlight color, default#7c5cff)--brand <label>(small persistent label, e.g. a handle)--scenes N(target scene count, 2-4)Videos are hard-capped at 10 seconds — short by design. The composition clamps total duration to 10s regardless of the storyboard, so size it to fit (see step 3).
--secondsis accepted but ignored above 10.If
${var}is empty, logREMOTION_NO_VARand exit cleanly — no notify (a render burns real CI compute, so the skill never fires on a blank default run).
Today is ${today}. This skill turns a one-line brief into a real rendered MP4. It does not call a generative-video API — it writes a storyboard (structured JSON) and hands it to a bundled Remotion project that renders deterministic, on-brand motion graphics in React. The agent is the creative director; Remotion is the renderer.
How it works
The Remotion project lives at skills/remotion/project/ (checked in; node_modules is gitignored). It exposes one composition, Video, driven by an input-props schema (src/schema.ts). You produce a props.json matching that schema; npx remotion render reads it, derives the resolution + duration from the props, and writes an MP4. The workflow's Stage remotion toolchain step has already installed the deps + the headless-chrome browser (behind an Actions cache) before you run, so you only author + render + deliver.