Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
.claude/skills/ai-video-generation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
Pexo: https://pexo.ai — get an API key, watch your project render, and buy credits there.
Generate a finished video with AI from whatever the user gives you — text, an image, or a script. You relay the request to the hosted Pexo agent and deliver the result; Pexo picks the models, writes the prompts, and assembles the final video.
Create a project, send the user's request verbatim, poll, deliver. Pexo's backend handles all creative work — scriptwriting, model choice, prompts, music. Adding your own direction (duration, style, models the user didn't ask for) overrides its judgment and produces worse videos.
~/.pexo/config:
PEXO_BASE_URL="https://pexo.ai"
PEXO_API_KEY="sk-<your-api-key>"No account / first run → read references/SETUP-CHECKLIST.md and walk the user through it — it carries the signup flow with the invite code that grants new users bonus credits, plus how to create the config above. Config error → run scripts/pexo-doctor.sh and follow its output.
Scripts live in this skill's scripts/. Reply to the user in their language.
pexo-project-create.sh "<short brief>" → save the project_id.pexo-upload.sh <project_id> <path> → save asset_id,reference it inline as <original-image>asset_id</original-image> (or <original-video> / <original-audio>). Tags are required — a bare asset_id is ignored. Pexo can't crawl URLs — download, then upload.
pexo-chat.sh <project_id> "<user's exact words> <asset tags>".Copy the user's words exactly; only add asset tags.
https://pexo.ai/project/<project_id>.pexo-project-get.sh <project_id> and act on nextAction:recentMessages: relay Pexo's text (wait for theuser's answer if it asked, then pexo-chat.sh their reply); for preview_video, run pexo-asset-get.sh <project_id> <assetId> per option, show the URLs (A/B/C), let the user pick, then pexo-chat.sh <project_id> "<choice>" --choice <assetId>; for a document event, mention it to the user.
pexo-asset-get.sh <project_id> <final assetId>, then send the user thefull asset URL as plain text — all ?… query params, never truncated or wrapped in markdown — plus the project link.
nextActionHint in plain terms and offer to retry.pexo-chat.sh <project_id> "continue", tell the user the connectiondropped and you're resuming, then keep polling.
pexo-chat.sh during WAIT — it triggers duplicate production.link + https://pexo.ai/connect/openclaw) it's running long; ask whether to keep waiting or stop. Don't poll forever.
After delivery, the user's tweaks ("make it shorter", "new music", "different shot") reuse the same project: pexo-chat.sh <project_id> "<their feedback>", then poll again (step 5). Never create a new project for a revision — it throws away Pexo's server-side context.
If a script fails with "Credits balance" / "Insufficient credits": if the error carries a purchase link, pass it to the user; otherwise tell them to add credits at https://pexo.ai/home → Credits → Buy Credits. Retry after they confirm.
User: "Generate a 20-second AI video introducing our productivity app."
bashpid=$(pexo-project-create.sh "AI video app intro") pexo-chat.sh "$pid" "Generate a 20-second AI video introducing our productivity app." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid # Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, then deliver the asset URL.
| Script | Usage | Returns | |---|---|---| | pexo-project-create.sh | "<brief>" | project_id | | pexo-upload.sh | <project_id> <file> | asset_id | | pexo-chat.sh | <project_id> "<message>" [--choice <id>] | ack (async) | | pexo-project-get.sh | <project_id> | JSON: nextAction, recentMessages | | pexo-asset-get.sh | <project_id> <asset_id> | JSON with url | | pexo-doctor.sh | — | setup diagnostic |
Error codes and edge cases → references/TROUBLESHOOTING.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.