HyperFrames Animation
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
Authors or patches Motion Graphic assets as inline JSX inside an OpenChatCut project, then places them on the timeline and checks the rendered frame.
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install 0xsline/OpenChatCut create-motion-graphics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .claude/skills/create-motion-graphics && rm -rf skills-srcUse ~/.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/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .claude/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphicsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install 0xsline/OpenChatCut create-motion-graphics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .agents/skills/create-motion-graphics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .agents/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install 0xsline/OpenChatCut create-motion-graphics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .cursor/skills/create-motion-graphics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .cursor/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/0xsline/OpenChatCut.git --path src/agent/skills/create-motion-graphics--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install 0xsline/OpenChatCut create-motion-graphics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .gemini/skills/create-motion-graphics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .gemini/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install 0xsline/OpenChatCut create-motion-graphicsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .github/skills/create-motion-graphics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .github/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install 0xsline/OpenChatCut create-motion-graphics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/agent/skills/create-motion-graphics .opencode/skills/create-motion-graphics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "create-motion-graphics" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/create-motion-graphics into .opencode/skills/create-motion-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-motion-graphics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
create-motion-graphicsAuthors or patches Motion Graphic assets as inline JSX inside an OpenChatCut project, then places them on the timeline and checks the rendered frame.
This is the direct-authoring route for Motion Graphics in OpenChatCut. The agent writes inline JSX itself, using create_motion_graphic_from_code for new assets and edit_asset for existing ones, instead of turning the request into a generation brief or calling submit_motion_graphic. If those tools are missing it stops and reports that the tool surface is out of date. Source is passed inline and never staged in the repository, ai-working, /tmp, a local server or guessed workspace paths.
Before coding it checks project state when canvas size, frame rate, existing visual language or timeline conflicts are unknown, then gathers only what the edit needs: placement and duration, the graphic's role, exact content, any sync to speech or music, the visual source such as brand colors and fonts, and which values become editable properties. It casts the user as manager and itself as junior designer, so unclear direction is raised before authoring. Afterward it re-reads project state and verifies the visible frame.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2e6f4a2. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
OpenChatCut Motion Graphic Author loads about 7.3k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 118 tokens; SKILL.md has 4,129 words of instructions outside code blocks.
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.
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.
The full file from 0xsline/OpenChatCut at commit 2e6f4a2, republished under its AGPL-3.0 licence (© 0xsline). 4,129 words, ~7,321 tokens.
.claude/skills/create-motion-graphics/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill when a OpenChatCut task requires a Motion Graphic asset that the agent will author or patch as inline JSX.
This skill is for direct authoring. Do not translate the request into a Gemini prompt or generation brief, and do not call submit_motion_graphic, when this workflow is active.
Even though submit_motion_graphic exists in the tool list, treat it as the generation route, not this one. Ignore that path for MG work; use create_motion_graphic_from_code for new JSX assets and edit_asset for existing MG JSX. If the direct-authoring tools are missing, stop and report that the OpenChatCut tool surface is out of date.
Pass source inline through the asset code tools. Do not stage Motion Graphic code in the OpenChatCut repository, ai-working/, /tmp, a local HTTP server, generated code files, or guessed backend workspace paths.
Before writing JSX, identify only the information needed for this edit:
Ask only for missing high-leverage inputs that would materially change the result.
You are the junior designer; the user is the manager. Direction is the high-leverage choice — surfacing it before authoring is much cheaper than reauthoring after.
Style alignment gate:
Separate visual direction from batch permission. A user-named text/custom style can choose the direction, but it does not permit multiple MGs until the user has confirmed a representative MG. Batch authoring is permitted only by an active Design Style, a selected visual preset, or a previously accepted representative MG.
manage_design_style with action: "list", present 3-6 reasonable choices, and let the user pick or override.widget-forms skill and use ask_followup_questions with a single-select field of preset names; this build has no preset thumbnails, so concise numbered choices are the standard route.Before authoring, choose the branch:
When the task needs visual style alignment, check the active project Design Style first. If there is no active Design Style and the user has not given a clear style direction, use the style alignment gate above.
Saved user design styles are a library, not project confirmation. If manage_design_style list shows saved styles but no active project Design Style, do not infer or choose one silently; use action: "list" and explicit alignment unless the user selects a saved style or asks you to use one.
Catalog Design Style presets are named starting points with style summaries (no image previews in this build). When no active Design Style or user style is set, first look at the available catalog candidates with action: "list" and show 3-6 reasonable starting points as concise numbered choices (name + one-line summary). They do not need to match every detail of the user's request; presets set useful expectations and can be adapted in authoring. Do not force catalog presets when none are reasonably close; use text directions only then.
When using catalog presets, call manage_design_style with action: "list". Pick 6 matches using each preset's description as agent-facing matching guidance when there are enough reasonable matches; use fewer only when fewer presets genuinely fit. Never render the full catalog as user-facing choices. Use ask_followup_questions with one single-select field, mapping each preset to {id: presetId, label: name}; this build has no thumbnails, so concise numbered choices are the standard route. Do not invent value, name, or media for catalog choices, and do not mix custom non-preset directions into the same visual picker. If a custom direction would help, describe it in prose outside the picker. Do not repeat catalog descriptions under the picker unless the user asks for details. Frame catalog options as visual starting points, not required choices: briefly make clear in the user's language that they can pick a close option or describe a different direction. If the user asks to refresh, call action: "list" again and show a different set of up to 6 reasonable matches. Do not repeat presets already shown in the current style-picking exchange; show fewer than 6 rather than repeat. Apply the user's pick with action: "apply". After applying a preset or saved style, call manage_design_style with action: "get" before authoring MG code; preset names and list summaries are picker guidance, not the full motion/design spec. Do not create or update a Design Style from an unconfirmed recommendation.
The visual style picker is a turn boundary. After calling ask_followup_questions for style alignment, stop and wait for the user's submitted selection. Do not apply a preset, create MG assets, inspect more frames, or continue detailed MG planning from your own recommendation in the same turn.
For a batch of related MGs in one scene or topic, ask once for a shared direction — don't invent a different aesthetic per item, and don't ask per MG.
When the batch direction is textual or custom rather than a visual preset or active Design Style, the representative-MG gate above is a hard stop. A user-named text style skips only the preset picker; it does not confirm the visual language for multiple MGs. The representative MG validates visual language only; it does not define the form for every later MG.
The only times to skip the style picker:
Use the active project Design Style, user-provided style, brand assets, or an accepted existing Motion Graphic as the visual language for hand-authored JSX. A visual language means shared palette, typography logic, motion tone, spacing, density, material treatment, and level of polish.
When a Design Style is active, work from its full designSpec / styleGuide, not only its name or catalog summary. Treat explicit style rules for motion, typography, color, and material as implementation constraints.
Treat Design Style structure, materials, and template notes as visual vocabulary, not default containers. Express the style through typography, marks, geometry, texture, motion, spacing, and materials; use a bounded reading surface only when bounded reading is the actual editorial mechanism.
Do not create or update a project Design Style just because a one-off Motion Graphic needs styling. For multiple Motion Graphics in the same video, keep one coherent visual system unless the user asks for a deliberate contrast, and let each MG's content and editorial job determine its form.
Treat multiple MGs in the same video as one visual system. Shared style comes from palette, typography, motion tone, spacing, material, and polish.
Before authoring a batch, make a compact design map for the planned MGs: viewer job, content, visual mechanism, how it carries meaning beyond text, speech span, settled frame, read time, size, composition relationship, internal motion beats, and whether its form is intentionally recurring.
Let each MG's content and editorial job determine its form. Keep the same visual language while choosing the composition, size, placement, duration, and rhythm that fit that moment.
Choose the visual mechanism before writing JSX. Decide how the graphic carries meaning beyond text, using the confirmed visual language and the content's viewer job. Name a wrapper as the form only when a bounded reading surface is truly the right mechanism.
Text should rarely carry the whole graphic alone. Pair key words, stats, or claims with a tangible non-text visual role so the result is not just copy inside a wrapper.
Common defaults must earn their place. Use a bounded reading surface only when bounded reading is the editorial mechanism; otherwise let the MG's form come from the frame relationship and viewer job.
Reuse an MG asset only for an intentionally recurring component with the same viewer task, information structure, and visual form. Shared palette, typography, motion, or a bounded-surface treatment is visual language, not a reason to reuse the same asset.
Placement and duration are part of the settled frame composition. Choose each MG's position, size, anchor, start, and end from the relationship between the speech span, inspected frame, reading time, and visual job. Do not use a fixed safe-zone as the default placement; repeated anchors are intentional only when the frame relationship and viewer task recur. If the graphic does not feel integrated with the moment it explains, change its form, timing, scale, or skip.
Match the MG asset duration to the timeline span it is designed to occupy. Internal motion beats must complete inside the placed item duration; when the edit timing changes materially, update or recreate the MG instead of relying on a shorter timeline item to truncate a longer asset.
In a batch, compare the composed settled frames side by side. The MGs should share a visual language, but repeated surfaces, anchors, or rhythms should point to a recurring viewer job; otherwise revise the form, placement, or timing before reporting done.
Create the asset shape that fits the job at hand. For overlays, the asset box should tightly bound the visible graphic's local composition. Use timeline dimensions only when visible design intentionally spans the whole frame.
Expose user-visible and likely-to-change values as editable properties.
font properties when users may reasonably change them.image / video properties.item.props; do not hardcode visible content that the user may reasonably want to change later.Property entries should declare a stable key, user-facing label, type, and default value. Supported property types include text, number, color, boolean, select, font, image, and video.
Motion Graphics must use fonts the cloud renderer can load. Do not rely on local/system fonts such as STKaiti, PingFang SC, Microsoft YaHei, Arial, Helvetica, Comic Sans MS, system-ui, -apple-system, or generic CSS families as the primary rendered font; preview may have them locally, but export will fall back to the default stack.
When choosing or replacing a font, call search_fonts and use the returned canonical family name verbatim as the fontFamily value and matching font property defaultValue. Use Google Fonts or project custom fonts returned by the catalog. If a user explicitly asks for an unsupported local font, explain that cloud export cannot preserve it, search for a supported alternative with a similar feel, and use that supported family unless the user explicitly accepts export fallback.
Images and videos rendered inside Motion Graphics must already be registered as project assets or otherwise be passed through editable asset properties.
<Img> and <Video> only with URLs read from item.props.src can crash the runtime.The agent is the designer for direct-authored Motion Graphics. Do not merely satisfy constraints or place text in a wrapper. Before writing JSX, design the settled frame as a specific visual object.
Before writing code, decide:
Before writing code, choose a clear aesthetic direction for this specific design. Commit to one direction and execute it with precision rather than defaulting to a generic look.
Default quality bar: distinctive, production-grade, and intentional. When the user has not specified a style and asks you to proceed, choose a specific visual direction with a point of view. Do not fall back to safe, basic, or generic just because the style is unspecified.
Restrained does not mean plain. Minimal or refined MGs still need a named design language, precise hierarchy, and one memorable visual decision.
Treat the Design Style's motion language as a constraint, not just mood. If it says hard cut, no opacity, no translate, no glow, no easing, word-by-word, static bars, or sequential nodes, implement those literally; do not replace them with fades, springs, sweeps, glows, or drifting motion.
Motion must earn its place. Do not add shine, sheen, light-sweep, scan-line, shimmer, glow, or glossy passes as default polish; use them only when the style or editorial job explicitly means scanning, loading, reflection, energy, or detection. Prefer typography, masks, stagger, data bars, and timing tied to the content.
Material treatment belongs to the visual language. Do not add glass, blur, heavy shadows, gradients, grain, paper texture, glow, or other surface polish just to make the surface feel designed; use those materials only when the confirmed style or visual job calls for them.
When the graphic includes text, create clear hierarchy. Use the Design Style's type system when it exists. When no type system is defined, make size, weight, spacing, and timing contrast visible at video scale.
Design the most visible frame first, then animate into that layout. Choreograph by importance: the first moving element is the hierarchy leader. Vary direction, duration, easing feel, and stagger rhythm when the visual job changes.
Anti-slop rules are a floor, not a ceiling. Avoid generic AI-generated aesthetics: purple/blue gradient backgrounds, fake glassmorphism everywhere, predictable feature-tile layouts, or cookie-cutter design that lacks context-specific character. Within one visual system, vary form, composition, and rhythm when the visual job changes; keep color and typography logic coherent enough that the MGs belong together.
Do not default to card-shaped overlays. Unless a bounded reading surface is truly needed, avoid floating panels, tickets, notes, or rounded rectangles that simply hold text; they often feel detached from the footage and make the video look like UI rather than motion design.
Use strong materials, texture, gradients, glow, depth, dense composition, or bold motion when they are part of the confirmed visual language or the editorial job. Do not avoid expressive design just because a generic version of the same effect would be bad.
Do not default to centered, symmetrical layouts. Consider asymmetry, overlap, generous negative space, or controlled density, whichever fits the content. Unexpected spatial choices make motion graphics feel designed, not generated.
A character, illustration, or compound shape is one visual entity. When multiple parts must visually connect, attach, or align, render those parts inside a single <svg> with one shared coordinate space and named anchors. Independent hardcoded left / top across separate wrappers produces visible gaps.
For text-bearing MGs, design the settled frame as a real layout before animating. Use flexbox or grid, gap, padding, maxWidth, lineHeight, and natural wrapping for related text blocks. Do not stack readable text with independent hardcoded top values unless the text is intentionally decorative or typographic art.
Editable text may become longer than the default. Reserve space for plausible longer copy, allow wrapping with whiteSpace: "normal" and overflowWrap: "break-word", and reduce hierarchy, size, density, or change form when the content cannot fit cleanly.
Animated transforms do not affect layout. If text scales, pulses, slides, or staggers near other text, leave visual headroom for the largest animated state. Intentional overlap may be used for graphic layers, shadows, marks, or decorative typography; ordinary readable text must not collide.
Avoid forced <br> or manual line breaks for dynamic text unless each line is deliberately fixed. Prefer width-constrained wrapping.
Use this base component shape:
const Component = ({ item }) => {
const frame = useCurrentFrame();
const { durationInFrames } = useVideoConfig();
const props = item.props || {};
const accentColor = props.accentColor;
const rootStyle = {
position: "absolute",
inset: 0,
backgroundColor: "transparent",
};
return <div style={rootStyle}>{/* content */}</div>;
};Violations cause runtime crashes. Strict compliance required.
React, spring, useCurrentFrame, useVideoConfig, interpolate, interpolateColors, Math, random, Easing, AbsoluteFill, Sequence, Series, Img, Video, and Audio.Remotion.xxx or const { ... } = Remotion. Hooks and components are pre-injected as standalone globals.export default. Define const Component = ....Sequence wrappers inside the component. Use flat frame-driven logic.return.interpolateColors plural. Define any helpers locally.AbsoluteFill is a component, not a style object. Never spread it. It may be used for inner layers, but never as the root.<div style={rootStyle}>.<Img> and <Video> sources must read from image/video editable props. Never hardcode URLs. If no assets are provided, design with shapes, text, and CSS.useCurrentFrame(), not from useVideoConfig().({ item }) props. The asset width/height are the MG's natural box around its visible local composition, not the timeline canvas; fill that box with position:absolute; inset:0. Timeline placement sets final screen size and position.item.props. Never add fallback values like || "Default" or ?? false after props.key; declared runtime properties already have values.<Img> or <Video> when the URL is truthy.transparentBackground boolean property.Do not author JSX from timing alone. Inspect the target frame first: timing tells you when; the frame tells you form, placement, and background. For a batch of overlays, make one target-frame screenshot/contact sheet and decide each MG's settled frame, speech span, read time, and placement relationship before choosing final anchors, sizes, and durations.
Design the settled frame first: choose the moment when the MG is most readable, place the final layout there, then animate into that composition.
Before authoring JSX, make four linked editor decisions. They prepare the Motion Graphic asset and the later timeline placement.
| Decision | Question | Output |
|---|---|---|
| Content | What idea deserves a visual layer? | The message or visual fact the MG expresses. |
| Timing | When should it land and leave? | Speech span, read time, duration, and any internal motion beats. |
| Form and placement | What kind of MG is it, and where does it belong in the composed frame? | MG form/size, then edit_item placement after asset creation. |
| Background | Is this an overlay on the footage, or its own moment? | Transparent or opaque background. |
Placement principles:
Default to a transparent overlay unless a full-frame beat is intended. A transparent overlay still uses a natural-box asset; do not use a transparent timeline-sized asset just for placement.
Place and review:
edit_item (adds/updates). Prefer an explicit rectangle once you know the frame: one horizontal anchor, one vertical anchor, width, and height.Create new Motion Graphic assets by passing inline JSX and editable property metadata through the current OpenChatCut asset-creation tool. Use the tool schema for the exact field names and accepted duration format.
Choose the MG's natural box, duration, asset name, description, and property schema from the edit requirements. The asset duration should match the intended placed span, including internal entrance, hold, and exit timing. The asset creation step only creates the asset; timeline placement is separate.
For create_motion_graphic_from_code, pass that natural box as width/height; use timeline dimensions only for intentional full-frame MGs. If the content occupies only part of the screen, place and scale the bounded asset with edit_item instead of baking screen coordinates into a full-canvas MG.
Before patching, inspect the existing asset code and property schema. Preserve unrelated behavior, property keys, and timeline timing unless the requested change requires otherwise.
Read references/canvas-pipeline-rules.md before changing code, especially when SVG is involved. Patch with full inline replacement source through the current asset-update tool.
Use the timeline editing workflow for placement, movement, trimming, and per-instance property overrides. Dry-run large or uncertain transactions when the tool surface supports validation.
Read references/canvas-pipeline-rules.md before any asset-code update, when writing or modifying SVG, or when preview looks correct but export renders black or empty.
A successful tool call is not verification.
© 0xsline, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in src/agent/skills/create-motion-graphics of 0xsline/OpenChatCut.
Open the folder on GitHubat commit 2e6f4a2
OpenChatCut Motion Graphic Author 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| OpenChatCut Motion Graphic Author this skill0xsline/OpenChatCut | 2.2k | — | ~7.3k | Automated safety check: Pass | AGPL-3.0 | |
| HyperFrames Animationheygen-com/hyperframes | 59k | 3 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Stitch to Remotion Walkthrough Videosgoogle-labs-code/stitch-skills | 8.4k | 6 repos | ~3.2k | Automated safety check: Notes | Apache-2.0 | |
| Faceless Explainer Videoheygen-com/hyperframes | 59k | 3 repos | ~7.7k | Automated safety check: Notes | Apache-2.0 | |
| Video ShotcraftVincentwei1021/video-shotcraft | 11k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Figma to HyperFramesheygen-com/hyperframes | 59k | 3 repos | ~4.5k | Automated safety check: Notes | Apache-2.0 |
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
google-labs-code/stitch-skills
Builds walkthrough videos from Stitch design projects using Remotion, with transitions, zoom effects and text overlays on each screen.
heygen-com/hyperframes
Turns an article, notes or a topic brief into an explainer video whose visuals are invented per scene, built frame by frame in HyperFrames with no footage.
Vincentwei1021/video-shotcraft
Makes cinematic product videos with Remotion from shot recipe cards, a ready template, real page screenshots, camera moves and sound design, or builds a single animated shot.
heygen-com/hyperframes
Imports Figma assets, brand tokens, components and motion into a HyperFrames video composition, using the Figma REST API with a connector or native export for shaders.
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
0xsline/OpenChatCut
Connects an MCP-capable agent to the local OpenChatCut video editor to inspect and edit projects through draft edit sessions, with manual approval by default.
0xsline/OpenChatCut
Generates WebGL shaders for video effects, transitions, masks and color grades in the OpenChatCut editor, trying built-in catalog effects such as zoom before making anything new.
0xsline/OpenChatCut
Generates still images through the submit_image tool, choosing among Fal.ai, gpt-image-2, nano-banana, MiniMax image-01 and Grok Imagine by configured keys.
0xsline/OpenChatCut
Cuts a livestream recording into evidence-backed, platform-ready clips by combining transcript, visual, audio and genre-specific signals.
0xsline/OpenChatCut
Generates instrumentals, songs, soundtracks and covers through Mureka, MiniMax, Atlas Cloud or Sonilo using the `submit_music` tool.
0xsline/OpenChatCut
Submits AI video generation jobs to Fal.ai, Seedance, Kling, MiniMax Hailuo, xAI Grok Imagine or OFox for text-to-video, image-to-video, transitions and clip extension.
Categories
Authors or patches Motion Graphic assets as inline JSX inside an OpenChatCut project, then places them on the timeline and checks the rendered frame. This is the direct-authoring route for Motion Graphics in OpenChatCut. The agent writes inline JSX itself, using create_motion_graphic_from_code for new assets and edit_asset for existing ones, instead of turning the request into a generation brief or calling submit_motion_graphic.
OpenChatCut Motion Graphic Author fits situations like: hand-writing a new Motion Graphic asset as inline JSX for an OpenChatCut project; patching an existing Motion Graphic's text, colors or timing; placing or moving a Motion Graphic on the timeline at a given start time; verifying that a graphic composes correctly with the target video frame.
Run `npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a claude-code`. Or copy the skill folder (src/agent/skills/create-motion-graphics in 0xsline/OpenChatCut) into .claude/skills/create-motion-graphics in your project. Claude Code loads it when a task matches its description.
Run `npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a codex`. Or copy the skill folder (src/agent/skills/create-motion-graphics in 0xsline/OpenChatCut) into .agents/skills/create-motion-graphics in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 0xsline/OpenChatCut --skill create-motion-graphics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-motion-graphics, .gemini/skills/create-motion-graphics, .github/skills/create-motion-graphics and .opencode/skills/create-motion-graphics in your project.
SKILL.md names no scripts, command-line tools or credentials: OpenChatCut Motion Graphic Author is instructions for the agent only. Our summary lists: An OpenChatCut project with its direct-authoring asset tools available.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
OpenChatCut Motion Graphic Author is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.3k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with OpenChatCut Motion Graphic Author: HyperFrames Animation (heygen-com/hyperframes, 59k stars), Stitch to Remotion Walkthrough Videos (google-labs-code/stitch-skills, 8.4k stars), Faceless Explainer Video (heygen-com/hyperframes, 59k stars) and Video Shotcraft (Vincentwei1021/video-shotcraft, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
0xsline (a GitHub user) maintains it in 0xsline/OpenChatCut, which has 2,178 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 7, 2026.
Source: 0xsline/OpenChatCut on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.