Skip to main content
skill CX Codex

record-promo — Claude Code skill: record game promo video

Records an autonomous 50 FPS gameplay clip for TikTok, Reels and X. Useful when the game plays fine but you have nothing to show.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add PlayableIntelligence/game-creator --skill record-promo -a claude-code
Open on GitHub

What record-promo does

The skill opens your game on a local dev server, drives it through Playwright and captures footage with nobody at the keyboard. Death and failure paths are patched out for the recording, so a take will not cut off halfway. Defaults are a 1080 × 1920 portrait frame and 13 seconds of game time, which fits mobile feeds.

Before it starts, three things get checked: whether a dev server is up (if not, it runs npm run dev in the background), whether Playwright is installed, and whether FFmpeg exists. No FFmpeg means it stops and asks you to install it — brew install ffmpeg on macOS. Then it reads the game sources to learn the controls and scene dimensions and writes scripts/capture-promo.mjs for that specific project. The result lands in output/promo.mp4, with a thumbnail pulled from the 5-second mark next to it.

This is not a test run. Gameplay testing belongs to the separate qa-game skill, and mixing them up costs you: here the goal is footage that looks good, not a game that passes checks.

What it helps with

  • record a portrait gameplay clip without playing by hand
  • turn raw webm into a 50 FPS MP4
  • disable death and failure paths during capture
  • match input sequences to a specific game's controls
  • grab a thumbnail frame for the post cover

Example prompts for the agent

  • /record-promo examples/flappy-bird
  • record a promo video for my game
  • capture gameplay footage and make a trailer

How to install record-promo

1Skills CLI (Vercel)

npx skills add PlayableIntelligence/game-creator --skill record-promo -a claude-code

2Manually: put the files in place

~/.claude/skills/record-promo/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/record-promo/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about record-promo

How do I install record-promo in Claude?

Run npx skills add PlayableIntelligence/game-creator --skill record-promo -a claude-code. The skill file then sits at ~/.claude/skills/record-promo/SKILL.md.

What does record-promo do?

It records an autonomous 50 FPS gameplay clip of a Phaser game and converts it to MP4 for social media. Death and failure paths are switched off while recording.

What has to be installed first?

Playwright and FFmpeg. If FFmpeg is missing, the skill stops and tells you to install it — brew install ffmpeg on macOS.

Source text

SKILL.md · MIT
---
name: record-promo
description: Record an autonomous 50 FPS promo video of your game for social media. Use when the user says "record a video", "make a promo", "capture gameplay", "record gameplay footage", or "make a trailer for my game". Do NOT use for gameplay testing (use qa-game).
argument-hint: "[path-to-game]"
license: MIT
metadata:
  author: OpusGameLabs
  version: 1.3.0
  tags: [game, video, promo, recording, playwright, ffmpeg]
---

# Record Promo Video

Autonomously capture smooth, high-FPS gameplay footage of your Phaser game — ready for TikTok, Reels, Moltbook, or X. No human input needed during recording.

## Instructions

Record a promo video of the game at `$ARGUMENTS` (or the current directory if no path given).

### 1. Pre-checks

Verify these are available:
- **Dev server**: Check if one is already running (`curl -s http://localhost:3000/`). If not, start one with `npm run dev` in the background. Note the port.
- **Playwright**: `npx playwright --version`. If not installed: `npm install -D @playwright/test && npx playwright install chromium`
- **FFmpeg**: `ffmpeg -version | head -1`. If not found, tell the user to install it (`brew install ffmpeg` on macOS) and stop.

### 2. Generate the capture script

Load the `promo-video` skill for the full technique reference.

Read the game's source files to understand:
- `src/scenes/GameScene.js` — find death/failure methods to patch out
- `src/core/EventBus.js` — event flow
- `src/core/Constants.js` — input keys, game dimensions
- `src/main.js` — verify `__GAME__` and `__GAME_STATE__` globals are exposed

Create `scripts/capture-promo.mjs` adapted for this specific game:
- Patch out ALL death/failure code paths
- Generate input sequences matching the game's actual controls
- Include entrance animation pause (1-2s)
- Default viewport: `1080 × 1920` (9:16 mobile portrait)
- Default duration: 13s game-time

### 3. Copy the conversion script

```bash
cp <plugin-root>/skills/promo-video/scripts/convert-highfps.sh <project-dir>/scripts/
chmod +x <project-dir>/scripts/convert-highfps.sh
```

### 4. Run the capture

```bash
mkdir -p output
node scripts/capture-promo.mjs --port <port>
bash scripts/convert-highfps.sh output/promo-raw.webm output/promo.mp4 0.5
```

### 5. Verify and preview

Extract a thumbnail at the 5-second mark and show it to the user:
```bash
ffmpeg -y -ss 5 -i output/promo.mp4 -frames:v 1 -update 1 output/promo-thumbnail.jpg
```

Read the thumbnail image and display it. Report duration, frame rate, and file size.

## Example Usage

```
/record-promo examples/flappy-bird
```
Result: Patches out death → generates input sequence for the game's controls → captures 13s of autonomous gameplay at 1080x1920 (9:16) → converts to 50 FPS MP4 → `output/promo.mp4` ready for TikTok/Reels.

Tell the user:
> Promo video recorded! 50 FPS, mobile portrait (1080×1920).
>
> **File**: `output/promo.mp4`
>
> Post it to TikTok, Reels, or X to drive traffic to your game.

© OpusGameLabs · MIT · PlayableIntelligence/game-creator

Similar skills

Everything for Game dev and 3D: Unity, Unreal, Godot, Blender →

From the same set30

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor