How to add a color panel wipe with Claude

Yellow, red, pink and orange bars shoot in from the left one after another until they stack over the whole frame, then race off to the right and leave clip B behind them.

Get this effect

  1. Switch to Code in your Claude Desktop App

  2. Install the skill (once)

    Show the prompt
    Install the Recharm video effects skill: download https://recharm-growth-staging.s3.us-east-2.amazonaws.com/website/downloads/recharm-video-effects.zip and unzip it into ~/.claude/skills
  3. Ask for the effect

    Join clipA.mp4 and clipB.mp4 with a color panel wipe
    Colors: 0xFFC83C 0xF03C3C 0xFF46A0 0xFF8C1E

Several videos, several effects, one ask

Put your clips in the folder, mention them with @, and ask for everything at once. Claude runs one tested script after another on each clip, then joins them.

Put a sale badge on @clip1.mp4, give @clip2.mp4 a VHS look, then join them with a color panel wipe.

Settings you can change

Ask Claude to change any of these, or edit them at the top of the command.

SettingDefaultWhat it does
COLORS0xFFC83C 0xF03C3C 0xFF46A0 0xFF8C1EBar colors from top to bottom; one bar per color.
IN0.35Seconds each bar takes to slide in, and again to slide out.
STAGGER0.07Delay in seconds between one bar and the next.
HOLD0.08Seconds the frame stays fully covered; the cut to clip B happens halfway through.

Without the skill

Don’t want to install the skill? Paste this prompt into Claude Code and Claude writes the command itself.

Show the prompt
Join clipA.mp4 and clipB.mp4 with a 1.2 second color panel wipe that starts 1.2 seconds before the end of clipA.mp4. Split the frame into 4 horizontal bars of equal height (240 pixels each on a 540x960 frame), colored from top to bottom #FFC83C (yellow), #F03C3C (red), #FF46A0 (pink) and #FF8C1E (orange). Each bar slides in from off the left edge until it covers its full row, taking 0.35 seconds with smoothstep easing (ease in and out), and each bar starts 0.07 seconds after the one above it, so the frame is fully covered 0.56 seconds into the transition. Hold the full cover for 0.08 seconds and cut from clip A to clip B halfway through the hold (0.6 seconds into the transition; B picks up 0.6 seconds into its own clip). Then each bar slides off to the right edge in 0.35 seconds with the same easing and the same 0.07 second stagger, top bar first, revealing clip B. Crossfade the audio over the whole 1.2 seconds. Match B's size and frame rate to A. Use ffmpeg (color sources overlaid with time expressions), keep the audio and save it as output.mp4.

Run it without Claude

This is the exact command we tested. Save it as color-panel-wipe.sh and run:

sh color-panel-wipe.sh clipA.mp4 clipB.mp4 output.mp4
Show the command
#!/bin/sh
# Color panel wipe: four solid color bars slide in from the left one after another to cover clip A, then slide off to the right to reveal clip B, over 1.2s. The sound crossfades underneath.
# Usage: sh color-panel-wipe.sh clipA.mp4 clipB.mp4 output.mp4  (both clips need an audio track)
set -e
A="$1"; B="$2"; OUT="$3"
COLORS="0xFFC83C 0xF03C3C 0xFF46A0 0xFF8C1E"   # bar colors, top to bottom (yellow, red, pink, orange)
IN=0.35     # seconds each bar takes to slide in (and out)
STAGGER=0.07  # delay between one bar and the next
HOLD=0.08   # seconds the frame stays fully covered; the cut to B happens halfway through

calc() { awk "BEGIN { print $1 }"; }
N=$(echo $COLORS | wc -w | tr -d ' ')
D=$(calc "2 * ($IN + ($N - 1) * $STAGGER) + $HOLD")
LEN=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$A")
OFFSET=$(calc "$LEN - $D")
CUT=$(calc "$IN + ($N - 1) * $STAGGER + $HOLD / 2")
SIZE=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$A")
FPS=$(ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 "$A")
W=${SIZE%x*}; H=${SIZE#*x}; BAR_H=$(( (H + N - 1) / N ))

# A up to the cut, then B from the same point in the transition, fitted to A's size
GRAPH="[0:v]trim=end=$(calc "$OFFSET + $CUT"),fps=$FPS,format=yuv420p,setsar=1,setpts=PTS-STARTPTS[a];\
[1:v]scale=$W:$H:force_original_aspect_ratio=increase,crop=$W:$H,fps=$FPS,format=yuv420p,setsar=1,trim=start=$CUT,setpts=PTS-STARTPTS[b];\
[a][b]concat=n=2:v=1:a=0[v0]"
# each bar's left edge: slides from -W to 0 (eased in and out), waits, then slides from 0 to W
ease() { echo "st(0,clip((t-$1)/$IN,0,1));ld(0)*ld(0)*(3-2*ld(0))"; }
i=0
for C in $COLORS; do
  T_IN=$(calc "$OFFSET + $i * $STAGGER")
  T_OUT=$(calc "$OFFSET + $CUT + $HOLD / 2 + $i * $STAGGER")
  GRAPH="$GRAPH;color=c=$C:s=${W}x$BAR_H:r=$FPS[c$i];\
[v$i][c$i]overlay=x='if(lt(t,$T_OUT),-$W*(1-($(ease $T_IN))),$W*($(ease $T_OUT)))':y=$((i * BAR_H)):shortest=1:enable='between(t,$T_IN,$T_OUT+$IN)'[v$((i + 1))]"
  i=$((i + 1))
done

ffmpeg -y -i "$A" -i "$B" -filter_complex "$GRAPH;[0:a][1:a]acrossfade=d=$D[au]" \
  -map "[v$N]" -map "[au]" -r "$FPS" -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac "$OUT"

Find 3x winning ads

Recharm cuts your ad footage into tagged, searchable clips: hooks, testimonials, product shots. Find the shots that win, add the effect with Claude, and ship 3x more ad edits.

Start 14-day free trial