Agent skill

Remotion Best Practices

by guanyang in guanyang/open-agent-hub

Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4).

MITAuto-check passedMedia & Creative

Install Remotion Best Practices

skills CLI
$ npx skills add guanyang/open-agent-hub --skill remotion-best-practices -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install guanyang/open-agent-hub remotion-best-practices --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/guanyang/open-agent-hub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/remotion .claude/skills/remotion-best-practices && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
remotion-best-practices
GitHub stars
977
Token cost
~3.1k tokens
SKILL.md length
868 words
Files
49
Skills in repo
26
Repo updated
First seen
Licence
MIT

At a glance

Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4).

  • Editing Remotion code — scaffolding a video project
  • SKILL.md covers When to use, New project setup, Designing a video and Starting preview, plus 26 more sections
  • Calls npx; reaches remotion.media
  • Animating with interpolate/spring over useCurrentFrame()

What it does

Remotion Best Practices is an agent skill from guanyang/open-agent-hub. Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4). Use whenever writing or editing Remotion code — scaffolding a video project, animating with interpolate/spring over useCurrentFrame(), sequencing scenes and transitions, captions/subtitles, audio, GIFs/Lottie/3D, charts, visual effects, dynamic duration via calculateMetadata, or rendering. Consult before reaching for a Remotion API, since its components and props evolve (e.g…

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 50 other files (for example `rules/3d.md`, `rules/animations.md` and `rules/assets.md`).

It sits in Media & Creative, covering Video production and Transcription. It works with Remotion, React, TypeScript and Lottie. The repository describes itself as: A lightweight, zero-dependency CLI tool to manage and activate capabilities for AI coding assistants (such as Claude Code, Cursor, Trae, etc.). The licence is MIT.

When your agent uses it

  • Editing Remotion code — scaffolding a video project
  • Animating with interpolate/spring over useCurrentFrame()
  • Sequencing scenes and transitions
  • Captions/subtitles

Example prompts

  • “/remotion-best-practices”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit acd7c6c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • remotion.media

    Also links to:

    • remotion.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Remotion Best Practices loads about 3.1k tokens when it runs. Until then it costs about 139 tokens; SKILL.md has 868 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from guanyang/open-agent-hub at commit acd7c6c, republished under its MIT licence (© guanyang). 868 words, ~3,064 tokens.

Download SKILL.mdSave it as .claude/skills/remotion-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 48 other files; get the full folder from GitHub.
name
remotion-best-practices
description
Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4). Use whenever writing or editing Remotion code — scaffolding a video project, animating with interpolate/spring over useCurrentFrame(), sequencing scenes and transitions, captions/subtitles, audio, GIFs/Lottie/3D, charts, visual effects, dynamic duration via calculateMetadata, or rendering. Consult before reaching for a Remotion API, since its components and props evolve (e.g. @remotion/media).
metadata.tags
remotion, video, react, animation, composition

When to use

Use this skill whenever you are dealing with Remotion code to obtain the domain-specific knowledge.

New project setup

When in an empty folder or workspace with no existing Remotion project, scaffold one using:

bash
npx create-video@latest --yes --blank --no-tailwind my-video

Replace my-video with a suitable project name.

Designing a video

Before designing visual scenes, layouts, promos, motion graphics, or text-heavy videos, load rules/video-layout.md for video-first layout and text sizing guidance.

Animate properties using useCurrentFrame() and interpolate(). Prefer interpolate() over spring() unless physics-based motion is explicitly needed. Use Easing.bezier() to customize timing, including jumpy or overshooting motion.

For animations that should be editable in Remotion Studio, keep the interpolate() call inline in the style prop and use individual CSS transform properties (scale, translate, rotate) instead of composing a transform string.

tsx
import { useCurrentFrame, Easing, interpolate, useVideoConfig } from "remotion";

export const FadeIn = () => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();

  const opacity = interpolate(frame, [0, 2 * fps], [0, 1], {
    extrapolateRight: "clamp",
    extrapolateLeft: "clamp",
    easing: Easing.bezier(0.16, 1, 0.3, 1),
  });

  return <div style={{ opacity }}>Hello World!</div>;
};

