WhatsApp Video Skill

Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.

7 stars

Best use case

WhatsApp Video Skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.

Teams using WhatsApp Video Skill should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/whatsapp-video-mockup/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/danpeg/whatsapp-video-mockup/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/whatsapp-video-mockup/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How WhatsApp Video Skill Compares

Feature / AgentWhatsApp Video SkillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# WhatsApp Video Skill

Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.

## Features

- 📱 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

## Default Settings

- **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

## Prerequisites

This skill requires the **Remotion Best Practices** skill:

```bash
npx skills add remotion-dev/skills -a claude-code -y -g
```

## Quick Start

```bash
cd ~/Projects/remotion-test
```

Edit the conversation in `src/WhatsAppVideo.tsx`, then render:

```bash
npx remotion render WhatsAppDemo out/my-video.mp4 --concurrency=4
```

## How to Create a New Video

### 1. Define Your Messages

Edit the `ChatMessages` component in `src/WhatsAppVideo.tsx`:

```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} />
```

### 2. Timing Guide

- **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:**
1. First message: `delay={20}` (~0.7s)
2. Typing indicator: `delay={80}`, `duration={45}`
3. Response: `delay={125}` (after typing ends)
4. Next typing: `delay={175}`, `duration={45}`
5. Next response: `delay={220}`

### 3. Adjust Scrolling

In `ChatMessages`, update the scroll interpolation based on your message count:

```tsx
const scrollAmount = interpolate(
  frame,
  [scrollStart, scrollStart + 60, messageFrame, lastFrame],
  [0, firstScroll, firstScroll, finalScroll],
  { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);
```

Increase scroll values if messages overflow.

### 4. Text Formatting

Messages support:
- **Bold**: `**bold text**`
- `Code`: backticks around text
- Line breaks: `\n` in the string
- Emojis: just use them directly 🎬

### 5. Customizing the Header

In `ChatHeader` component, change:
- Name: `Pokey 🐡` → your assistant name
- Status: `online`
- Avatar emoji

### 6. Update Duration

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

### 7. Render

```bash
# 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
```

## Platform Dimensions

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 |

## Project Structure

```
~/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
```

## Sound Effects

Sounds are triggered with Sequence:
```tsx
<Sequence from={125}>
  <Audio src={staticFile("sounds/pop.mp3")} volume={0.5} />
</Sequence>
```

## Tips

1. **Preview while editing**: Run `npm run dev` to see changes live
2. **Frame-by-frame**: Use timeline scrubber to check timing
3. **Keep messages concise**: Long messages may need scroll adjustment
4. **Test on mobile**: Check readability at actual size

## Asking Pokey to Generate

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.

Related Skills

video-watcher

7
from Demerzels-lab/elsamultiskillagent

Analyze video content by extracting frames at regular intervals.

youtube-video-downloader

7
from Demerzels-lab/elsamultiskillagent

Download YouTube videos in various formats and qualities. Use when you need to save videos for offline viewing, extract audio, download playlists, or get specific video formats.

ai-notes-video

7
from Demerzels-lab/elsamultiskillagent

The video AI notes tool is provided by Baidu.

ai-notes-of-video

7
from Demerzels-lab/elsamultiskillagent

The video AI notes tool is provided by Baidu.

fliz-ai-video-generator

7
from Demerzels-lab/elsamultiskillagent

Complete integration guide for the Fliz REST API - an AI-powered video generation platform that transforms text content into professional videos with voiceovers, AI-generated images, and subtitles. Use this skill when: - Creating integrations with Fliz API (WordPress, Zapier, Make, n8n, custom apps) - Building video generation workflows via API - Implementing webhook handlers for video completion notifications - Developing automation tools that create, manage, or translate videos - Troubleshooting Fliz API errors or authentication issues - Understanding video processing steps and status polling Key capabilities: video creation from text/Brief, video status monitoring, translation, duplication, voice/music listing, webhook notifications.

seedance-video-generation

7
from Demerzels-lab/elsamultiskillagent

Generate AI videos using ByteDance Seedance.

seedance-video-generation-byteplus

7
from Demerzels-lab/elsamultiskillagent

Generate AI videos using BytePlus Seedance API (International)

terrain-route-video

7
from Demerzels-lab/elsamultiskillagent

Generate a minimalist terrain-style animated driving route video (MP4) from a list of stops (cities/POIs)

worthclip-youtube-video-scorer

7
from Demerzels-lab/elsamultiskillagent

AI-powered YouTube video scoring.

videogames

7
from Demerzels-lab/elsamultiskillagent

A skill to lookup video game information, prices, compatibility, and duration.

universal-video-downloader

7
from Demerzels-lab/elsamultiskillagent

Download videos from YouTube, Instagram, TikTok, Twitter/X, and 1000+ other sites using yt-dlp.

ai-notes-ofvideo

7
from Demerzels-lab/elsamultiskillagent

Generate AI-powered notes from videos (document, outline, or graphic-text formats)