/youtube-short-maker
Make YouTube Shorts that hold attention with Pexo — vertical 9:16, fast-paced, hook in the first 3 seconds. Describe your topic and Pexo writes the script, generates the shots, picks the models, and assembles a finished Short with music and captions. Use for YouTube Shorts:
$ npx -y skills add pexoai/pexo-skills --skill youtube-short-maker --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/youtube-short-maker
Context preview
The summary Claude sees to decide when to auto-load this skill.
Make YouTube Shorts that hold attention with Pexo — vertical 9:16, fast-paced, hook in the first 3 seconds. Describe your topic and Pexo writes the script, generates the shots, picks the models, and assembles a finished Short with music and captions. Use for YouTube Shorts:
SKILL.md
youtube-short-maker.SKILL.mdname: youtube-short-maker
description: >
Make YouTube Shorts that hold attention with Pexo — vertical 9:16, fast-paced, hook in the first
3 seconds. Describe your topic and Pexo writes the script, generates the shots, picks the models,
and assembles a finished Short with music and captions. Use for YouTube Shorts: "youtube short",
"make a youtube short", "shorts video", "short-form video". NOT for long-form or landscape
video.
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
YouTube Short Maker — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished YouTube Short built to retain — vertical and hook-first. You pass the user's topic to the hosted Pexo agent and deliver the result; Pexo scripts it, generates the shots, and assembles the Short with music 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: "Make a YouTube Short on 3 quick tips for better sleep."
pid=$(pexo-project-create.sh "better sleep tips short")
pexo-chat.sh "$pid" "Make a YouTube Short on 3 quick tips for better sleep."
# 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
name: youtube-short-maker description: > Make YouTube Shorts that hold attention with Pexo — vertical 9:16, fast-paced, hook in the first 3 seconds. Describe your topic and Pexo writes the script, generates the shots, picks the models, and assembles a finished Short with music and captions. Use for YouTube Shorts: "youtube short", "make a youtube short", "shorts video", "short-form video". NOT for long-form or landscape video. 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
YouTube Short Maker — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished YouTube Short built to retain — vertical and hook-first. You pass the user's topic to the hosted Pexo agent and deliver the result; Pexo scripts it, generates the shots, and assembles the Short with music 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: "Make a YouTube Short on 3 quick tips for better sleep."
pid=$(pexo-project-create.sh "better sleep tips short") pexo-chat.sh "$pid" "Make a YouTube Short on 3 quick tips for better sleep." # 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`.
A collection of open-source Agent Skills for content creation — images, audio, and video.
Other skills on pexo-skills.
- /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, Kling, Veo, Sora, and more), writes the prompts, generates every shot, and returns a finished video with music and subtitles. Use for any AI video
Open 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
Open skill - /founder-video
Make a founder video with Pexo — built for solo founders and small teams. Describe your story, product, or pitch (or paste your site) and Pexo writes the script, generates the shots, picks the models, and returns a finished, publish-ready founder video with music — for
Open skill - /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 transitions, auto-picks the best image-to-video model (Seedance, Kling, Wan, and more), and returns a publish-ready clip with music. Use when the user
Open skill - /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) and Pexo writes the script, generates every shot, picks the models, and returns a finished, publish-ready launch video with music — built for Product
Open skill - /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, shots, model selection, music, subtitles, and final editing — and returns a publish-ready video. Use when the user just wants to make a video: "make a
Open skill