Prefer:

tsx
style={{
  scale: interpolate(frame, [0, 100], [0, 1]),
  translate: interpolate(frame, [0, 100], ["0px 0px", "100px 100px"]),
  rotate: interpolate(frame, [0, 100], ["20deg", "90deg"]),
}}

Over:

tsx
const scale = interpolate(frame, [0, 100], [0, 1]);

style={{
  transform: `scale(${scale})`,
}}

CSS transitions or animations are FORBIDDEN - they will not render correctly.
Tailwind animation class names are FORBIDDEN - they will not render correctly.

Place assets in the public/ folder at your project root.

Use staticFile() to reference files from the public/ folder.

Add images using the <Img> component:

tsx
import { Img, staticFile } from "remotion";

export const MyComposition = () => {
  return <Img src={staticFile("logo.png")} style={{ width: 100, height: 100 }} />;
};

Add videos using the <Video> component from @remotion/media:

tsx
import { Video } from "@remotion/media";
import { staticFile } from "remotion";

export const MyComposition = () => {
  return <Video src={staticFile("video.mp4")} style={{ opacity: 0.5 }} />;
};

Add audio using the <Audio> component from @remotion/media:

tsx
import { Audio } from "@remotion/media";
import { staticFile } from "remotion";

export const MyComposition = () => {
  return <Audio src={staticFile("audio.mp3")} />;
};

Assets can be also referenced as remote URLs:

tsx
import { Video } from "@remotion/media";

export const MyComposition = () => {
  return <Video src="https://remotion.media/video.mp4" />
};

To delay content wrap it in <Sequence> and use from. To limit the duration of an element, use durationInFrames of <Sequence>. <Sequence> by default is an absolute fill. For inline content, use layout="none".

tsx
import { Sequence } from "remotion";

export const Title = () => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();

  const opacity = interpolate(frame, [0, 2 * fps], [0, 1], {
    extrapolateRight: "clamp",
    extrapolateLeft: "clamp",
    easing: Easing.bezier(0.16, 1, 0.3, 1),
  });

  return <div style={{ opacity }}>Title</div>;
};

export const Subtitle = () => {
  return <div>Subtitle</div>;
};

const Main = () => {
  const {fps} = useVideoConfig();

  return (
    <AbsoluteFill>
      <Sequence>
        <Background />
      </Sequence>
      <Sequence from={1 * fps} durationInFrames={2 * fps} layout="none">
        <Title />
      </Sequence>
      <Sequence from={2 * fps} durationInFrames={2 * fps} layout="none">
        <Subtitle />
      </Sequence>
    </AbsoluteFill>
  );
}

The width, height, fps, and duration of a video is defined in src/Root.tsx:

tsx
import { Composition } from "remotion";
import { MyComposition } from "./MyComposition";

export const RemotionRoot = () => {
  return (
    <Composition
      id="MyComposition"
      component={MyComposition}
      durationInFrames={100}
      fps={30}
      width={1080}
      height={1080}
    />
  );
};

Metadata can also be calculated dynamically:

tsx
import { Composition, CalculateMetadataFunction } from "remotion";
import { MyComposition, MyCompositionProps } from "./MyComposition";

const calculateMetadata: CalculateMetadataFunction<
  MyCompositionProps
> = async ({ props, abortSignal }) => {
  const data = await fetch(`https://api.example.com/video/${props.videoId}`, {
    signal: abortSignal,
  }).then((res) => res.json());

  return {
    durationInFrames: Math.ceil(data.duration * 30),
    props: {
      ...props,
      videoUrl: data.url,
    },
    width: 1080,
    height: 1080,
  };
};

export const RemotionRoot = () => {
  return (
    <Composition
      id="MyComposition"
      component={MyComposition}
      fps={30}
      width={1080}
      height={1080}
      defaultProps={{ videoId: "abc123" }}
      calculateMetadata={calculateMetadata}
    />
  );
};

Starting preview

Start the Remotion Studio to preview a video:

bash
npx remotion studio

Optional: one-frame render check

You can render a single frame with the CLI to sanity-check layout, colors, or timing.
Skip it for trivial edits, pure refactors, or when you already have enough confidence from Studio or prior renders.

bash
npx remotion still [composition-id] --scale=0.25 --frame=30

At 30 fps, --frame=30 is the one-second mark (--frame is zero-based).

Captions

When dealing with captions or subtitles, load the ./rules/subtitles.md file for more information.

Using FFmpeg

For some video operations, such as trimming videos or detecting silence, FFmpeg should be used. Load the ./rules/ffmpeg.md file for more information.

Silence detection

When needing to detect and trim silent segments from video or audio files, load the ./rules/silence-detection.md file.

Audio visualization

When needing to visualize audio (spectrum bars, waveforms, bass-reactive effects), load the ./rules/audio-visualization.md file for more information.

Sound effects

When needing to use sound effects, load the ./rules/sfx.md file for more information.

Visual and pixel effects

When creating a visual effect, prefer: 1. normal Remotion/HTML/CSS/SVG/filter/blend/mask animation, 2. a listed effect via rules/effects.md, including on HTML rendered through <HtmlInCanvas>, 3. a custom createEffect() via rules/effects.md when the user asks for a reusable/project-specific effect, 4. custom <HtmlInCanvas onPaint> via rules/html-in-canvas.md only if no effect fits.

For light leak overlays, see rules/light-leaks.md. Docs: https://www.remotion.dev/docs/effects

Available effects: brightness(), contrast(), colorKey(), duotone(), grayscale(), hue(), invert(), saturation(), tint(), linearGradient(), linearGradientTint(), thermalVision(), blur(), linearProgressiveBlur(), radialProgressiveBlur(), zoomBlur(), dropShadow(), glow(), lightTrail(), evolve(), venetianBlinds(), mirror(), scale(), uvTranslate(), xyTranslate(), barrelDistortion(), chromaticAberration(), fisheye(), cornerPin(), wave(), burlap(), emboss(), dotGrid(), halftone(), noise(), noiseDisplacement(), paper(), pattern(), pixelate(), pixelDissolve(), scanlines(), speckle(), shine(), shrinkwrap(), vignette(), contourLines(), checkerboard(), halftoneLinearGradient(), gridlines(), whiteNoise(), tvSignalOff(), lines(), rings(), waves(), zigzag(), lightLeak(), starburst().

Show full SKILL.md (350 more words)Show less

3D content

See rules/3d.md for 3D content in Remotion using Three.js and React Three Fiber.

Advanced audio

See rules/audio.md for advanced audio features like trimming, volume, speed, pitch.

Dynamic duration, dimensions and data

See rules/calculate-metadata.md for dynamically set composition duration, dimensions, and props.

Advanced compositions

See rules/compositions.md for how to define stills, folders, default props and for how to nest compositions.

Google Fonts

Is the recommended way to load fonts in Remotion. See rules/google-fonts.md for how to load Google Fonts.

Local fonts

See rules/local-fonts.md for how to load local fonts.

Getting audio duration

See rules/get-audio-duration.md for getting the duration of an audio file in seconds with Mediabunny.

Getting video dimensions

See rules/get-video-dimensions.md for getting the width and height of a video file with Mediabunny.

Getting video duration

See rules/get-video-duration.md for getting the duration of a video file in seconds with Mediabunny.

GIFs

See rules/gifs.md for how to display GIFs synchronized with Remotion's timeline.

Advanced Images

See rules/images.md for sizing and positioning images, dynamic image paths, and getting image dimensions.

Lottie animations

See rules/lottie.md for embedding Lottie animations in Remotion.

Measuring DOM nodes

See rules/measuring-dom-nodes.md for measuring DOM element dimensions in Remotion.

Measuring text

See rules/measuring-text.md for measuring text dimensions, fitting text to containers, and checking overflow.

Advanced sequencing

See rules/sequencing.md for more sequencing patterns - delay, trim, limit duration of items.

TailwindCSS

See rules/tailwind.md for using TailwindCSS in Remotion.

Text animations

See rules/text-animations.md for typography and text animation patterns.

Advanced timing

See rules/timing.md for advanced timing with interpolate and Bézier easing, and springs.

Transitions

See rules/transitions.md for scene transition patterns.

Transparent videos

See rules/transparent-videos.md for rendering out a video with transparency.

Trimming

See rules/trimming.md for trimming patterns - cutting the beginning or end of animations.

Advanced Videos

See rules/videos.md for advanced knowledge about embedding videos - trimming, volume, speed, looping, pitch.

Parameterized videos

See rules/parameters.md for making a composition parametrizable by adding a Zod schema.

Maps

For simple maps with little flyovers, consider using static map images. For complex maps with animated routes or flyovers, load the maps rule: rules/maplibre.md

Voiceover

See rules/voiceover.md for adding AI-generated voiceover to Remotion compositions using ElevenLabs TTS.

© guanyang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 48 other files in skills/remotion of guanyang/open-agent-hub.

  • SKILL.md
  • rules/3d.md
  • rules/animations.md
  • rules/assets.md
  • rules/assets/charts-bar-chart.tsx
  • rules/assets/text-animations-typewriter.tsx
  • rules/assets/text-animations-word-highlight.tsx
  • rules/audio-visualization.md
  • rules/audio.md
  • rules/calculate-metadata.md
  • rules/can-decode.md
  • rules/charts.md
  • rules/compositions.md
  • rules/display-captions.md
  • rules/effects.md
  • rules/extract-frames.md
  • rules/ffmpeg.md
  • rules/fonts.md
  • rules/get-audio-duration.md
  • … and 30 more

Open the folder on GitHubat commit acd7c6c

Compare with similar skills

Remotion Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Remotion Best Practices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Remotion Best Practices this skillguanyang/open-agent-hub977—~3.1kAutomated safety check: PassMIT
Anything2explainerVincentwei1021/anything2explainer2.4k—~2.7kAutomated safety check: PassCustom licence
Remotion Best Practicesbuainoai/remotion-skills123—~703Automated safety check: PassNone
Remotion Motion Graphicshaidrrrry/claude-remotion-skill340—~2kAutomated safety check: PassMIT
Remotion Render via inference.shHainrixz/editor-pro-max2642 repos~2kAutomated safety check: PassCustom licence
Remotionzhuzhaoyun/Molio433—~4kAutomated safety check: PassCustom licence

Similar skills

  • Anything2explainer

    Vincentwei1021/anything2explainer

    给一个主题,产出一条黑底 MG 风格(幕底可选星点或点阵波)、有配音字幕章节进度条的科普讲解视频(中文或英文;Remotion 代码动画;时长由用户定,常用 3–5 分钟)。内含可编译模板、图元库、配音/分镜/渲染工具、风格与动效规范、多 agent 分工协议与 QC 判据,以及一条完整样片(《RAG 与知识库》)作为质量标尺。Turn any topic into a narrated…

    2.4k GitHub stars~2.7k tokensUpdated 22 days ago
    Media & CreativeAuto-check passed
  • Remotion Best Practices

    buainoai/remotion-skills

    Remotion 最佳实践 - 使用 React 创建视频

    123 GitHub stars~703 tokensUpdated 8 mo ago
    Media & CreativeAuto-check passed
  • Remotion Motion Graphics

    haidrrrry/claude-remotion-skill

    Create and edit professional motion graphics videos with Remotion (React-based video).

    340 GitHub stars~2k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Remotion Render via inference.sh

    Hainrixz/editor-pro-max

    Renders MP4 videos from React and Remotion TSX code through the inference.sh CLI, with settings for resolution, frame rate, duration and codec.

    264 GitHub starsUsed in 2 repos~2k tokens
    Media & CreativeAuto-check passed
  • Remotion

    zhuzhaoyun/Molio

    Molio's builtin skill for MAKING a video from any source — wiki notes, articles, scripts, product info, or a brief — and rendering it to MP4.

    433 GitHub stars~4k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Add New Package

    remotion-dev/remotion

    Official

    Add a new package to the Remotion monorepo, including package scaffolding, monorepo registration, documentation, build scripts, and release checklist updates.

    63k GitHub stars~777 tokensUpdated yesterday
    Media & CreativeAuto-check: notes

More from guanyang/open-agent-hub

All 26 skills in this repo
  • Context Compression

    guanyang/open-agent-hub

    This skill should be used when long-running agent sessions need context compression, structured summarization, compaction, token-per-task optimization, or durable handoff summaries that preserve…

    977 GitHub starsUsed in 2 repos~4.6k tokens
    Auto-check passed
  • Context Fundamentals

    guanyang/open-agent-hub

    This skill should be used to explain or reason about the foundational concepts of context engineering: what context is, the anatomy of a context window, how attention mechanics work, the U-shaped…

    977 GitHub starsUsed in 2 repos~4.2k tokens
    Auto-check passed
  • Evaluation

    guanyang/open-agent-hub

    This skill should be used when building agent evaluation systems: deterministic checks, regression suites, multi-dimensional rubrics, quality gates, production monitoring, baseline comparison, and…

    977 GitHub starsUsed in 2 repos~4.2k tokens
    Auto-check passed
  • Multi Agent Patterns

    guanyang/open-agent-hub

    This skill should be used when designing multi-agent systems that need context isolation, supervisor or swarm coordination, explicit handoffs, parallel execution, or a decision on whether multiple…

    977 GitHub starsUsed in 2 repos~4.6k tokens
    Auto-check passed
  • Project Development

    guanyang/open-agent-hub

    This skill should be used for project-level decisions about LLM-powered systems: whether an LLM is the right primitive for the task at hand, the shape of a multi-stage batch or agent pipeline, token…

    977 GitHub starsUsed in 2 repos~4.7k tokens
    Auto-check passed
  • Tool Design

    guanyang/open-agent-hub

    This skill should be used for the tool-interface layer of an agent system specifically: writing tool descriptions agents can route on, designing tool schemas and response formats, naming…

    977 GitHub starsUsed in 2 repos~5k tokens
    Auto-check passed

Questions about Remotion Best Practices

What does Remotion Best Practices do?

Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4). Remotion Best Practices is an agent skill from guanyang/open-agent-hub. Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4).

When should I use Remotion Best Practices?

Remotion Best Practices fits situations like: editing Remotion code — scaffolding a video project; animating with interpolate/spring over useCurrentFrame(); sequencing scenes and transitions; captions/subtitles.

How do I install Remotion Best Practices in Claude Code?

Run `npx skills add guanyang/open-agent-hub --skill remotion-best-practices -a claude-code`. Or copy the skill folder (skills/remotion in guanyang/open-agent-hub) into .claude/skills/remotion-best-practices in your project. Claude Code loads it when a task matches its description.

How do I install Remotion Best Practices in Codex?

Run `npx skills add guanyang/open-agent-hub --skill remotion-best-practices -a codex`. Or copy the skill folder (skills/remotion in guanyang/open-agent-hub) into .agents/skills/remotion-best-practices in your project. Codex loads it when a task matches its description.

Can I use Remotion Best Practices in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add guanyang/open-agent-hub --skill remotion-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remotion-best-practices, .gemini/skills/remotion-best-practices, .github/skills/remotion-best-practices and .opencode/skills/remotion-best-practices in your project.

What does Remotion Best Practices need to run?

Going by SKILL.md and its folder, Remotion Best Practices needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Remotion Best Practices access the network?

SKILL.md names 2 domains. In commands or code: remotion.media; the agent is likely to contact it when it follows the instructions. As links in the text: remotion.dev. This is read from the text; nothing was executed.

Is Remotion Best Practices safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Remotion Best Practices use?

Remotion Best Practices is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Remotion Best Practices use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Remotion Best Practices?

Skills that share tags, products or a category with Remotion Best Practices: Anything2explainer (Vincentwei1021/anything2explainer, 2.4k stars), Remotion Best Practices (buainoai/remotion-skills, 123 stars), Remotion Motion Graphics (haidrrrry/claude-remotion-skill, 340 stars) and Remotion Render via inference.sh (Hainrixz/editor-pro-max, 264 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Remotion Best Practices?

guanyang (a GitHub user) maintains it in guanyang/open-agent-hub, which has 977 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 10, 2026.

Source: guanyang/open-agent-hub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.