/videoagent-video-studio
Generate short AI videos from text or images — text-to-video, image-to-video, and reference-based generation — with zero API key setup. Use when the user wants to create a video clip, animate an image, or generate video from a description.
$ npx -y skills add pexoai/pexo-skills --skill videoagent-video-studio --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
/videoagent-video-studio
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate short AI videos from text or images — text-to-video, image-to-video, and reference-based generation — with zero API key setup. Use when the user wants to create a video clip, animate an image, or generate video from a description.
SKILL.md
videoagent-video-studio.SKILL.mdname: videoagent-video-studio
version: 2.1.0
author: pexoai
emoji: "🎬"
tags:
- video
- video-generation
- text-to-video
- image-to-video
- veo
- grok
- kling
- seedance
- minimax
- hunyuan
- pixverse
description: >
Generate short AI videos from text or images — text-to-video, image-to-video, and reference-based generation — with zero API key setup. Use when the user wants to create a video clip, animate an image, or generate video from a description.
metadata:
openclaw:
emoji: "🎬"
install:
- id: node
kind: node
label: "No dependencies needed — all calls go through the hosted proxy"🎬 VideoAgent Video Studio
**Use when:** User asks to generate a video, create a video from text, animate an image, make a short clip, or produce AI video.
Generate short AI videos with 7 backends. This skill picks the right mode (text-to-video or image-to-video), enhances the prompt for best results, and returns the video URL.
---
Quick Reference
| User Intent | Mode | Typical Duration | |-------------|------|------------------| | "Make a video of..." (no image) | `text-to-video` | 4–10 s | | "Animate this image" / "Make this move" | `image-to-video` | 4–6 s | | "Turn this into a video with..." | `image-to-video` | 4–6 s | | Cinematic, story, ad | Prefer `text-to-video` with detailed prompt | 5–10 s |
Generation Modes
| Mode | Description | Models | |------|-------------|--------| | **text-to-video** | Text prompt only → video | minimax, kling, veo, hunyuan, grok, seedance | | **image-to-video** | Single image + prompt → animated clip | minimax, kling, veo, pixverse, grok, seedance | | **reference-based** | Reference images/video → consistent output | minimax, kling, veo, hunyuan, grok, seedance |
Models (use `--model <id>`)
| Model ID | T2V | I2V | Reference | Notes | |----------|-----|-----|-----------|-------| | `minimax` | ✅ | ✅ | ✅ | Subject reference image, character consistency | | `kling` | ✅ | ✅ | ✅ | Multi-element / character / keyframe (O3) | | `veo` | ✅ | ✅ | ✅ | Google Veo 3.1, multiple reference images | | `hunyuan` | ✅ | — | ✅ | Video-to-video style transfer | | `pixverse` | — | ✅ | — | Stylized image-to-video | | `grok` | ✅ | ✅ | ✅ | Video editing via reference video | | `seedance` | ✅ | ✅ | ✅ | Seedance 1.5 Pro, synchronized audio, 4–12 s |
Full model details and endpoint reference: [references/models.md](references/models.md).
---
How to Generate a Video
Step 1 — Choose mode and enhance the prompt
- **Text-to-video**: Expand with subject, action, camera movement, lighting, and style. Be specific about motion (e.g. "camera slowly zooms in", "character walks left to right").
- **Image-to-video**: Describe the motion to apply to the image (e.g. "gentle breeze in the hair", "camera pans across the scene"). See [references/prompt_guide.md](references/prompt_guide.md) for patterns.
Step 2 — Run the script
**Text-to-video:**
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "<enhanced prompt>" \
--duration <seconds> \
--aspect-ratio <ratio>**Image-to-video:**
node {baseDir}/tools/generate.js \
--mode image-to-video \
--prompt "<motion description>" \
--image-url "<public image URL>" \
--duration <seconds> \
--aspect-ratio <ratio>**Parameters:**
| Parameter | Default | Description | |-----------|---------|-------------| | `--mode` | `text-to-video` | `text-to-video` or `image-to-video` | | `--prompt` | *(required)* | Scene or motion description | | `--image-url` | — | Required for `image-to-video`; public image URL | | `--duration` | `5` | Length in seconds (typically 4–10) | | `--aspect-ratio` | `16:9` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4` | | `--model` | `auto` | Model ID (e.g. `kling`, `veo`, `grok`, `seedance`); `auto` = proxy picks |
**Other commands:**
| Command | Description | |---------|-------------| | `node tools/generate.js --list-models` | List available models from the proxy | | `node tools/generate.js --status --job-id <id>` | Check async job status |
Step 3 — Return the result
The script returns JSON:
{
"success": true,
"mode": "text-to-video",
"videoUrl": "https://...",
"duration": 5,
"aspectRatio": "16:9"
}Send `videoUrl` to the user.
---
Example Conversations
**User:** "Generate a short video of a cat walking in the rain, cinematic."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "A cat walking through rain, wet streets, neon reflections, cinematic lighting, slow motion, 4K" \
--duration 5 \
--aspect-ratio 16:9---
**User:** "Animate this photo" *(user uploads a landscape)*
node {baseDir}/tools/generate.js \
--mode image-to-video \
--prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \
--image-url "https://..." \
--duration 5 \
--aspect-ratio 16:9---
**User:** "Make a 10-second vertical video of a coffee pour, slow motion."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "Close-up of coffee pouring into a white cup, slow motion, steam rising, soft lighting, product shot" \
--duration 10 \
--aspect-ratio 9:16---
**User:** "Use Google Veo for a cinematic shot."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--model veo \
--prompt "A dragon flying through cloudy skies, cinematic lighting, 8s" \
--duration 8 \
--aspect-ratio 16:9---
**User:** "Animate this portrait."
node {baseDir}/tools/generate.js \
--mode image-to-video \
--model grok \
--prompt "Gentle smile, subtle head turn" \
--image-url "https://..." \
--duration 5---
Setup
**Zero API keys by default.** Requests go through a hosted proxy. Set these for a custom proxy or token:
| Variable | Required | Description | |----------|----------|-------------| | `VIDEO_STUDIO_PROXY_URL` | No | Proxy base URL | | `VI
Read more
name: videoagent-video-studio
version: 2.1.0
author: pexoai
emoji: "🎬"
tags:
- video
- video-generation
- text-to-video
- image-to-video
- veo
- grok
- kling
- seedance
- minimax
- hunyuan
- pixverse
description: >
Generate short AI videos from text or images — text-to-video, image-to-video, and reference-based generation — with zero API key setup. Use when the user wants to create a video clip, animate an image, or generate video from a description.
metadata:
openclaw:
emoji: "🎬"
install:
- id: node
kind: node
label: "No dependencies needed — all calls go through the hosted proxy"🎬 VideoAgent Video Studio
**Use when:** User asks to generate a video, create a video from text, animate an image, make a short clip, or produce AI video.
Generate short AI videos with 7 backends. This skill picks the right mode (text-to-video or image-to-video), enhances the prompt for best results, and returns the video URL.
---
Quick Reference
| User Intent | Mode | Typical Duration | |-------------|------|------------------| | "Make a video of..." (no image) | `text-to-video` | 4–10 s | | "Animate this image" / "Make this move" | `image-to-video` | 4–6 s | | "Turn this into a video with..." | `image-to-video` | 4–6 s | | Cinematic, story, ad | Prefer `text-to-video` with detailed prompt | 5–10 s |
Generation Modes
| Mode | Description | Models | |------|-------------|--------| | **text-to-video** | Text prompt only → video | minimax, kling, veo, hunyuan, grok, seedance | | **image-to-video** | Single image + prompt → animated clip | minimax, kling, veo, pixverse, grok, seedance | | **reference-based** | Reference images/video → consistent output | minimax, kling, veo, hunyuan, grok, seedance |
Models (use `--model <id>`)
| Model ID | T2V | I2V | Reference | Notes | |----------|-----|-----|-----------|-------| | `minimax` | ✅ | ✅ | ✅ | Subject reference image, character consistency | | `kling` | ✅ | ✅ | ✅ | Multi-element / character / keyframe (O3) | | `veo` | ✅ | ✅ | ✅ | Google Veo 3.1, multiple reference images | | `hunyuan` | ✅ | — | ✅ | Video-to-video style transfer | | `pixverse` | — | ✅ | — | Stylized image-to-video | | `grok` | ✅ | ✅ | ✅ | Video editing via reference video | | `seedance` | ✅ | ✅ | ✅ | Seedance 1.5 Pro, synchronized audio, 4–12 s |
Full model details and endpoint reference: [references/models.md](references/models.md).
---
How to Generate a Video
Step 1 — Choose mode and enhance the prompt
- **Text-to-video**: Expand with subject, action, camera movement, lighting, and style. Be specific about motion (e.g. "camera slowly zooms in", "character walks left to right").
- **Image-to-video**: Describe the motion to apply to the image (e.g. "gentle breeze in the hair", "camera pans across the scene"). See [references/prompt_guide.md](references/prompt_guide.md) for patterns.
Step 2 — Run the script
**Text-to-video:**
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "<enhanced prompt>" \
--duration <seconds> \
--aspect-ratio <ratio>**Image-to-video:**
node {baseDir}/tools/generate.js \
--mode image-to-video \
--prompt "<motion description>" \
--image-url "<public image URL>" \
--duration <seconds> \
--aspect-ratio <ratio>**Parameters:**
| Parameter | Default | Description | |-----------|---------|-------------| | `--mode` | `text-to-video` | `text-to-video` or `image-to-video` | | `--prompt` | *(required)* | Scene or motion description | | `--image-url` | — | Required for `image-to-video`; public image URL | | `--duration` | `5` | Length in seconds (typically 4–10) | | `--aspect-ratio` | `16:9` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4` | | `--model` | `auto` | Model ID (e.g. `kling`, `veo`, `grok`, `seedance`); `auto` = proxy picks |
**Other commands:**
| Command | Description | |---------|-------------| | `node tools/generate.js --list-models` | List available models from the proxy | | `node tools/generate.js --status --job-id <id>` | Check async job status |
Step 3 — Return the result
The script returns JSON:
{
"success": true,
"mode": "text-to-video",
"videoUrl": "https://...",
"duration": 5,
"aspectRatio": "16:9"
}Send `videoUrl` to the user.
---
Example Conversations
**User:** "Generate a short video of a cat walking in the rain, cinematic."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "A cat walking through rain, wet streets, neon reflections, cinematic lighting, slow motion, 4K" \
--duration 5 \
--aspect-ratio 16:9---
**User:** "Animate this photo" *(user uploads a landscape)*
node {baseDir}/tools/generate.js \
--mode image-to-video \
--prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \
--image-url "https://..." \
--duration 5 \
--aspect-ratio 16:9---
**User:** "Make a 10-second vertical video of a coffee pour, slow motion."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--prompt "Close-up of coffee pouring into a white cup, slow motion, steam rising, soft lighting, product shot" \
--duration 10 \
--aspect-ratio 9:16---
**User:** "Use Google Veo for a cinematic shot."
node {baseDir}/tools/generate.js \
--mode text-to-video \
--model veo \
--prompt "A dragon flying through cloudy skies, cinematic lighting, 8s" \
--duration 8 \
--aspect-ratio 16:9---
**User:** "Animate this portrait."
node {baseDir}/tools/generate.js \
--mode image-to-video \
--model grok \
--prompt "Gentle smile, subtle head turn" \
--image-url "https://..." \
--duration 5---
Setup
**Zero API keys by default.** Requests go through a hosted proxy. Set these for a custom proxy or token:
| Variable | Required | Description | |----------|----------|-------------| | `VIDEO_STUDIO_PROXY_URL` | No | Proxy base URL | | `VI
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

