chat-motion-overlay
Lets your agent generate short video clips of conversations, like for social media. It can include speech bubbles, avatars, and even phone frames.
What it does
Turns text conversations or screenshots into animated chat bubble videos. You can choose the style, add phone frames, and use custom avatars.
When to use it
- ✓Creating short clips for social media (like Douyin).
- ✓Simulating conversations for demo videos.
- ✓Reenacting stories or testimonials in chat format.
Example of what to ask your AI
“Create an animated video of a WhatsApp conversation, with custom avatars and a transparent background, for use on TikTok.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The AI first organizes the chat text. Then, it uses your choices for style, avatars, and frames to assemble a video that can be used in other editing software.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add nexu-io/open-design --skill chat-motion-overlayOr download just the file:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/skills/chat-motion-overlay/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Chat Motion Overlay
Turn chat content into a configurable motion overlay clip instead of a single hard-coded WeChat mock.
Workflow
Normalize the chat input.
- If the user gives a screenshot, extract the visible messages into the transcript format in
references/input-format.md. - If the user gives plain text, keep one message per beat and preserve exact wording when authenticity matters.
- For screenshots, use visible avatars as clues for participant count and message grouping, but do not crop or recreate avatar images by default. Infer participants and sides, then render with preset avatars unless the user provides avatar files or explicitly requests screenshot-derived avatars.
- If the user gives a screenshot, extract the visible messages into the transcript format in
Choose a scene config.
- Read
references/config-schema.md. - Decide container style, avatar mode, device frame, nickname mode, and delivery format before generating the bundle.
- When the user has not provided enough information, follow the question policy in
references/question-strategy.md.
- Read
Build the scene spec.
- Run
scripts/build_chat_overlay_spec.pywith a transcript and optional config JSON. - The script outputs a single JSON spec that Remotion can render directly.
- Run
Prepare a renderable bundle.
- Run
scripts/prepare_chat_overlay_bundle.py. - It copies the Remotion template, injects
src/chatSpec.ts, and copies any uploaded avatar files intopublic/.
- Run
Render the target output.
- Use the exact export commands in
references/output-modes.md. - Prefer
MOV(透明背景,可直接导入剪映 / PR / FCP 叠加)for editing,WebM(透明背景,适合网页 / 浏览器播放)for browsers, and editable engineering outputs when the user wants to keep composing downstream.
- Use the exact export commands in
Supported Dimensions
container:none,wechat,telegram,messengeravatarMode:preset,upload,mixeddeviceFrame:none,iphone-dynamic-islandnicknameMode:hidden,first-message-only,alwaysdeliveryFormat:mov:MOV(透明背景,可直接导入剪映 / PR / FCP 叠加)webm:WebM(透明背景,适合网页 / 浏览器播放)remotion:Remotion 工程(适合继续编辑和拼装)hyperframe:Hyperframe 工程(适合作为模块继续复用)json:JSON 数据(适合程序处理 / 自定义渲染)preview:预览图 / 预览工程(适合先确认效果)
Output Rules
- Keep the composition root transparent for overlay outputs.
- Use
container: nonefor standalone bubble motion without an app shell. - Use
container: wechat|telegram|messengerwhen the platform chrome is part of the story. - Treat uploaded avatars as content assets and copy them into
public/for the render bundle. - Prefer preset avatars when the user does not specify avatar files. Screenshot avatars may help identify participants, but recommend user-provided avatar files before attempting to crop or recreate avatars from screenshots.
- Keep config-driven behavior explicit; do not silently switch style families.
Question Policy
- Prefer inference first, questions second.
- If the user gives enough information for a sensible default, continue and clearly state the assumptions.
- Ask only for missing high-impact choices.
- Keep the question set to 1-3 items.
- Prefer user-facing wording over technical wording.
- Ask about
deliveryFormatusing格式(场景描述)labels, not internal render terms. - If the user says they do not care, continue with defaults and note them in the result.
Resources
- Transcript format:
references/input-format.md - Config fields and examples:
references/config-schema.md - Question strategy:
references/question-strategy.md - Output commands and targets:
references/output-modes.md - Transcript/config to spec:
scripts/build_chat_overlay_spec.py - Remotion bundle preparation:
scripts/prepare_chat_overlay_bundle.py - Remotion render template:
assets/remotion-template/
FAQ
Can I use a screenshot as input?
Yes, the AI can extract messages from a screenshot to create the video.
How do avatars work?
You can use pre-set avatars, upload your own, or in some cases, the AI might try to use avatars from the screenshot (but uploading your own is recommended).
Does the final video have a transparent background?
Yes, you can choose a video format with a transparent background, perfect for overlaying on other content.
Details
Original description by the author
Generate configurable chat motion overlays from a transcript or screenshot, including plain bubble scenes, app-style chat containers, optional device frames, preset or uploaded avatars, nickname display rules, and transparent-video-ready Remotion bundles. Use when Codex needs to create reusable short-form chat clips for Douyin, demo videos, story reenactments, social-message proof scenes, or embed
repo: nexu-io/open-design
Popularity
- GitHub stars
- 101k
- Ranking position
- #672
- License
- Apache-2.0
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
sample-plugin
Makes your agent create a metadata file for tests. It helps ensure code works correctly in different situations.
nexu-io/open-design
aster-atelier
Helps your agent create an artistic website with a classic look. It uses elegant imagery, blue skies, and serif fonts for a cinematic feel.
nexu-io/open-design
audio-jingle
Makes your agent generate audio like jingles and sound effects. It can create music and voices, saving the result as an audio file.
nexu-io/open-design
blog-post
Helps your agent write long articles or blog posts. It includes space for images, quotes, and author information.
nexu-io/open-design
Similar skills
blender-motion-state-inspection
Allows inspection of details in 3D animations. It's useful for checking poses, movements, and character alignment in animations.
affaan-m/ECC
manim-video
Lets your agent create animated explainer videos. It uses Manim to generate clear graphs and diagrams for technical concepts.
affaan-m/ECC
remotion-video-creation
Guides your agent in creating videos using React with the Remotion library. It covers best practices for animations, audio, captions, and other visual elements.
affaan-m/ECC