visual-mode
$
npx mdskill add remotion-dev/remotion/visual-modeManage visual editing of Remotion Sequences
- Solves debugging sequence identity and hot reload issues in Visual Mode.
- Depends on override IDs, node paths, symbolicated stacks, and file metadata.
- Decides behavior by mapping nodePath to stable overrideIds while tracking stack changes.
- Delivers guidance for maintaining expanded state across async recalculations.
SKILL.md
.github/skills/visual-modeView on GitHub ↗
--- name: visual-mode description: Guidance for working on Remotion Studio Visual Mode, sequence identity, node paths, symbolicated stacks, override IDs, and hot reload behavior. Use when implementing or debugging visual editing of Sequences. --- Visual Mode is a feature in Remotion Studio that allows one to visually edit Sequences. I've made the following observations: ## Fields - overrideId -> does keep the identity the same of a sequence, even if the file / line / column changes - Sequence `stack` -> changes on hot reload. shared by multiple sequences which have different overrideIds - Sequence file, line, column (symbolicated stack) -> does not change, but needs to be calculated asyn - `nodePath` -> same identity, even if line, stack and overrideId changes. async nodePath + index is ideal way to keep track of the expanded state. that’s the end goal. Once nodePath is mapped to `overrideId`, it doesn’t change otherwise component would remount and overrideId works change. If the same `stack` is found already used by another sequence, we re-use the `overrideId`. `nodePath` to symbolicated stack could theoretically change on every file change. but multiple sequences can share the same stack and then they all have the same nodePath. We should only fetch the nodepath for every stack once different unsymbolicated stacks could lead to the same symbolicated stack, because of fast refresh unsymbolicated to symbolicated stack does never change because if it does, it is a different stack due to fast refresh
More from remotion-dev/remotion
- add-cli-optionAdd a new Remotion CLI or config option by creating an AnyRemotionOption, registering CLI parsing, wiring config setters, and updating documentation. Use when adding or converting command-line flags or Remotion options.
- add-effectAdd a new effect to @remotion/effects, including implementation, package exports, docs, demos, preview images, Remotion skill updates, tests, formatting, and builds.
- add-expertAdd a new expert to the Remotion experts page
- add-new-packageAdd a new package to the Remotion monorepo, including package scaffolding, monorepo registration, documentation, build scripts, tests, and release checklist updates. Use when creating a new @remotion package.
- add-sfxAdd a new sound effect to @remotion/sfx
- docs-demoAdd an interactive demo to the Remotion documentation. Use when creating a new <Demo> component for docs pages.
- fix-dependabotFix a Dependabot PR by updating all monorepo instances of the dependency, running bun install, and pushing
- flakeTrack Remotion CI flakes in issue #8375, increment repeated signatures, discover failed PR checks when no PR is given, and rerun flaky GitHub Actions jobs.
- issueCreate or update GitHub issues with correct Remotion naming and safe multiline Markdown handling
- issue-managementManage GitHub Issues 2.0 relationships with gh CLI: parent issues, sub-issues, blocked-by, and blocking links.