Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Create animated WhatsApp chat videos with realistic iPhone, dark mode UI, typing indicators, read receipts, and auto-scrolling for social media formats.
Create animated WhatsApp chat videos with realistic iPhone, dark mode UI, typing indicators, read receipts, and auto-scrolling for social media formats.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.
๐ฑ Realistic iPhone frame with Dynamic Island ๐ฌ WhatsApp dark mode UI (accurate colors, bubbles, timestamps) ๐ Auto-scrolling as messages extend ๐ค Large, readable fonts (optimized for mobile viewing) ๐ต Message notification sounds โจ Spring animations on message appearance โจ๏ธ Typing indicator ("..." bubbles) ๐ Link preview cards โ Read receipts (blue checkmarks) Bold and code formatting support
Aspect ratio: 4:5 (1080ร1350) - optimal for X/Instagram feed No intro/outro - starts and ends with the chat 2x fonts - readable on mobile devices Auto-scroll - keeps all messages visible
This 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} />
30 fps = 30 frames per second delay={30} = appears at 1 second delay={60} = appears at 2 seconds duration={45} = lasts 1.5 seconds Typical flow: First message: delay={20} (~0.7s) Typing indicator: delay={80}, duration={45} Response: delay={125} (after typing ends) Next typing: delay={175}, duration={45} Next response: 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: **bold text** Code: backticks around text Line breaks: \n in the string Emojis: just use them directly ๐ฌ
In ChatHeader component, change: Name: Pokey ๐ก โ your assistant name Status: online Avatar emoji
In Root.tsx, set durationInFrames to match your video length: Count frames until last message appears + ~100 frames buffer At 30fps: 450 frames = 15 seconds
# 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: PlatformDimensionsAspect RatioUse CaseX/Instagram feed1080ร13504:5Default, most visibleX/TikTok/Reels1080ร19209:16Full verticalX square1080ร10801:1UniversalYouTube/X landscape1920ร108016:9Horizontal
~/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>
Preview while editing: Run npm run dev to see changes live Frame-by-frame: Use timeline scrubber to check timing Keep messages concise: Long messages may need scroll adjustment Test on mobile: Check readability at actual size
Just describe the conversation: "WhatsApp video: me asking you to [X]" "Make a chat video showing [conversation]" Pokey will write the messages, set timing, render, and send the MP4.
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.