- videos rendered with FrameWright in the last hour
FrameWright

Search

Jump to a page or section

Documentation

Documentation

FrameWright

Designed Remotion template systems your coding agent assembles into real, full-length videos. You write a manifest; the template does the cinematography.

Introduction

A FrameWright template is a closed scene system for Remotion. It ships a fixed set of scenes, a theme engine, and strict schemas. Agents assemble — they never animate. There is no motion code for the model to write and nothing to render off-brand.

The pipeline is always the same four steps:

manifest  →  validate  →  stills  →  self-review  →  render

The agent picks scenes and writes copy into a JSON manifest. A validator checks the schema and the frame math. The template emits still frames the agent reviews against a QA bar. Only then does it render a real MP4 — locally, on your machine.

Installation

Prerequisites: Node ≥ 20 and a coding agent such as Claude Code.

Sign in — a browser one-time code; the CLI never sees your password:

$framewright login

Pull a template into your project:

$framewright init app-launch

Then open your coding agent and prompt it:

Use the app-launch skill to make a launch video for <your app>

If your registry is not running on port 3000, point the CLI at it with an environment variable:

FRAMEWRIGHT_REGISTRY=http://localhost:<port>

CLI reference

framewright login

Opens the browser OTP flow and stores your license key locally.

framewright init <template> [--dir --force --skip-install]

Scaffolds a template. --dir sets the target folder, --force overwrites an existing one, and --skip-install skips dependency install.

framewright whoami

Prints the identity tied to your stored license key.

framewright logout

Clears the stored key.

Error behaviors

  • 401Not signed in — run framewright login.
  • 402Template not purchased — unlock it on your account.
  • 403Invalid or revoked key — sign in again.

Manifests

A manifest is the whole interface. It looks like this:

{
  "format": "vertical",          // or "horizontal"
  "fps": 30,
  "theme": {
    "brandColor": "#22C55E",
    "mode": "dark",
    "vibe": "minimal"
  },
  "scenes": [
    { "scene": "LogoReveal",    "durationInFrames": 90,  "props": { ... }, "transition": "fade" },
    { "scene": "HookStatement", "durationInFrames": 82,  "props": { ... }, "transition": "slide-up" },
    { "scene": "CTAClose",      "durationInFrames": 130, "props": { ... }, "transition": "none" }
  ]
}

Duration math. The total isn't just the sum of scene durations — transitions overlap adjacent scenes:

total = Σ durations − Σ transition overlaps

fade      → 12 frames
slide-up  → 15 frames
wipe      → 15 frames
none      →  0 frames

The validator prints the exact totals before anything renders, so the agent never guesses the runtime.

Scenes & QA

Each scene has typed props with hard character limits and a duration range. Copy that would overflow is rejected at validation, not discovered at render.

Every render is checked against a fixed QA bar:

  • ·Safe zones: 150 / 170 / 60px insets (vertical) so nothing sits under platform chrome.
  • ·Headlines never below 56px, body never below 36px.
  • ·Text contrast clears 4.5:1 against its background.
  • ·Final frames are motion-settled — clean cuts, clean thumbnails.

Licensing

Sign in on your account page. App Launch is free with an account. Paid templates are $29 each (launch price, normally $49), or get All-Access for $99 (normally $199) to unlock every template — current and future — forever.

Your license key is shown once when issued. Regenerating a key invalidates the previous one everywhere, including any signed-in CLI.