From sundial-org-awesome-openclaw-skills-4
Creates animated WhatsApp-style chat videos using Remotion with realistic iPhone frame, dark mode UI, typing indicators, link previews, and spring animations for X, TikTok, Instagram Reels.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4This skill uses the workspace's default tool permissions.
Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.
code formatting supportThis skill requires the Remotion Best Practices skill:
npx skills add remotion-dev/skills -a claude-code -y -g
cd ~/Projects/remotion-test
Edit the conversation in src/WhatsAppVideo.tsx, then render:
npx remotion render WhatsAppDemo out/my-video.mp4 --concurrency=4
Edit the ChatMessages component in src/WhatsAppVideo.tsx:
// Incoming message (from assistant)
<Message
text="Your message text here"
isOutgoing={false}
time="8:40 AM"
delay={125} // Frame when message appears (30fps)
/>
// Outgoing message (from user)
<Message
text="Your outgoing message"
isOutgoing={true}
time="8:41 AM"
delay={200}
showCheck={true}
/>
// Typing indicator (shows "..." bubbles)
<TypingIndicator delay={80} duration={45} />
delay={30} = appears at 1 seconddelay={60} = appears at 2 secondsduration={45} = lasts 1.5 secondsTypical flow:
delay={20} (~0.7s)delay={80}, duration={45}delay={125} (after typing ends)delay={175}, duration={45}delay={220}In ChatMessages, update the scroll interpolation based on your message count:
const scrollAmount = interpolate(
frame,
[scrollStart, scrollStart + 60, messageFrame, lastFrame],
[0, firstScroll, firstScroll, finalScroll],
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);
Increase scroll values if messages overflow.
Messages support:
**bold text**Code: backticks around text\n in the stringIn ChatHeader component, change:
Pokey ๐ก โ your assistant nameonlineIn Root.tsx, set durationInFrames to match your video length:
# Standard render
npx remotion render WhatsAppDemo out/video.mp4 --concurrency=4
# Higher quality
npx remotion render WhatsAppDemo out/video.mp4 --codec h264 --crf 18
# Preview in browser
npm run dev
Edit Root.tsx to change dimensions:
| Platform | Dimensions | Aspect Ratio | Use Case |
|---|---|---|---|
| X/Instagram feed | 1080ร1350 | 4:5 | Default, most visible |
| X/TikTok/Reels | 1080ร1920 | 9:16 | Full vertical |
| X square | 1080ร1080 | 1:1 | Universal |
| YouTube/X landscape | 1920ร1080 | 16:9 | Horizontal |
~/Projects/remotion-test/
โโโ src/
โ โโโ WhatsAppVideo.tsx # Main video component
โ โโโ Root.tsx # Composition config
โโโ public/
โ โโโ sounds/
โ โโโ pop.mp3 # Message received
โ โโโ send.mp3 # Message sent
โโโ out/ # Rendered videos
Sounds are triggered with Sequence:
<Sequence from={125}>
<Audio src={staticFile("sounds/pop.mp3")} volume={0.5} />
</Sequence>
npm run dev to see changes liveJust describe the conversation:
Pokey will write the messages, set timing, render, and send the MP4.