Skip to content
Content
Skill

/explainer-video

Create an explainer video with narration using Pexo. Describe your product, concept, or process and Pexo writes the script, generates visuals shot by shot, adds TTS voiceover and captions, and assembles a clear, finished explainer. Use for explainer/tutorial content: "explainer

From plugin
pexo-skills
82320 skills

Claude Code

$ npx -y skills add pexoai/pexo-skills --skill explainer-video --agent claude-code

SKILL.md

explainer-video.SKILL.md
name: explainer-video
description: >
  Create an explainer video with narration using Pexo. Describe your product, concept, or process
  and Pexo writes the script, generates visuals shot by shot, adds TTS voiceover and captions, and
  assembles a clear, finished explainer. Use for explainer/tutorial content: "explainer video",
  "explain this as a video", "tutorial video", "how it works video". NOT for ads or promos (use
  the video-ad skill).
homepage: https://pexo.ai
repository: https://github.com/pexoai/pexo-skills
version: "0.1.0"
requires:
  env: [PEXO_API_KEY, PEXO_BASE_URL]
  runtime: [curl, jq, file]
metadata:
  author: pexoai

Explainer Video — Pexo

**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.

Produce a clear, narrated explainer video. You relay the user's topic to the hosted Pexo agent and deliver the result; Pexo writes the script, generates the visuals shot by shot, and adds voiceover and captions.

Your role: relay, don't create

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.

Config

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

Workflow

Scripts live in this skill's `scripts/`. Reply to the user in their language.

1. **Create a project:** `pexo-project-create.sh "<short brief>"` → save the `project_id`. 2. **Upload any files** the user gave: `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. 3. **Send the request:** `pexo-chat.sh <project_id> "<user's exact words> <asset tags>"`. Copy the user's words exactly; only add asset tags. 4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. 5. **Poll:** every ≥60s run `pexo-project-get.sh <project_id>` and act on `nextAction`:

  • **WAIT** → keep polling; every ~5 polls send a one-line update with the project link.
  • **RESPOND** → handle each event in `recentMessages`: relay Pexo's text (wait for the

user'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.

  • **DELIVER** → `pexo-asset-get.sh <project_id> <final assetId>`, then send the user the

**full** asset URL as plain text — all `?…` query params, never truncated or wrapped in markdown — plus the project link.

  • **FAILED** → explain `nextActionHint` in plain terms and offer to retry.
  • **RECONNECT** → `pexo-chat.sh <project_id> "continue"`, tell the user the connection

dropped and you're resuming, then keep polling.

  • Never call `pexo-chat.sh` during WAIT — it triggers duplicate production.
  • **Taking too long** → if it's been >30 min and still WAIT, tell the user (with the project

link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or stop. Don't poll forever.

Revisions

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.

Credits

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.

Example

User: "Explain how our budgeting app works in a 60-second video."

pid=$(pexo-project-create.sh "budgeting app explainer")
pexo-chat.sh "$pid" "Explain how our budgeting app works in a 60-second video."
# 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.

Scripts

| 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`.

Read more
@pexoai
Ships withpexo-skills

A collection of open-source Agent Skills for content creation — images, audio, and video.

Stars on GitHub

Momentum

stars in total
823
Star history of pexoai/pexo-skills on GitHub, a chart by star-history.com

Other skills on pexo-skills.

ai-video-generation

ai-video-generation

Generate AI video from any input — text, image, or script — with Pexo. Auto-routes each shot to the best of 10+ models (Seedance,…

@pexoai@pexoaiInstall Skill
founder-video

founder-video

Make a founder video with Pexo — built for solo founders and small teams. Describe your story, product, or pitch (or paste your…

@pexoai@pexoaiInstall Skill
image-to-video

image-to-video

Animate a still image into a finished, moving video with Pexo. Upload a photo and Pexo adds natural motion, camera moves, and…

@pexoai@pexoaiInstall Skill
launch-video

launch-video

Make a launch video for your startup or product with Pexo. Describe your product (or paste your landing-page URL or a screenshot)…

@pexoai@pexoaiInstall Skill
make-a-video

make-a-video

Make a complete video from a simple idea with Pexo. Describe what you want in plain words and Pexo handles everything — script,…

@pexoai@pexoaiInstall Skill
pexo-agent

pexo-agent

AI video generation skill with auto model selection across Seedance 2, Kling 3.0, HappyHorse, and 10+ models. Produces finished…

@pexoai@pexoaiInstall Skill

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about explainer-video.

Which coding agents can use explainer-video?
explainer-video installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.