Install
openclaw skills install agent-mediaAI UGC video production from the terminal using the `agent-media` CLI.
openclaw skills install agent-medianpm release: https://www.npmjs.com/package/agent-media-cli agent-media cli github: https://github.com/gitroomhq/agent-media official website: https://agent-media.ai
Produce complete UGC videos and SaaS review videos from the terminal using the agent-media CLI.
You MUST follow ALL of these rules. Violating any rule produces a broken, unwatchable video.
--actorEvery UGC video MUST include --actor <slug>. Without an actor, there is no talking head and no lip sync — the video will just be a static image with voiceover. If the user hasn't specified an actor, ask them to pick one or default to a popular one like sofia or naomi. Run agent-media actor list to browse options.
Natural speech is 2.5 words/second. Scripts MUST match the target duration:
If the user provides a script that is too long, YOU MUST rewrite it to fit. A 73-word script crammed into 15 seconds will sound robotic and lose lip sync. NEVER submit a script that exceeds the word limit.
For any SaaS/product review video, you MUST provide 1-3 product screenshots via --broll --broll-images. Without screenshots, the video has no product context — viewers see only a talking head with no evidence of the product.
--broll-images accepts both HTTP/HTTPS URLs and local file paths (local files are auto-uploaded). Images are semantically matched to the most relevant broll scene based on filename — so use descriptive filenames! Examples:
--broll-images ./dashboard.png,./calendar-view.png (local files — descriptive names!)--broll-images https://example.com/pricing-page.png,https://example.com/editor.png (URLs)If the user provides a product URL but no screenshots, visit the site yourself and extract image URLs from the page.
Ask the user: "What SaaS product should I review?" Do NOT proceed without it. The product name must appear in the script so it shows up in subtitles.
--syncAlways append --sync to wait for the result and get the output URL.
Broll images are semantically matched to scenes by filename. Use descriptive names so the AI assigns the right image to the right scene:
dashboard.png, calendar-view.png, post-editor.pngscreenshot1.png, IMG_0042.png, image.pngWhen saving screenshots for --broll-images, rename them to describe what they show.
The agent-media CLI must be installed and authenticated:
npm install -g agent-media-cli
agent-media login
Verify with agent-media whoami. If not logged in, run agent-media login and follow the OTP flow.
The UGC pipeline turns a script into a complete video with AI talking heads, B-roll, voiceover, and animated subtitles — one command.
Script → Scene splitting → TTS voiceover → AI talking heads + B-roll → Crossfade assembly → Animated subtitles → Background music → End screen CTA
# ALWAYS include --actor for talking heads + lip sync
agent-media ugc "Ever wonder why some videos go viral? Here's the secret..." --actor sofia --sync
# From file
agent-media ugc ./script.txt --actor naomi --sync
# AI-generated script from a product description
agent-media ugc -g "A fitness tracker that monitors sleep quality" --actor marcus --sync
# With B-roll cutaway scenes mixed in
agent-media ugc "Your script here..." --actor marcus --broll --sync
# With product screenshots as B-roll (REQUIRED for SaaS reviews)
agent-media ugc "Your script here..." --actor sofia --broll --broll-images https://example.com/screenshot1.png,https://example.com/screenshot2.png --sync
| Flag | Description | Example |
|---|---|---|
--actor <slug> | Library actor for talking heads | --actor sofia |
--persona <slug> | Custom persona (cloned voice + face) | --persona brand-voice |
--face-url <url> | Direct face photo URL or local file | --face-url ./photo.png |
--voice <name> | TTS voice | --voice nova |
--tone <name> | Voice tone: energetic, calm, confident, dramatic | --tone energetic |
--style <name> | Subtitle style (default: hormozi) | --style bold |
-d, --duration <s> | Target duration: 5, 10, or 15 seconds | --duration 10 |
--aspect <ratio> | Aspect ratio: 9:16, 16:9, 1:1 | --aspect 16:9 |
--music <genre> | Background music: chill, energetic, corporate, dramatic, upbeat | --music chill |
--cta <text> | End screen call-to-action text | --cta "Follow for more" |
--broll | Enable B-roll cutaway scenes | --broll |
--broll-images <urls> | Comma-separated screenshot/image URLs for B-roll | --broll-images url1,url2 |
--template <slug> | Script template (see below) | --template saas-review |
-g, --generate-script <prompt> | AI-generate script from description | -g "yoga mat product" |
--product-url <url> | Product URL for script generation context | --product-url https://... |
-s, --sync | Wait for completion and print output URL | --sync |
| Template | Structure | Best For |
|---|---|---|
monologue | Hook → Body → CTA | Direct-to-camera talking |
testimonial | Problem → Solution → Result → CTA | Customer stories |
product-review | Intro → Experience → Verdict → CTA | Product reviews |
problem-solution | Hook → Pain → Solution → CTA | Before/after pain points |
saas-review | Hook → Walkthrough → Opinion → CTA | SaaS/app reviews |
before-after | Hook → Before → After → CTA | Transformations |
listicle | Hook → Tip 1 → Tip 2 → Tip 3 + CTA | Tips and lists |
product-demo | Intro → Demo → Recap → CTA | Product walkthroughs |
Available styles: hormozi (yellow karaoke highlight, default), minimal, bold (neon cyan), karaoke (green pop), clean (white on dark), tiktok, neon
Generate a complete SaaS review video. ALL FOUR are required — do NOT skip any:
--actor (for talking head + lip sync)--broll --broll-images with 1-3 product screenshot URLs<img> URLs showing the product dashboard/UI. STOP if no screenshots.naomi or sofia. Run agent-media actor list if they want to browse.# CORRECT — descriptive filenames so images match the right scenes
agent-media ugc "Postiz is the best social media tool I've used. Postiz schedules across twenty-five platforms with AI. Try Postiz today." \
--actor naomi --duration 10 --style hormozi --broll \
--broll-images ./postiz-dashboard.png,./postiz-calendar.png --sync
# CORRECT — URLs with descriptive paths work too
agent-media ugc "Postiz is the best social media tool I've used. Postiz schedules across twenty-five platforms with AI. Try Postiz today." \
--actor naomi --duration 10 --style hormozi --broll \
--broll-images "https://postiz.com/dashboard-screenshot.png,https://postiz.com/scheduling-view.png" --sync
# WRONG — no actor, no screenshots, script too long
agent-media ugc "Here's how to schedule a post in Postiz step by step..." --sync
| Flag | Description | Example |
|---|---|---|
--actor <slug> | AI actor (required) | --actor naomi |
--broll | Enable B-roll scenes (required for reviews) | --broll |
--broll-images <paths> | Screenshot URLs or local files (required, 1-3) | --broll-images ./img1.png,./img2.png |
--duration <s> | 5, 10, or 15 seconds | --duration 10 |
--style <name> | Subtitle style | --style hormozi |
--cta <text> | End screen text | --cta "Try it free" |
-s, --sync | Wait for result (always use) | --sync |
Save voice + face combos for consistent UGC across videos:
# Create a persona from voice sample + face photo
agent-media persona create --name "brand-voice" --voice ./sample.mp3 --face ./photo.png
# List personas
agent-media persona list
# Use in UGC
agent-media ugc "Your script..." --persona brand-voice --sync
# Delete
agent-media persona delete <persona-id>
agent-media subtitle <video-path-or-job-id> --style hormozi --sync
agent-media subtitle ./my-video.mp4 --style bold --sync
| Plan | Price | Monthly Credits | ~10s Videos |
|---|---|---|---|
| Creator | $39/mo | 2,500 | ~3 |
| Pro | $69/mo | 5,000 | ~6 |
| Pro Plus | $129/mo | 10,000 | ~12 |
~800 credits per 10s video. Pay-as-you-go credit packs also available. Run agent-media credits to check balance.
agent-media status <job-id> # Check job status
agent-media list # List recent jobs
agent-media download <job-id> # Download output media
agent-media cancel <job-id> # Cancel and refund credits
agent-media retry <job-id> # Retry a failed job
agent-media whoami # Current user info
agent-media credits # Credit balance
agent-media subscribe # Manage subscription
agent-media login / logout # Authentication
Before running ANY agent-media ugc command, verify:
--actor is included (no actor = no talking head = broken video)--sync is appended--broll --broll-images with 1-3 screenshot URLsagent-media credits)