Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

remotion · vercel-labs — Claude Code skill: video from JSON

A skill that turns JSON timeline specs into ready-made video compositions via Remotion. Use it when you need to generate videos programmatically or assemble video clip catalogs from data.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add vercel-labs/json-render --skill remotion -a claude-code
Open on GitHub

What remotion does

remotion is an integration for @json-render/remotion that lets code build videos straight from JSON specifications. Instead of writing Remotion components by hand, you describe video structure in JSON—clips, tracks, effects, transitions—and the skill renders it into a video composition.

It comes with standard components: TitleCard for titles, TypingText for animated text, ImageSlide, SplitScreen, QuoteCard, StatCard, and overlays (TextOverlay, LowerThird). Need custom ones? Define them with Zod schema and pass to Renderer. Timeline spec describes composition (resolution, fps, duration), tracks, clips with props, and audio.

Requires Node.js and @json-render/remotion package. Works in Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode.

What it helps with

  • Generate videos from JSON specs without manual Remotion code
  • Build video clip catalogs with consistent style and animation
  • Embed video rendering into AI workflows for content creation
  • Use pre-built video components instead of writing from scratch
  • Control video composition through data rather than code

Example prompts for the agent

  • Create a video from JSON spec with TitleCard and TypingText clips using this template.
  • Add a custom MyGradientBg component to the remotion catalog and pass it to Renderer.
  • Generate a JSON timeline for a 30-second 1920x1080 video with three image slides.

How to install remotion

1Skills CLI (Vercel)

npx skills add vercel-labs/json-render --skill remotion -a claude-code

2Manually: put the files in place

~/.claude/skills/remotion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/remotion/

From the same set20

The whole set →
react vercel-labs This skill turns json-render JSON specs into React component trees. Use it when building JSON-driven UIs or defining a component catalog for generated specs. Claude Code CX Codex Cursor +1 16,300installs core vercel-labs Defines the schema and component catalog for json-render and builds the system prompt that makes an AI emit JSON UI specs. Claude Code CX Codex Cursor +1 15,000installs codegen vercel-labs Utilities for generating code from json-render UI trees. Build custom code exporters for Next.js, Remix, and other frameworks, traverse specs, and serialize props. Claude Code CX Codex Cursor +1 8,900installs next vercel-labs Converts JSON specs into Next.js apps with routes, layouts, SSR, and metadata. Handy when building AI-generated multi-page apps with @json-render/next. Claude Code CX Codex Cursor +1 8,600installs devtools vercel-labs Debug panel for json-render apps: component tree, state editor, actions log, streaming patches, and element picker. Claude Code CX Codex Cursor +1 8,300installs directives vercel-labs Pre-built directives for json-render: formatting, math, string handling, i18n. Wire them into your catalog and renderer with one import. Claude Code CX Codex Cursor +1 8,000installs mcp vercel-labs This skill helps build MCP servers that render interactive json-render UIs in Claude, ChatGPT, Cursor, and VS Code. Claude Code CX Codex Cursor +1 5,800installs react-native vercel-labs This skill turns JSON specs into native React Native mobile UIs. Use it when screens need state bindings, conditional visibility, and actions. Claude Code CX Codex Cursor +1 3,200installs

Other versions of remotion

Similar

uniwind uni-stack A skill that hands the agent Uniwind's rules and reference files, so it builds and debugs Tailwind CSS v4 interfaces in React Native instead of guessing APIs. Claude Code CX Codex Cursor +1 4,400installs chat-motion-overlay nexu-io Builds animated chat scenes from text or screenshots, then prepares them for Remotion rendering. Use it for message bubbles, app-style chat views, and transparent overlays. Claude Code CX Codex Cursor +1 820installs react19-test-patterns official github A migration reference for updating test files to work with React 19. Use it when replacing removed test utilities or revising StrictMode call-count assertions. GitHub Copilot 1,200installs design-taste-frontend nexu-io Skill for landing pages, portfolios and redesigns. The agent reads the brief, picks a design system and ships interfaces without AI templates. Claude Code CX Codex Cursor +1 808installs audio-and-sound phaserjs Adds audio loading, background music, volume controls, and spatial audio to Phaser 4 games using SoundManager and the Web Audio API. Claude Code CX Codex Cursor +1 938installs react-native-dev MiniMax-AI A React Native and Expo reference set for your agent: routing, lists, animation, state, tests and shipping. Useful when you are building a mobile app and don't want to re-explain the basics. Claude Code CX Codex Cursor +1 1,900installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. Claude Code CX Codex Cursor +1 673,100installs

Questions about remotion

How do I install remotion skill in Claude Code?

Run npx skills add vercel-labs/json-render --skill remotion -a claude-code, then check the config at ~/.claude/skills/remotion/SKILL.md.

What does the remotion skill include?

A Renderer to convert JSON timeline specs into Remotion compositions, standard components (TitleCard, TypingText, ImageSlide, QuoteCard and more), hooks for transitions and effects, and a timeline schema for describing video structure.

How do I add a custom component to remotion?

Define it with Zod schema (props, type, defaultDuration, description), add it to the components array in defineCatalog, then pass it to Renderer's inputProps along with its React implementation.

Source text

SKILL.md · Apache-2.0
---
name: remotion
description: Remotion renderer for json-render that turns JSON timeline specs into videos. Use when working with @json-render/remotion, building video compositions from JSON, creating video catalogs, or rendering AI-generated video timelines.
---

# @json-render/remotion

Remotion renderer that converts JSON timeline specs into video compositions.

## Quick Start

```typescript
import { Player } from "@remotion/player";
import { Renderer, type TimelineSpec } from "@json-render/remotion";

function VideoPlayer({ spec }: { spec: TimelineSpec }) {
  return (
    <Player
      component={Renderer}
      inputProps={{ spec }}
      durationInFrames={spec.composition.durationInFrames}
      fps={spec.composition.fps}
      compositionWidth={spec.composition.width}
      compositionHeight={spec.composition.height}
      controls
    />
  );
}
```

## Using Standard Components

```typescript
import { defineCatalog } from "@json-render/core";
import {
  schema,
  standardComponentDefinitions,
  standardTransitionDefinitions,
  standardEffectDefinitions,
} from "@json-render/remotion";

export const videoCatalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
  transitions: standardTransitionDefinitions,
  effects: standardEffectDefinitions,
});
```

## Adding Custom Components

```typescript
import { z } from "zod";

const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    MyCustomClip: {
      props: z.object({ text: z.string() }),
      type: "scene",
      defaultDuration: 90,
      description: "My custom video clip",
    },
  },
});

// Pass custom component to Renderer
<Player
  component={Renderer}
  inputProps={{
    spec,
    components: { MyCustomClip: MyCustomComponent },
  }}
/>
```

## Timeline Spec Structure

```json
{
  "composition": { "id": "video", "fps": 30, "width": 1920, "height": 1080, "durationInFrames": 300 },
  "tracks": [{ "id": "main", "name": "Main", "type": "video", "enabled": true }],
  "clips": [
    { "id": "clip-1", "trackId": "main", "component": "TitleCard", "props": { "title": "Hello" }, "from": 0, "durationInFrames": 90 }
  ],
  "audio": { "tracks": [] }
}
```

## Standard Components

| Component | Type | Description |
|-----------|------|-------------|
| `TitleCard` | scene | Full-screen title with subtitle |
| `TypingText` | scene | Terminal-style typing animation |
| `ImageSlide` | image | Full-screen image display |
| `SplitScreen` | scene | Two-panel comparison |
| `QuoteCard` | scene | Quote with attribution |
| `StatCard` | scene | Animated statistic display |
| `TextOverlay` | overlay | Text overlay |
| `LowerThird` | overlay | Name/title overlay |

## Key Exports

| Export | Purpose |
|--------|---------|
| `Renderer` | Render spec to Remotion composition |
| `schema` | Timeline schema |
| `standardComponents` | Pre-built component registry |
| `standardComponentDefinitions` | Catalog definitions |
| `useTransition` | Transition animation hook |
| `ClipWrapper` | Wrap clips with transitions |

© vercel-labs · Apache-2.0 · vercel-labs/json-render

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor