Skip to content
cccskills
FreePublished on GitHub

import-canvas-capture

Import a recorded Remotion Canvas Capture as an editable composition with cursor keyframes, without using Studio controls. The workflow generates and registers a component, copies the video asset, and installs missing dependencies through an internal experimental command.

OriginalShow the original description

Import a recorded Remotion Canvas Capture into a project without Studio interactions using the internal experimental-codemod command. Use when adding a capture file as an editable composition with cursor keyframes.

See how to install

Good for

  • Importing a recording as an editable composition
  • Adding a capture without interacting with Studio
  • Setting composition dimensions and frame rate during import
  • Previewing proposed source changes with a dry run

Files included (1)

  • SKILL.md3.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Import Canvas Capture

This is an internal, unstable workflow. Keep this skill in .agents/skills; do not distribute it through packages/skills or document the command as a stable API.

Workflow

  1. Locate the recorded capture file and the target Remotion project. The original recording must contain embedded REMOTION_CAPTURE_DATA metadata; a converted video that has lost this metadata cannot be imported.

  2. Inspect the project to find the TypeScript file containing its composition registrations (usually src/Root.tsx). Choose an unused composition ID.

  3. From the target project's root, run:

    bunx remotion experimental-codemod add-canvas-capture /absolute/path/capture.webm \
      --composition-file src/Root.tsx \
      --id MyCapture
    

    When developing this command in the monorepo, build the CLI first with bun run build, then invoke the local CLI from the target project's root:

    node /absolute/path/to/remotion/packages/cli/remotion-cli.js \
      experimental-codemod add-canvas-capture /absolute/path/capture.webm \
      --composition-file src/Root.tsx --id MyCapture
    
  4. Review the reported source files and public asset. The importer generates a component beside the registration file, registers it, copies the video to the public directory, and installs missing @remotion/media and @remotion/mac-cursors dependencies at the project's Remotion version. Studio does not need to be running. Existing Studio sessions pick up source changes through their file watchers; this operation does not enter Studio's undo stack.

  5. Report the composition ID and changed files to the user.

Options and conflicts

  • Defaults match Studio's capture import: 1920×1080, 60 fps, and duration rounded up from the recording. Pass --width, --height, or --fps to override them. Recorded video dimensions remain independent from composition dimensions.
  • --public-dir overrides the configured public directory. --package-manager selects the dependency installer.
  • --dry-run parses the recording and generates source changes without installing dependencies or writing project files. The programmatic result includes the proposed source changes.
  • The registration file is resolved relative to the project root; the CLI capture path is resolved relative to the current working directory.
  • Existing component files and conflicting public assets are rejected. If the recording is already in the public directory, pass that file as the input to reuse it. Otherwise rename the input or select another composition ID; do not overwrite an existing asset or component to bypass an error.

Programmatic access

Use CliInternals.importCanvasCapture from @remotion/cli. It is internal and unstable. Its inputs are captureFile, compositionFile, compositionId, remotionRoot, publicDir, fps, width, height, packageManager, logLevel, and dryRun. Supply null for default directory, dimensions, frame rate, and package manager. File paths are resolved relative to remotionRoot.

The result contains the composition ID, source and asset paths, composition metadata, and codemod changes. Pass dryRun: true to inspect changes in memory.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

add-bug

FreeSummary

Add a reported Remotion bug to the bugs API with its affected versions, a short title, and upgrade guidance. Follow the existing entry format and place the new record first so recent bugs appear at the top.

  • Adding a reported bug to the Remotion bugs API
  • Recording which versions a bug affects
  • Including upgrade guidance in a bug description
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-cli-option

FreeSummary

Add a Remotion command-line or configuration option, or convert a hardcoded flag into a shared option definition. Connect parsing, configuration setters, help entries, and generated documentation so the option is consistently available and documented.

  • Add a new Remotion command-line flag
  • Convert a hardcoded flag into a shared option
  • Connect an option to Config setters
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-effect

FreeSummary

Add a new effect to @remotion/effects, including its implementation, package entry points, documentation, interactive demo, and preview images. Follow the package conventions and verify the changes with tests, formatting checks, and builds.

  • Implementing a new effect for @remotion/effects
  • Registering effect imports and parameter types
  • Creating documentation and an interactive effect demo
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-expert

FreeSummary

Add a person to the Remotion experts page by placing their portrait, entering their profile and contact links, and generating an expert card image. The instructions specify file locations, profile fields, and how to verify card generation.

  • Add a new person to the Remotion experts page
  • Register a portrait, specialties, and contact links
  • Generate an expert card image
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-new-package

FreeSummary

Create a new @remotion package within the Remotion monorepo, a repository containing multiple packages. Set up its files, register it across the project, and prepare documentation, usage examples, and build configuration.

  • Creating a new @remotion package
  • Registering a package across the monorepo
  • Adding documentation and usage examples
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-sfx

FreeSummary

Add a new sound effect to @remotion/sfx, from registering the audio file to exporting its URL and documenting its use. The workflow covers playback examples, attribution, navigation entries, waveform generation, and the package build.

  • Add a sound effect to @remotion/sfx
  • Create documentation with playback and usage examples
  • Update sound effect navigation and waveform data
remotion-dev/remotion65.1KUpdated Oct 18, 2026

See all skills by remotion-dev

Report a problem with this skill