Not in the top 1,000 by GitHub stars
pexoai/pexo-skills
A collection of open-source Agent Skills for content creation — images, audio, and video.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/ai-video-generation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/explainer-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/founder-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/image-to-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/launch-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/make-a-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/pexo-agent/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/product-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/saas-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/seedance-2.0-prompter/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/startup-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/text-to-video/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/tiktok-video-ad/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/veo-3.2-prompter/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/video-ad/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/videoagent-audio-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/videoagent-director/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/videoagent-image-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/videoagent-video-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
skills/youtube-short-maker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
f724267e45a0 → f724267e45a0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f724267e45a0
No earlier version was observed for comparison.
Verified commit f724267e45a065b6be445ea6f07312e62d3207cd
git clone --filter=blob:none --no-checkout https://github.com/pexoai/pexo-skills.git .hotskills/pexoai-pexo-skills && git -C .hotskills/pexoai-pexo-skills checkout --detach f724267e45a065b6be445ea6f07312e62d3207cd
# Copy each selected skill directory from .hotskills/pexoai-pexo-skills into .claude/skills/<skill-name>/Heat
5.2- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- ai-video-generation
skills/ai-video-generation - explainer-video
skills/explainer-video - founder-video
skills/founder-video - image-to-video
skills/image-to-video - launch-video
skills/launch-video - make-a-video
skills/make-a-video - pexo-agent
skills/pexo-agent - product-video
skills/product-video - saas-video
skills/saas-video - seedance-2.0-prompter
skills/seedance-2.0-prompter - startup-video
skills/startup-video - text-to-video
skills/text-to-video - tiktok-video-ad
skills/tiktok-video-ad - veo-3.2-prompter
skills/veo-3.2-prompter - video-ad
skills/video-ad - videoagent-audio-studio
skills/videoagent-audio-studio - videoagent-director
skills/videoagent-director - videoagent-image-studio
skills/videoagent-image-studio - videoagent-video-studio
skills/videoagent-video-studio - youtube-short-maker
skills/youtube-short-maker
How it works
ai-video-generation
When your agent uses it
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 generation request: "ai video generation", "generate a video with ai", "ai video generator", "make an ai video". NOT for editing an existing video.
What it loads into context
Frontmatter
187 tokensAlways available to the agent
SKILL.md
1,420 tokensWhen the skill is activated
Reference documents
35,685 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh../pexo-agent/scripts/_common.sh../pexo-agent/scripts/pexo-asset-get.sh../pexo-agent/scripts/pexo-billing-confirm.sh../pexo-agent/scripts/pexo-chat.sh../pexo-agent/scripts/pexo-doctor.sh../pexo-agent/scripts/pexo-project-create.sh../pexo-agent/scripts/pexo-project-get.sh../pexo-agent/scripts/pexo-project-list.sh../pexo-agent/scripts/pexo-upload.sh../videoagent-audio-studio/cli.js../videoagent-audio-studio/proxy/api/audio.js../videoagent-audio-studio/proxy/api/stats.js../videoagent-audio-studio/proxy/package.json../videoagent-audio-studio/proxy/usage-store.js../videoagent-audio-studio/tools/start_server.sh../videoagent-director/package.json../videoagent-director/tools/director.js../videoagent-image-studio/package.json../videoagent-image-studio/tools/generate.js../videoagent-video-studio/package.json../videoagent-video-studio/proxy/api/generate.js../videoagent-video-studio/proxy/api/stats.js../videoagent-video-studio/proxy/api/status.js../videoagent-video-studio/proxy/api/token.js../videoagent-video-studio/proxy/models.js../videoagent-video-studio/proxy/package.json../videoagent-video-studio/proxy/usage-store.js../videoagent-video-studio/scripts/local-server.cjs../videoagent-video-studio/scripts/test-api.ps1../videoagent-video-studio/scripts/test-generate.ps1../videoagent-video-studio/scripts/test-generate.sh../videoagent-video-studio/scripts/test-proxy.cjs../videoagent-video-studio/tools/generate.js
Files
../../.claude-plugin/marketplace.jsonasset947 bytesREADME.mddoc1,104 bytesSKILL.mdcore5,358 bytesSKILL.mdcore5,358 bytesSKILL.mdcore5,358 bytesSKILL.mdcore5,358 bytesSKILL.mdcore5,358 bytesSKILL.mdcore5,358 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes../pexo-agent/SKILL.mddoc20,260 bytes../pexo-agent/agents/openai.yamlasset249 bytes../pexo-agent/references/SETUP-CHECKLIST.mddoc3,766 bytes../pexo-agent/references/TROUBLESHOOTING.mddoc13,980 bytes../pexo-agent/scripts/_common.shruns13,616 bytes../pexo-agent/scripts/pexo-asset-get.shruns3,904 bytes../pexo-agent/scripts/pexo-billing-confirm.shruns3,486 bytes../pexo-agent/scripts/pexo-chat.shruns5,530 bytes../pexo-agent/scripts/pexo-doctor.shruns6,278 bytes../pexo-agent/scripts/pexo-project-create.shruns1,679 bytes../pexo-agent/scripts/pexo-project-get.shruns11,771 bytes../pexo-agent/scripts/pexo-project-list.shruns1,693 bytes../pexo-agent/scripts/pexo-upload.shruns3,209 bytes../seedance-2.0-prompter/SKILL.mddoc2,428 bytes../seedance-2.0-prompter/references/atomic_element_mapping.mddoc2,851 bytes../seedance-2.0-prompter/references/prompt_templates.mddoc2,244 bytes../seedance-2.0-prompter/references/seedance_syntax_guide.mddoc2,926 bytes../veo-3.2-prompter/SKILL.mddoc3,885 bytes../veo-3.2-prompter/references/atomic_element_mapping.mddoc4,471 bytes../veo-3.2-prompter/references/veo_syntax_guide.mddoc6,514 bytes../videoagent-audio-studio/SKILL.mddoc6,900 bytes../videoagent-audio-studio/cli.jsruns7,123 bytes../videoagent-audio-studio/proxy/.gitignoreasset21 bytes../videoagent-audio-studio/proxy/api/audio.jsruns6,227 bytes../videoagent-audio-studio/proxy/api/stats.jsruns4,154 bytes../videoagent-audio-studio/proxy/package-lock.jsonasset2,432 bytes../videoagent-audio-studio/proxy/package.jsonruns162 bytes../videoagent-audio-studio/proxy/usage-store.jsruns4,582 bytes../videoagent-audio-studio/proxy/vercel.jsonasset451 bytes../videoagent-audio-studio/tools/start_server.shruns1,228 bytes../videoagent-director/README.mddoc3,577 bytes../videoagent-director/SKILL.mddoc5,479 bytes../videoagent-director/package.jsonruns277 bytes../videoagent-director/references/storyboard_guide.mddoc6,803 bytes../videoagent-director/tools/director.jsruns11,435 bytes../videoagent-image-studio/.env.exampleasset931 bytes../videoagent-image-studio/CHANGELOG.mddoc4,041 bytes../videoagent-image-studio/CONTRIBUTING.mddoc3,062 bytes../videoagent-image-studio/SKILL.mddoc6,772 bytes../videoagent-image-studio/package.jsonruns338 bytes../videoagent-image-studio/tools/generate.jsruns6,424 bytes../videoagent-video-studio/README.mddoc4,339 bytes../videoagent-video-studio/SKILL.mddoc6,528 bytes../videoagent-video-studio/package-lock.jsonasset260 bytes../videoagent-video-studio/package.jsonruns229 bytes../videoagent-video-studio/proxy/README.mddoc3,949 bytes../videoagent-video-studio/proxy/api/generate.jsruns6,522 bytes../videoagent-video-studio/proxy/api/stats.jsruns7,470 bytes../videoagent-video-studio/proxy/api/status.jsruns1,255 bytes../videoagent-video-studio/proxy/api/token.jsruns2,070 bytes../videoagent-video-studio/proxy/models.jsruns6,412 bytes../videoagent-video-studio/proxy/package-lock.jsonasset2,460 bytes../videoagent-video-studio/proxy/package.jsonruns176 bytes../videoagent-video-studio/proxy/usage-store.jsruns9,136 bytes../videoagent-video-studio/proxy/vercel.jsonasset565 bytes../videoagent-video-studio/references/calling_guide.mddoc5,536 bytes../videoagent-video-studio/references/models.mddoc2,996 bytes../videoagent-video-studio/references/prompt_guide.mddoc2,386 bytes../videoagent-video-studio/scripts/local-server.cjsruns3,068 bytes../videoagent-video-studio/scripts/test-api.ps1runs10,253 bytes../videoagent-video-studio/scripts/test-generate.ps1runs818 bytes../videoagent-video-studio/scripts/test-generate.shruns845 bytes../videoagent-video-studio/scripts/test-proxy.cjsruns15,506 bytes../videoagent-video-studio/tools/generate.jsruns4,820 bytes
Read SKILL.md
# AI Video Generation — Pexo
**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.
## 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.View the complete source on GitHubexplainer-video
When your agent uses it
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).
What it loads into context
Frontmatter
177 tokensAlways available to the agent
SKILL.md
1,404 tokensWhen the skill is activated
Reference documents
3,849 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,070 bytesSKILL.mdcore5,283 bytesSKILL.mdcore5,283 bytesSKILL.mdcore5,283 bytesSKILL.mdcore5,283 bytesSKILL.mdcore5,283 bytesSKILL.mdcore5,283 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# 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.View the complete source on GitHubfounder-video
When your agent uses it
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 fundraising, Product Hunt, or your personal brand. Use for founder content: "founder video", "solo founder video", "founder pitch video", "founder story". NOT for paid ad campaigns (use the video-ad skill).
What it loads into context
Frontmatter
189 tokensAlways available to the agent
SKILL.md
1,437 tokensWhen the skill is activated
Reference documents
3,862 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,129 bytesSKILL.mdcore5,463 bytesSKILL.mdcore5,463 bytesSKILL.mdcore5,463 bytesSKILL.mdcore5,463 bytesSKILL.mdcore5,463 bytesSKILL.mdcore5,463 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Founder Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished founder video — built for solo founders and small teams. You relay the founder's
story or pitch to the hosted Pexo agent and deliver the result; Pexo writes the script, generates
the shots, and assembles a personal, polished video with music.
## 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.View the complete source on GitHubimage-to-video
When your agent uses it
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 has an IMAGE to bring to life: "image to video", "animate this photo", "make a video from this picture", "turn my image into a video". NOT for text-only prompts (use the text-to-video skill) or editing an existing video.
What it loads into context
Frontmatter
204 tokensAlways available to the agent
SKILL.md
1,437 tokensWhen the skill is activated
Reference documents
3,860 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,113 bytesSKILL.mdcore5,407 bytesSKILL.mdcore5,407 bytesSKILL.mdcore5,407 bytesSKILL.mdcore5,407 bytesSKILL.mdcore5,407 bytesSKILL.mdcore5,407 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Image to Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Bring a still image to life as a finished video. You upload the user's image, hand the request
to the hosted Pexo agent, and deliver the result — Pexo adds the motion, camera movement, music,
and assembles the final clip.
## 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.View the complete source on GitHublaunch-video
When your agent uses it
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 Hunt, your landing page, or launch-day socials. Use for product and startup launches: "launch video", "product launch video", "make a launch video", "launch day video". NOT for ongoing ad campaigns (use the video-ad skill).
What it loads into context
Frontmatter
192 tokensAlways available to the agent
SKILL.md
1,438 tokensWhen the skill is activated
Reference documents
3,862 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,144 bytesSKILL.mdcore5,487 bytesSKILL.mdcore5,487 bytesSKILL.mdcore5,487 bytesSKILL.mdcore5,487 bytesSKILL.mdcore5,487 bytesSKILL.mdcore5,487 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Launch Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished launch video for a product or startup. You relay the founder's pitch — or a
landing-page URL or screenshot — to the hosted Pexo agent and deliver the result; Pexo writes the
script, generates the shots, and assembles a launch-ready video with music.
## 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.View the complete source on GitHubmake-a-video
When your agent uses it
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 video", "make me a video about X", "create a video", "I need a video for ...". NOT for editing a video they already have.
What it loads into context
Frontmatter
177 tokensAlways available to the agent
SKILL.md
1,402 tokensWhen the skill is activated
Reference documents
3,854 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,090 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Make a Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished video from a plain-language idea. You pass the user's request to the hosted Pexo
agent verbatim and deliver the result — Pexo does the script, shot selection, models, music, and
editing end to end.
## 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.View the complete source on GitHubpexo-agent
When your agent uses it
AI video generation skill with auto model selection across Seedance 2, Kling 3.0, HappyHorse, and 10+ models. Produces finished multi-shot videos (5–120s) from text, images, URLs, scripts, or audio — including AI music, lip sync, and multi-shot sequencing. Calls Pexo's external API, manages project status and billing confirmations, and transfers only user-approved briefs and assets. Runs setup diagnostics, stores generated downloads locally, and requires shell, outbound HTTPS, and local file access. Authenticated requests are locked to https://pexo.ai. No prompts to write, no models to choose. USE FOR: video production, AI video, make a video, product video, brand video, promotional clip, explainer video, short video, TikTok video, Instagram Reel, YouTube Short, product ad, text-to-video, image-to-video, video generation, AI video agent.
What it loads into context
Frontmatter
286 tokensAlways available to the agent
SKILL.md
4,720 tokensWhen the skill is activated
Reference documents
4,155 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What Pexo Does
- What You Can Build With Pexo
- How It Works
- Data, Permissions, and Cost
- Script Execution
- Prerequisites
- ⚠<U+FE0F> LANGUAGE RULE (highest priority)
- Your Role: Delivery Worker
- First-Time Setup Message
- Step-by-Step Workflow
- Asset Upload
- Important Rules
- Script Reference
- Pexo Capabilities
- References
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-billing-confirm.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
SKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesSKILL.mdcore20,260 bytesagents/openai.yamlasset249 bytesreferences/SETUP-CHECKLIST.mddoc3,766 bytesreferences/TROUBLESHOOTING.mddoc13,980 bytesscripts/_common.shruns13,616 bytesscripts/pexo-asset-get.shruns3,904 bytesscripts/pexo-billing-confirm.shruns3,486 bytesscripts/pexo-chat.shruns5,530 bytesscripts/pexo-doctor.shruns6,278 bytesscripts/pexo-project-create.shruns1,679 bytesscripts/pexo-project-get.shruns11,771 bytesscripts/pexo-project-list.shruns1,693 bytesscripts/pexo-upload.shruns3,209 bytes
Read SKILL.md
# Pexo Agent — AI Video Generation Skill
Pexo is the most complete video generation skill for Claude Code and other AI coding agents. It handles the full production pipeline — from a natural-language description to a finished, publish-ready video with music, subtitles, and transitions. Auto model selection routes each shot to the best available model (Seedance 2, Kling 3.0, HappyHorse, and more). One API key, no prompt engineering, no video editing.
## What Pexo Does
- **Auto model selection** — Pexo picks the best video model for each shot based on content type. You do not need to know which model to use.
- **Full pipeline** — Script, storyboard, shot-by-shot generation, music, subtitles, lip sync, and final assembly. The output is a finished video, not a raw clip.
- **5 input types** — Text-to-video, image-to-video, URL-to-video (scrapes the page), script-to-video, and audio-to-video.
- **10+ models** — Seedance 2, Kling 3.0, HappyHorse, and more. New models are added as they launch.
- **Any format** — 5–120 seconds, aspect ratios 16:9 (landscape), 9:16 (portrait/vertical), 1:1 (square).
## What You Can Build With Pexo
View the complete source on GitHubproduct-video
When your agent uses it
Turn product photos or a store URL into a polished product video with Pexo. Upload your product images (or download from a link, then upload) and Pexo composes the shots, adds motion, music, and transitions, and returns a publish-ready clip for your listing, ads, or socials. Use for e-commerce/product clips: "product video", "video for my product", "ecommerce video", "video from product photos". NOT for explainer or non-product content.
What it loads into context
Frontmatter
182 tokensAlways available to the agent
SKILL.md
1,410 tokensWhen the skill is activated
Reference documents
3,849 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,083 bytesSKILL.mdcore5,335 bytesSKILL.mdcore5,335 bytesSKILL.mdcore5,335 bytesSKILL.mdcore5,335 bytesSKILL.mdcore5,335 bytesSKILL.mdcore5,335 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Product Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Turn a product's photos into a polished, publish-ready video. You upload the user's product
images and relay the request to the hosted Pexo agent, then deliver the result — Pexo composes
the shots, motion, and music.
## 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.View the complete source on GitHubsaas-video
When your agent uses it
Make a SaaS demo or explainer video with Pexo. Describe your software (or paste your app URL or a screenshot) and Pexo writes the script, generates the visuals, picks the models, adds narration and captions, and returns a finished, publish-ready video — for your landing page, onboarding, or sales. Use for SaaS and software videos: "saas video", "saas demo video", "software demo", "app explainer video". NOT for live screen recording — Pexo generates the visuals.
What it loads into context
Frontmatter
192 tokensAlways available to the agent
SKILL.md
1,435 tokensWhen the skill is activated
Reference documents
3,859 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,097 bytesSKILL.mdcore5,401 bytesSKILL.mdcore5,401 bytesSKILL.mdcore5,401 bytesSKILL.mdcore5,401 bytesSKILL.mdcore5,401 bytesSKILL.mdcore5,401 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# SaaS Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished SaaS demo or explainer video. You relay a description of the software — or its URL
or a screenshot — to the hosted Pexo agent and deliver the result; Pexo writes the script,
generates the visuals, and adds narration 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.View the complete source on GitHubseedance-2.0-prompter
When your agent uses it
Expert prompt engineering for Seedance 2.0. Use when the user wants to generate a video with multimodal assets (images, videos, audio) and needs the best possible prompt.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
558 tokensWhen the skill is activated
Reference documents
1,890 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Core Function
- Usage Example
- Knowledge Base
Files
SKILL.mdcore2,428 bytesreferences/atomic_element_mapping.mddoc2,851 bytesreferences/prompt_templates.mddoc2,244 bytesreferences/seedance_syntax_guide.mddoc2,926 bytes
Read SKILL.md
# Seedance 2.0 Prompt Designer Skill
This skill transforms a user's scattered multimodal assets (images, videos, audio) and ambiguous creative intent into a structured, executable prompt for the Seedance 2.0 video generation model. It acts as an expert prompt engineer, ensuring the highest quality output from the underlying model.
## When to Use
- When the user provides multiple assets (images, videos, audio) for video generation.
- When the user's request is complex and requires careful prompt construction.
- When using the Seedance 2.0 model for video generation.
## Core Function
This skill analyzes all user inputs and generates a single, optimized JSON object containing the final prompt and recommended parameters. The internal workflow (Recognition, Mapping, Construction) is handled automatically and should not be exposed to the user.
View the complete source on GitHubstartup-video
When your agent uses it
Make a video for your startup with Pexo. Describe your company, product, or vision (or paste your site) and Pexo writes the script, generates the shots, picks the models, and returns a finished, publish-ready startup video with music — for your homepage, fundraising deck, or social channels. Use for startup brand and intro videos: "startup video", "video for my startup", "company intro video", "about us video". NOT for paid ad campaigns (use the video-ad skill).
What it loads into context
Frontmatter
185 tokensAlways available to the agent
SKILL.md
1,425 tokensWhen the skill is activated
Reference documents
3,853 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,106 bytesSKILL.mdcore5,432 bytesSKILL.mdcore5,432 bytesSKILL.mdcore5,432 bytesSKILL.mdcore5,432 bytesSKILL.mdcore5,432 bytesSKILL.mdcore5,432 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Startup Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Make a finished brand or intro video for your startup. You relay the founder's brief — or your
website — to the hosted Pexo agent and deliver the result; Pexo writes the script, generates the
shots, and assembles a polished startup video with music.
## 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.View the complete source on GitHubtext-to-video
When your agent uses it
Turn a text prompt or script into a finished, multi-shot video with Pexo. Auto-selects the best model across 10+ engines (Seedance, Kling, Veo, Sora), writes the prompts, generates every shot, and returns a publish-ready video with music and subtitles. Use when the user wants a video FROM TEXT: "make a video about X", "turn this script into a video", "text to video", "generate a video from this description". NOT for editing an existing video or turning an image into video (use the image-to-video skill).
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
1,461 tokensWhen the skill is activated
Reference documents
3,881 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,184 bytesSKILL.mdcore5,534 bytesSKILL.mdcore5,534 bytesSKILL.mdcore5,534 bytesSKILL.mdcore5,534 bytesSKILL.mdcore5,534 bytesSKILL.mdcore5,534 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Text to Video — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Turn a written prompt or script into a finished, publish-ready video. You do not generate
anything yourself: you hand the request to the hosted Pexo agent (same backend as `pexo-agent`,
scoped to text-to-video) and deliver the result. Pexo writes the script, picks the best model
per shot, generates every shot, and adds music, subtitles, and transitions.
## 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 worseView the complete source on GitHubtiktok-video-ad
When your agent uses it
Create native TikTok video ads with Pexo — vertical 9:16, sound-on, hook-first. Give it your product and Pexo writes the script in TikTok's voice, sequences fast-paced shots, picks the models, and delivers a ready-to-post ad with trending-style music. Use for TikTok ads: "tiktok ad", "tiktok video ad", "ad for tiktok", "vertical video ad". NOT for landscape or long-form ads (use the video-ad skill).
What it loads into context
Frontmatter
188 tokensAlways available to the agent
SKILL.md
1,420 tokensWhen the skill is activated
Reference documents
3,853 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,042 bytesSKILL.mdcore5,288 bytesSKILL.mdcore5,288 bytesSKILL.mdcore5,288 bytesSKILL.mdcore5,288 bytesSKILL.mdcore5,288 bytesSKILL.mdcore5,288 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# TikTok Video Ad — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Produce a native, ready-to-post TikTok ad — vertical and hook-first. You relay the user's
product or brief to the hosted Pexo agent and deliver the result; Pexo writes the TikTok-style
script, sequences the shots, and sets the pacing and sound.
## 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.View the complete source on GitHubveo-3.2-prompter
When your agent uses it
Expert prompt engineering for Google Veo 3.2 (Artemis engine). Use when the user wants to generate a video with Veo 3.2, needs help crafting cinematic prompts, or mentions Veo, Google video generation, or Artemis engine.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
919 tokensWhen the skill is activated
Reference documents
2,561 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Core Function
- Usage Example
- Veo 3.2 Key Differentiators
- Knowledge Base
Files
SKILL.mdcore3,885 bytesreferences/atomic_element_mapping.mddoc4,471 bytesreferences/veo_syntax_guide.mddoc6,514 bytes
Read SKILL.md
# Veo 3.2 Prompt Designer Skill
This skill transforms a user's scattered multimodal assets (images, videos, audio) and creative intent into a structured, executable prompt for the Google Veo 3.2 video generation model (Artemis engine). It acts as an expert prompt engineer, ensuring the highest quality output from the underlying model.
## When to Use
- When the user provides assets (images, videos, audio) for video generation with Veo 3.2.
- When the user's request is complex and requires careful prompt construction for the Veo model.
- When using any Google Veo 3.x model for video generation.
## Core Function
This skill analyzes all user inputs and generates a single, optimized JSON object containing the final prompt and recommended parameters. The internal workflow (Recognition, Mapping, Construction) is handled automatically and should not be exposed to the user.
View the complete source on GitHubvideo-ad
When your agent uses it
Create scroll-stopping video ads with Pexo. Give it your product, brand, or a photo and Pexo writes the hook, sequences the shots, picks the best models, and delivers a finished ad with music — ready to run on Meta, TikTok, or YouTube. Use for advertising/promo video: "video ad", "make an ad", "product ad", "promo video", "commercial". NOT for explainer or tutorial content (use the explainer-video skill).
What it loads into context
Frontmatter
183 tokensAlways available to the agent
SKILL.md
1,412 tokensWhen the skill is activated
Reference documents
3,846 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,036 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesSKILL.mdcore5,286 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# Video Ad — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Produce a finished, ready-to-run video ad. You hand the user's product or brief to the hosted
Pexo agent and deliver the result — Pexo writes the hook, sequences the shots, picks the models,
and sets music and pacing built to convert.
## 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.View the complete source on GitHubvideoagent-audio-studio
When your agent uses it
Tired of juggling multiple audio APIs? This skill gives you one-command access to TTS, music generation, sound effects, and voice cloning. Use when you want to generate any audio without managing multiple API keys.
What it loads into context
Frontmatter
212 tokensAlways available to the agent
SKILL.md
1,911 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- How to Use
- Example Conversations
- Setup
- Self-Hosting the Proxy
- Model Reference
- Changelog
Scripts executed separately
cli.jsproxy/api/audio.jsproxy/api/stats.jsproxy/package.jsonproxy/usage-store.jstools/start_server.sh
Files
SKILL.mdcore6,900 bytesSKILL.mdcore6,900 bytesSKILL.mdcore6,900 bytesSKILL.mdcore6,900 bytescli.jsruns7,123 bytesproxy/.gitignoreasset21 bytesproxy/api/audio.jsruns6,227 bytesproxy/api/stats.jsruns4,154 bytesproxy/package-lock.jsonasset2,432 bytesproxy/package.jsonruns162 bytesproxy/usage-store.jsruns4,582 bytesproxy/vercel.jsonasset451 bytestools/start_server.shruns1,228 bytes
Read SKILL.md
# 🎙<U+FE0F> VideoAgent Audio Studio
**Use when:** User asks to generate speech, narrate text, create a voice-over, compose music, or produce a sound effect.
VideoAgent Audio Studio is a smart audio dispatcher. It analyzes your request and routes it to the best available model — ElevenLabs for speech and music, fal.ai for fast SFX — and returns a ready-to-use audio URL.
---
## Quick Reference
| Request Type | Best Model | Latency |
|---|---|---|
| Narrate text / Voice-over | `elevenlabs-tts-v3` | ~3s |
| Low-latency TTS (real-time) | `elevenlabs-tts-turbo` | <1s |View the complete source on GitHubvideoagent-director
When your agent uses it
AI creative director that turns a user's natural-language idea into a complete storyboard and generates all assets — images, video clips, and audio — automatically. The user only describes what they want; all prompt engineering is handled internally.
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
1,396 tokensWhen the skill is activated
Reference documents
2,620 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your Responsibilities
- Workflow
- Shot Planning Reference (internal use only)
- Example
Scripts executed separately
package.jsontools/director.js
Files
README.mddoc3,577 bytesSKILL.mdcore5,479 bytesSKILL.mdcore5,479 bytesSKILL.mdcore5,479 bytesSKILL.mdcore5,479 bytesSKILL.mdcore5,479 bytesSKILL.mdcore5,479 bytespackage.jsonruns277 bytesreferences/storyboard_guide.mddoc6,803 bytestools/director.jsruns11,435 bytes
Read SKILL.md
# 🎬 VideoAgent Director
**Use when:** The user wants to produce a video from a natural-language idea — a brand video, short film, social reel, product ad, or any creative concept. Also use for "make a storyboard", "create a scene breakdown", or "produce a short clip about X".
You are the creative director. The user describes what they want. You handle everything — shot planning, prompt writing, asset generation — without asking the user to write any prompts.
---
## Your Responsibilities
**The user gives you an idea. You do the rest.**
- Break the idea into the right number of shots
- Write all image, video, and audio prompts internally (never ask the user to write them)View the complete source on GitHubvideoagent-image-studio
When your agent uses it
Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys.
What it loads into context
Frontmatter
180 tokensAlways available to the agent
SKILL.md
1,875 tokensWhen the skill is activated
Reference documents
1,953 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- How to Generate an Image
- Midjourney Actions
- Example Conversations
- Setup
- Changelog
Scripts executed separately
package.jsontools/generate.js
Files
.env.exampleasset931 bytesCHANGELOG.mddoc4,041 bytesCONTRIBUTING.mddoc3,062 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytesSKILL.mdcore6,772 bytespackage.jsonruns338 bytestools/generate.jsruns6,424 bytes
Read SKILL.md
# 🎨 VideoAgent Image Studio
**Use when:** User asks to generate, draw, create, or make any kind of image, photo, illustration, icon, logo, or artwork.
Generate images with 8 state-of-the-art AI models. This skill automatically picks the best model for the job and handles all the complexity — including Midjourney's async polling — so you can focus on the conversation.
---
## Quick Reference
| User Intent | Model | Speed |
|---|---|---|
| Artistic, cinematic, painterly | `midjourney` | ~15s |
| Photorealistic, portrait, product | `flux-pro` | ~8s |View the complete source on GitHubvideoagent-video-studio
When your agent uses it
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.
What it loads into context
Frontmatter
183 tokensAlways available to the agent
SKILL.md
1,791 tokensWhen the skill is activated
Reference documents
5,482 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- How to Generate a Video
- Example Conversations
- Setup
- Knowledge Base
Scripts executed separately
package.jsonproxy/api/generate.jsproxy/api/stats.jsproxy/api/status.jsproxy/api/token.jsproxy/models.jsproxy/package.jsonproxy/usage-store.jsscripts/local-server.cjsscripts/test-api.ps1scripts/test-generate.ps1scripts/test-generate.shscripts/test-proxy.cjstools/generate.js
Files
README.mddoc4,339 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytesSKILL.mdcore6,528 bytespackage-lock.jsonasset260 bytespackage.jsonruns229 bytesproxy/README.mddoc3,949 bytesproxy/api/generate.jsruns6,522 bytesproxy/api/stats.jsruns7,470 bytesproxy/api/status.jsruns1,255 bytesproxy/api/token.jsruns2,070 bytesproxy/models.jsruns6,412 bytesproxy/package-lock.jsonasset2,460 bytesproxy/package.jsonruns176 bytesproxy/usage-store.jsruns9,136 bytesproxy/vercel.jsonasset565 bytesreferences/calling_guide.mddoc5,536 bytesreferences/models.mddoc2,996 bytesreferences/prompt_guide.mddoc2,386 bytesscripts/local-server.cjsruns3,068 bytesscripts/test-api.ps1runs10,253 bytesscripts/test-generate.ps1runs818 bytesscripts/test-generate.shruns845 bytesscripts/test-proxy.cjsruns15,506 bytestools/generate.jsruns4,820 bytes
Read SKILL.md
# 🎬 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 |View the complete source on GitHubyoutube-short-maker
When your agent uses it
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.
What it loads into context
Frontmatter
175 tokensAlways available to the agent
SKILL.md
1,409 tokensWhen the skill is activated
Reference documents
3,847 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Your role: relay, don't create
- Config
- Workflow
- Revisions
- Credits
- Example
- Scripts
Scripts executed separately
scripts/_common.shscripts/pexo-asset-get.shscripts/pexo-chat.shscripts/pexo-doctor.shscripts/pexo-entitlements.shscripts/pexo-project-create.shscripts/pexo-project-get.shscripts/pexo-project-list.shscripts/pexo-upload.sh
Files
README.mddoc1,066 bytesSKILL.mdcore5,300 bytesSKILL.mdcore5,300 bytesSKILL.mdcore5,300 bytesSKILL.mdcore5,300 bytesSKILL.mdcore5,300 bytesSKILL.mdcore5,300 bytesreferences/SETUP-CHECKLIST.mddoc2,504 bytesreferences/TROUBLESHOOTING.mddoc12,286 bytesscripts/_common.shruns11,430 bytesscripts/pexo-asset-get.shruns2,340 bytesscripts/pexo-chat.shruns4,558 bytesscripts/pexo-doctor.shruns5,514 bytesscripts/pexo-entitlements.shruns1,604 bytesscripts/pexo-project-create.shruns1,806 bytesscripts/pexo-project-get.shruns7,083 bytesscripts/pexo-project-list.shruns1,670 bytesscripts/pexo-upload.shruns3,175 bytes
Read SKILL.md
# 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.View the complete source on GitHubSkills included
- ai-video-generation
- explainer-video
- founder-video
- image-to-video
- launch-video
- make-a-video
- pexo-agent
- product-video
- saas-video
- seedance-2.0-prompter
- startup-video
- text-to-video
- tiktok-video-ad
- veo-3.2-prompter
- video-ad
- videoagent-audio-studio
- videoagent-director
- videoagent-image-studio
- videoagent-video-studio
- youtube-short-maker
Repository facts
- License
- MIT
- Created
- Mar 4, 2026
- Last pushed
- Aug 20, 2026
- Forks
- 49
- Open issues
- 7
- Project activity
- Slowing
Rank over the last 12 weeks
Now #1,000 · best #650 · down 189 in 30 days
- #865 on Oct 21
- #840 on Oct 22
- #852 on Oct 23
- #986 on Oct 25
- #997 on Oct 28
- #1,000 since Oct 29
41 earlier periods
- #653 on Aug 2
- #650 on Aug 8
- #660 on Aug 9
- #684 on Aug 10
- #695 on Aug 11
- #687 on Aug 12
- #684 on Aug 13
- #681 on Aug 14
- #658 on Aug 15
- #675 on Aug 16
- #702 on Aug 18
- #683 on Aug 19
- #685 on Aug 20
- #659 on Aug 22
- #687 on Aug 23
- #722 on Aug 27
- #745 on Aug 28
- #689 on Aug 29
- #737 on Sep 7
- #737 on Sep 13
- #759 on Sep 15
- #769 on Sep 17
- #753 on Sep 18
- #740 on Sep 20
- #766 on Sep 21
- #789 on Sep 22
- #777 on Sep 23
- #745 on Sep 24
- #811 on Sep 29
- #760 on Oct 2
- #810 on Oct 7
- #853 on Oct 8
- #815 on Oct 9
- #797 on Oct 10
- #798 on Oct 11
- #822 on Oct 12
- #827 on Oct 13
- #838 on Oct 14
- #825 on Oct 15
- #835 on Oct 16
- #806 on Oct 17
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 110 notes
skills/ai-video-generation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-video-generation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-video-generation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-video-generation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-video-generation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/explainer-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/explainer-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/explainer-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/explainer-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/explainer-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/founder-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/founder-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/founder-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/founder-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/founder-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-to-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-to-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-to-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-to-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-to-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 193 dangerous shell commandsin 42 files: skills/pexo-agent/scripts/_common.sh:352 ai-video-generation/scripts/_common.sh:259 explainer-video/scripts/_common.sh:259 and 39 more
- 1,836 network referencesin 176 files: skills/pexo-agent/SKILL.md:9 skills/pexo-agent/scripts/_common.sh:8 skills/videoagent-video-studio/scripts/test-api.ps1:5 and 173 more
- No hidden or obfuscated text
- No instruction overrides
- 183 executable scriptsin 150 files: skills/pexo-agent/scripts/_common.sh:1 skills/pexo-agent/scripts/pexo-asset-get.sh:1 skills/pexo-agent/scripts/pexo-billing-confirm.sh:1 and 147 more
- 501 references to secretsin 104 files: skills/videoagent-video-studio/scripts/test-proxy.cjs:7 skills/pexo-agent/scripts/pexo-doctor.sh:109 skills/videoagent-video-studio/proxy/models.js:26 and 101 more
- No requests to vote in Hot
Show all 2,713 signals by file
.claude-plugin/marketplace.json
skills/ai-video-generation/README.md
skills/ai-video-generation/SKILL.md
- Network accessline 7
generation request: "ai video generation", "generate a video with ai", "ai video generator", "make an ai video". NOT for editing an existing video. homepage: https://pexo.ai - Network accessline 8
"make an ai video". NOT for editing an existing video. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(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 - Network accessline 91
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 - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/ai-video-generation/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/ai-video-generation/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/ai-video-generation/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/ai-video-generation/scripts/pexo-asset-get.sh
skills/ai-video-generation/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/ai-video-generation/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/ai-video-generation/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/ai-video-generation/scripts/pexo-project-create.sh
skills/ai-video-generation/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/ai-video-generation/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/ai-video-generation/scripts/pexo-upload.sh
skills/explainer-video/README.md
skills/explainer-video/SKILL.md
- Network accessline 7
"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 - Network accessline 8
the video-ad skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
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 - Network accessline 91
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. - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/explainer-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/explainer-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/explainer-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/explainer-video/scripts/pexo-asset-get.sh
skills/explainer-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/explainer-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/explainer-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/explainer-video/scripts/pexo-project-create.sh
skills/explainer-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/explainer-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/explainer-video/scripts/pexo-upload.sh
skills/founder-video/README.md
skills/founder-video/SKILL.md
- Network accessline 7
Hunt, or your personal brand. Use for founder content: "founder video", "solo founder video", "founder pitch video", "founder story". NOT for paid ad campaigns (use the video-ad skill). homepage: https://pexo.ai - Network accessline 8
"founder pitch video", "founder story". NOT for paid ad campaigns (use the video-ad skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "founder pitch video") pexo-chat.sh "$pid" "Make a 30-second founder pitch video for my solo SaaS that turns notes into flashcards." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 30-second founder pitch video for my solo SaaS that turns notes into flashcards." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid # Poll pexo-project-get.sh "$pid" until nextAction is DELIVER - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/founder-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/founder-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/founder-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/founder-video/scripts/pexo-asset-get.sh
skills/founder-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/founder-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/founder-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/founder-video/scripts/pexo-project-create.sh
skills/founder-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/founder-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/founder-video/scripts/pexo-upload.sh
skills/image-to-video/README.md
skills/image-to-video/SKILL.md
- Network accessline 8
this picture", "turn my image into a video". NOT for text-only prompts (use the text-to-video skill) or editing an existing video. homepage: https://pexo.ai - Network accessline 9
skill) or editing an existing video. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 10
homepage: https://pexo.ai - Network accessline 11
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 14
[Credential-related source omitted] - Network accessline 22
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 39
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 40
[Credential-related source omitted] - Network accessline 53
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/<pro - Network accessline 54
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 `nextAct - Network accessline 55
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 69
- 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; a - Network accessline 70
- **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. - Network accessline 71
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 82
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` - Network accessline 83
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 91
pid=$(pexo-project-create.sh "animate product photo") pexo-chat.sh "$pid" "Animate this product photo into a 10-second clip with a slow zoom." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 92
pexo-chat.sh "$pid" "Animate this product photo into a 10-second clip with a slow zoom." # 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 as - Network accessline 93
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/image-to-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/image-to-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/image-to-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/image-to-video/scripts/pexo-asset-get.sh
skills/image-to-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/image-to-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/image-to-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/image-to-video/scripts/pexo-project-create.sh
skills/image-to-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/image-to-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/image-to-video/scripts/pexo-upload.sh
skills/launch-video/README.md
skills/launch-video/SKILL.md
- Network accessline 8
"product launch video", "make a launch video", "launch day video". NOT for ongoing ad campaigns (use the video-ad skill). homepage: https://pexo.ai - Network accessline 9
(use the video-ad skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 10
homepage: https://pexo.ai - Network accessline 11
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 14
[Credential-related source omitted] - Network accessline 22
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 39
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 40
[Credential-related source omitted] - Network accessline 53
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/<pro - Network accessline 54
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 `nextAct - Network accessline 55
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 69
- 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; a - Network accessline 70
- **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. - Network accessline 71
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 82
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` - Network accessline 83
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 91
pid=$(pexo-project-create.sh "SaaS launch video") pexo-chat.sh "$pid" "Make a 45-second launch video for our SaaS that writes meeting notes automatically." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 92
pexo-chat.sh "$pid" "Make a 45-second launch video for our SaaS that writes meeting notes automatically." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid # Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, th - Network accessline 93
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/launch-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/launch-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/launch-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/launch-video/scripts/pexo-asset-get.sh
skills/launch-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/launch-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/launch-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/launch-video/scripts/pexo-project-create.sh
skills/launch-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/launch-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/launch-video/scripts/pexo-upload.sh
skills/make-a-video/README.md
skills/make-a-video/SKILL.md
- Network accessline 7
"make me a video about X", "create a video", "I need a video for ...". NOT for editing a video they already have. homepage: https://pexo.ai - Network accessline 8
they already have. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "coffee subscription promo") pexo-chat.sh "$pid" "Make a 30-second video about our new coffee subscription." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 30-second video about our new coffee subscription." # 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. - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/make-a-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/make-a-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/make-a-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/make-a-video/scripts/pexo-asset-get.sh
skills/make-a-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/make-a-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/make-a-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/make-a-video/scripts/pexo-project-create.sh
skills/make-a-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/make-a-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/make-a-video/scripts/pexo-upload.sh
skills/pexo-agent/SKILL.md
- Network accessline 9
briefs and assets. Runs setup diagnostics, stores generated downloads locally, and requires shell, outbound HTTPS, and local file access. Authenticated requests are locked to https://pexo.ai. No prompts to write, no models to choose. - Network accessline 9
briefs and assets. Runs setup diagnostics, stores generated downloads locally, and requires shell, outbound HTTPS, and local file access. Authenticated requests are locked to https://pexo.ai. No prompts to write, no models to choose. - Network accessline 10
and requires shell, outbound HTTPS, and local file access. Authenticated requests are locked to https://pexo.ai. No prompts to write, no models to choose. USE FOR: video production, AI video, make a video, product video, - Network accessline 10
and requires shell, outbound HTTPS, and local file access. Authenticated requests are locked to https://pexo.ai. No prompts to write, no models to choose. USE FOR: video production, AI video, make a video, product video, - Network accessline 11
requests are locked to https://pexo.ai. No prompts to write, no models to choose. - Network accessline 11
requests are locked to https://pexo.ai. No prompts to write, no models to choose. - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Network accessline 25
- bash - curl - jq - Network accessline 25
- bash - curl - jq - Network accessline 26
- curl - jq - file - Network accessline 26
- curl - jq - file - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Network accessline 59
- This Skill runs bundled shell scripts, reads only files the user explicitly selects, connects only to `https://pexo.ai` for authenticated API calls, uploads approved - Network accessline 59
- This Skill runs bundled shell scripts, reads only files the user explicitly selects, connects only to `https://pexo.ai` for authenticated API calls, uploads approved - Network accessline 60
connects only to `https://pexo.ai` for authenticated API calls, uploads approved - Network accessline 60
connects only to `https://pexo.ai` for authenticated API calls, uploads approved - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 162
> ✅ Pexo is ready! > 📖 Guide: https://pexo.ai/connect/openclaw - Network accessline 162
> ✅ Pexo is ready! > 📖 Guide: https://pexo.ai/connect/openclaw - Network accessline 163
> 📖 Guide: https://pexo.ai/connect/openclaw - Network accessline 163
> 📖 Guide: https://pexo.ai/connect/openclaw - Network accessline 201
- Confirmation that the request is submitted to Pexo - Estimated time: 15–20 minutes for a short video - Project link: https://pexo.ai/project/{project_id} - Network accessline 201
- Confirmation that the request is submitted to Pexo - Estimated time: 15–20 minutes for a short video - Project link: https://pexo.ai/project/{project_id} - Network accessline 203
- Project link: https://pexo.ai/project/{project_id} - Network accessline 203
- Project link: https://pexo.ai/project/{project_id} - Network accessline 214
Go back to Step 5. Keep repeating. Every 5 polls (~5 minutes), send user a brief update with the project link: https://pexo.ai/project/{project_id} - Network accessline 214
Go back to Step 5. Keep repeating. Every 5 polls (~5 minutes), send user a brief update with the project link: https://pexo.ai/project/{project_id} - Network accessline 216
the project link: https://pexo.ai/project/{project_id} - Network accessline 216
the project link: https://pexo.ai/project/{project_id} - Network accessline 296
Send the FULL URL as plain text, including all query parameters. Example: https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Network accessline 296
Send the FULL URL as plain text, including all query parameters. Example: https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Network accessline 297
Example: https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Project page: https://pexo.ai/project/{project_id} - Network accessline 297
Example: https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Project page: https://pexo.ai/project/{project_id} - Network accessline 298
https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Network accessline 298
https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx - Network accessline 299
- Project page: https://pexo.ai/project/{project_id} - Network accessline 299
- Project page: https://pexo.ai/project/{project_id} - Network accessline 317
Otherwise, send the user a message (in their language) with: - What went wrong (explain nextActionHint in simple terms) - Project page: https://pexo.ai/project/{project_id} - Network accessline 317
Otherwise, send the user a message (in their language) with: - What went wrong (explain nextActionHint in simple terms) - Project page: https://pexo.ai/project/{project_id} - Network accessline 318
- What went wrong (explain nextActionHint in simple terms) - Project page: https://pexo.ai/project/{project_id} - Offer to retry. - Network accessline 318
- What went wrong (explain nextActionHint in simple terms) - Project page: https://pexo.ai/project/{project_id} - Offer to retry. - Network accessline 319
- Project page: https://pexo.ai/project/{project_id} - Network accessline 319
- Project page: https://pexo.ai/project/{project_id} - Network accessline 327
Send the user a message (in their language) with: - The video is taking longer than expected. - Project page: https://pexo.ai/project/{project_id} - Network accessline 327
Send the user a message (in their language) with: - The video is taking longer than expected. - Project page: https://pexo.ai/project/{project_id} - Network accessline 328
- The video is taking longer than expected. - Project page: https://pexo.ai/project/{project_id} - Help guide: https://pexo.ai/connect/openclaw - Network accessline 328
- The video is taking longer than expected. - Project page: https://pexo.ai/project/{project_id} - Help guide: https://pexo.ai/connect/openclaw - Network accessline 329
- Project page: https://pexo.ai/project/{project_id} - Network accessline 329
- Project page: https://pexo.ai/project/{project_id} - Network accessline 330
- Help guide: https://pexo.ai/connect/openclaw - Network accessline 330
- Help guide: https://pexo.ai/connect/openclaw - Network accessline 347
send the user a message (in their language) with: - Their credits are insufficient. - To add credits: visit https://pexo.ai/home?billing=credits - Network accessline 347
send the user a message (in their language) with: - Their credits are insufficient. - To add credits: visit https://pexo.ai/home?billing=credits - Network accessline 348
- Their credits are insufficient. - To add credits: visit https://pexo.ai/home?billing=credits and complete the purchase flow. - Network accessline 348
- Their credits are insufficient. - To add credits: visit https://pexo.ai/home?billing=credits and complete the purchase flow. - Network accessline 349
- To add credits: visit https://pexo.ai/home?billing=credits - Network accessline 349
- To add credits: visit https://pexo.ai/home?billing=credits - Network accessline 367
Pexo can process a public `https://` webpage URL when it is included verbatim in the user's brief. Pass that webpage URL to Pexo; do not scrape or download the page locally. - Network accessline 367
Pexo can process a public `https://` webpage URL when it is included verbatim in the user's brief. Pass that webpage URL to Pexo; do not scrape or download the page locally. - Network accessline 370
For a direct image, video, or audio file URL, ask for explicit approval before downloading it, then upload the downloaded file. Only fetch public `https://` URLs. Never fetch `http://`, - Network accessline 370
For a direct image, video, or audio file URL, ask for explicit approval before downloading it, then upload the downloaded file. Only fetch public `https://` URLs. Never fetch `http://`, - Network accessline 371
then upload the downloaded file. Only fetch public `https://` URLs. Never fetch `http://`, - Network accessline 371
then upload the downloaded file. Only fetch public `https://` URLs. Never fetch `http://`,
skills/pexo-agent/references/SETUP-CHECKLIST.md
- Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 24
Get your API key at: https://pexo.ai - Network accessline 24
Get your API key at: https://pexo.ai - Network accessline 26
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 26
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 27
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 27
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 35
The next command makes outbound HTTPS requests only to `https://pexo.ai`. It performs - Network accessline 35
The next command makes outbound HTTPS requests only to `https://pexo.ai`. It performs - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Network accessline 55
The next command sends an authenticated project-list request to `https://pexo.ai` and may - Network accessline 55
The next command sends an authenticated project-list request to `https://pexo.ai` and may - Network accessline 66
### "PEXO_BASE_URL must be exactly https://pexo.ai" - Network accessline 66
### "PEXO_BASE_URL must be exactly https://pexo.ai" - Network accessline 68
Authenticated requests are restricted to the production Pexo origin. Remove any custom base URL override, or set it to exactly `https://pexo.ai`. - Network accessline 68
Authenticated requests are restricted to the production Pexo origin. Remove any custom base URL override, or set it to exactly `https://pexo.ai`. - Network accessline 69
URL override, or set it to exactly `https://pexo.ai`. - Network accessline 69
URL override, or set it to exactly `https://pexo.ai`. - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Network accessline 77
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 77
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 84
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 84
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 85
brew install curl jq - Network accessline 85
brew install curl jq - Network accessline 87
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 87
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 88
apt-get install -y curl jq file - Network accessline 88
apt-get install -y curl jq file - Network accessline 90
# CentOS/RHEL yum install -y curl jq file - Network accessline 90
# CentOS/RHEL yum install -y curl jq file - Network accessline 91
yum install -y curl jq file - Network accessline 91
yum install -y curl jq file - Network accessline 96
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 96
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 97
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 97
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 109
| Variable | Description | Required | |---|---|---| | `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | - Network accessline 109
| Variable | Description | Required | |---|---|---| | `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | - Network accessline 110
|---|---|---| | `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | | `PEXO_API_KEY` | Your Pexo API key (starts with `sk-`) | Yes | - Network accessline 110
|---|---|---| | `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | | `PEXO_API_KEY` | Your Pexo API key (starts with `sk-`) | Yes | - Network accessline 111
| `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | - Network accessline 111
| `PEXO_BASE_URL` | Optional compatibility override; if set, must be exactly `https://pexo.ai` | No | - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted]
skills/pexo-agent/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 185
[Credential-related source omitted] - Access to secretsline 185
[Credential-related source omitted] - Network accessline 198
1. Explain the credit restriction to the user. 2. Direct them to `https://pexo.ai/home?billing=credits` and have them complete the purchase flow. - Network accessline 198
1. Explain the credit restriction to the user. 2. Direct them to `https://pexo.ai/home?billing=credits` and have them complete the purchase flow. - Network accessline 199
2. Direct them to `https://pexo.ai/home?billing=credits` and have them complete the purchase flow. - Network accessline 199
2. Direct them to `https://pexo.ai/home?billing=credits` and have them complete the purchase flow. - Network accessline 227
1. Tell the user prominently that production stopped because the account has insufficient credits. 2. Direct them to top up credits at `https://pexo.ai/home?billing=credits`. - Network accessline 227
1. Tell the user prominently that production stopped because the account has insufficient credits. 2. Direct them to top up credits at `https://pexo.ai/home?billing=credits`. - Network accessline 228
2. Direct them to top up credits at `https://pexo.ai/home?billing=credits`. - Network accessline 228
2. Direct them to top up credits at `https://pexo.ai/home?billing=credits`. - Access to secretsline 287
[Credential-related source omitted] - Access to secretsline 287
[Credential-related source omitted]
skills/pexo-agent/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 8
_PEXO_CONFIG="${PEXO_CONFIG:-$HOME/.pexo/config}" _PEXO_PRODUCTION_BASE_URL="https://pexo.ai" - Network accessline 8
_PEXO_CONFIG="${PEXO_CONFIG:-$HOME/.pexo/config}" _PEXO_PRODUCTION_BASE_URL="https://pexo.ai" - Network accessline 9
_PEXO_PRODUCTION_BASE_URL="https://pexo.ai" - Network accessline 9
_PEXO_PRODUCTION_BASE_URL="https://pexo.ai" - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Network accessline 101
if [[ -n "$requested" && "$requested" != "$_PEXO_PRODUCTION_BASE_URL" ]]; then - Network accessline 101
if [[ -n "$requested" && "$requested" != "$_PEXO_PRODUCTION_BASE_URL" ]]; then - Network accessline 102
printf 'PEXO_BASE_URL must be exactly %s; refusing to send credentials to %s\n' "$_PEXO_PRODUCTION_BASE_URL" "$requested" >&2 - Network accessline 102
printf 'PEXO_BASE_URL must be exactly %s; refusing to send credentials to %s\n' "$_PEXO_PRODUCTION_BASE_URL" "$requested" >&2 - Network accessline 103
"$_PEXO_PRODUCTION_BASE_URL" "$requested" >&2 - Network accessline 103
"$_PEXO_PRODUCTION_BASE_URL" "$requested" >&2 - Network accessline 107
export PEXO_BASE_URL="$_PEXO_PRODUCTION_BASE_URL" - Network accessline 107
export PEXO_BASE_URL="$_PEXO_PRODUCTION_BASE_URL" - Access to secretsline 170
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted] - Access to secretsline 171
[Credential-related source omitted] - Access to secretsline 171
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted] - Network accessline 243
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 243
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 244
jq -nc \ - Network accessline 244
jq -nc \ - Network accessline 297
jq -nc \ - Network accessline 297
jq -nc \ - Network accessline 320
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 320
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 321
http_code=$(curl -sS \ - Network accessline 321
http_code=$(curl -sS \ - Network accessline 330
-d "$body" \ "$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Network accessline 330
-d "$body" \ "$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Network accessline 331
"$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else - Network accessline 331
"$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else - Network accessline 332
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 332
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 333
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 333
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 334
http_code=$(curl -sS \ - Network accessline 334
http_code=$(curl -sS \ - Network accessline 342
-w '%{http_code}' \ "$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Network accessline 342
-w '%{http_code}' \ "$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Network accessline 343
"$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? fi - Network accessline 343
"$@" \ "${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? fi - Network accessline 344
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Network accessline 344
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? - Dangerous shell operationline 352
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 352
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 358
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 358
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 363
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 363
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 395
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 395
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 396
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 396
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 397
curl -sS -N \ - Network accessline 397
curl -sS -N \ - Network accessline 404
-D "$header_file" \ -d "$body" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Network accessline 404
-D "$header_file" \ -d "$body" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Network accessline 405
-d "$body" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null else - Network accessline 405
-d "$body" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null else - Network accessline 406
"${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null else curl -sS -N \ - Network accessline 406
"${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null else curl -sS -N \ - Network accessline 407
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 407
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 408
curl -sS -N \ - Network accessline 408
curl -sS -N \ - Network accessline 414
-H "Accept: text/event-stream" \ -D "$header_file" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Network accessline 414
-H "Accept: text/event-stream" \ -D "$header_file" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Network accessline 415
-D "$header_file" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null fi - Network accessline 415
-D "$header_file" \ "${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null fi - Network accessline 416
"${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Network accessline 416
"${PEXO_BASE_URL}${path}" 2>"$err_file" | tee "$body_file" | sed '/^: stream opened$/q' >/dev/null - Dangerous shell operationline 427
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 427
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 432
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 432
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 438
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 438
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 443
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 443
rm -f "$body_file" "$header_file" "$err_file"
skills/pexo-agent/scripts/pexo-asset-get.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 108
http_code=$(curl -sS -L \ - Network accessline 108
http_code=$(curl -sS -L \ - Dangerous shell operationline 117
rm -f "$part_path" "$err_file" - Dangerous shell operationline 117
rm -f "$part_path" "$err_file" - Dangerous shell operationline 123
rm -f "$part_path" - Dangerous shell operationline 123
rm -f "$part_path" - Dangerous shell operationline 124
rm -f "$err_file" - Dangerous shell operationline 124
rm -f "$err_file" - Dangerous shell operationline 129
rm -f "$err_file" - Dangerous shell operationline 129
rm -f "$err_file"
skills/pexo-agent/scripts/pexo-billing-confirm.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 100
ts=$(date +%s000) body=$(jq -nc \ - Network accessline 100
ts=$(date +%s000) body=$(jq -nc \ - Network accessline 101
body=$(jq -nc \ - Network accessline 101
body=$(jq -nc \ - Network accessline 123
jq -nc --arg pid "$pid" --arg confirmation_id "$confirmation_id" '{ - Network accessline 123
jq -nc --arg pid "$pid" --arg confirmation_id "$confirmation_id" '{
skills/pexo-agent/scripts/pexo-chat.sh
skills/pexo-agent/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 88
else echo "$FAIL Config file not found: $config_path" echo " Create an owner-only config with the API key copied from https://pexo.ai." - Network accessline 88
else echo "$FAIL Config file not found: $config_path" echo " Create an owner-only config with the API key copied from https://pexo.ai." - Network accessline 89
echo "$FAIL Config file not found: $config_path" echo " Create an owner-only config with the API key copied from https://pexo.ai." echo " Follow references/SETUP-CHECKLIST.md; it reads the key without echoing it." - Network accessline 89
echo "$FAIL Config file not found: $config_path" echo " Create an owner-only config with the API key copied from https://pexo.ai." echo " Follow references/SETUP-CHECKLIST.md; it reads the key without echoing it." - Network accessline 90
echo " Create an owner-only config with the API key copied from https://pexo.ai." - Network accessline 90
echo " Create an owner-only config with the API key copied from https://pexo.ai." - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 116
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 116
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 117
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted] - Network accessline 118
echo " Get your API key at: https://pexo.ai" - Network accessline 118
echo " Get your API key at: https://pexo.ai" - Network accessline 123
echo "" for cmd in curl jq file; do - Network accessline 123
echo "" for cmd in curl jq file; do - Network accessline 124
for cmd in curl jq file; do - Network accessline 124
for cmd in curl jq file; do - Network accessline 140
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 140
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 141
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 141
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 142
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 142
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Network accessline 157
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 157
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 158
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 158
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 159
[Credential-related source omitted] - Network accessline 159
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Dangerous shell operationline 168
rm -f "$tmp_body" "$tmp_err" - Dangerous shell operationline 168
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 175
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Network accessline 176
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 176
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 177
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 177
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 178
echo " Get a new key at: https://pexo.ai" - Network accessline 178
echo " Get a new key at: https://pexo.ai" - Network accessline 193
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 193
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 194
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 194
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 195
echo " Curl error: ${curl_err:-unknown}" - Network accessline 195
echo " Curl error: ${curl_err:-unknown}"
skills/pexo-agent/scripts/pexo-project-create.sh
skills/pexo-agent/scripts/pexo-project-get.sh
skills/pexo-agent/scripts/pexo-project-list.sh
skills/pexo-agent/scripts/pexo-upload.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 83
http_code=$(curl -sS -X PUT -H "Content-Type: $mime_type" \ - Network accessline 83
http_code=$(curl -sS -X PUT -H "Content-Type: $mime_type" \ - Network accessline 89
finalize_body=$(jq -nc \ - Network accessline 89
finalize_body=$(jq -nc \
skills/product-video/README.md
skills/product-video/SKILL.md
- Network accessline 7
e-commerce/product clips: "product video", "video for my product", "ecommerce video", "video from product photos". NOT for explainer or non-product content. homepage: https://pexo.ai - Network accessline 8
from product photos". NOT for explainer or non-product content. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "sneaker product video") pexo-chat.sh "$pid" "Make a 20-second product video from these three sneaker photos." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 20-second product video from these three sneaker photos." # 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 - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/product-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/product-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/product-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/product-video/scripts/pexo-asset-get.sh
skills/product-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/product-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/product-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/product-video/scripts/pexo-project-create.sh
skills/product-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/product-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/product-video/scripts/pexo-upload.sh
skills/saas-video/README.md
skills/saas-video/SKILL.md
- Network accessline 7
sales. Use for SaaS and software videos: "saas video", "saas demo video", "software demo", "app explainer video". NOT for live screen recording — Pexo generates the visuals. homepage: https://pexo.ai - Network accessline 8
explainer video". NOT for live screen recording — Pexo generates the visuals. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "SaaS demo video") pexo-chat.sh "$pid" "Make a 60-second demo video for our SaaS that automates expense reports." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 60-second demo video for our SaaS that automates expense reports." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid # Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, then deliver - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/saas-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/saas-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/saas-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/saas-video/scripts/pexo-asset-get.sh
skills/saas-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/saas-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/saas-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/saas-video/scripts/pexo-project-create.sh
skills/saas-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/saas-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/saas-video/scripts/pexo-upload.sh
skills/startup-video/README.md
skills/startup-video/SKILL.md
- Network accessline 7
Use for startup brand and intro videos: "startup video", "video for my startup", "company intro video", "about us video". NOT for paid ad campaigns (use the video-ad skill). homepage: https://pexo.ai - Network accessline 8
video", "about us video". NOT for paid ad campaigns (use the video-ad skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "startup intro video") pexo-chat.sh "$pid" "Make a 30-second intro video for our startup — a marketplace for local farmers." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 30-second intro video for our startup — a marketplace for local farmers." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid # Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, then d - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/startup-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/startup-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/startup-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/startup-video/scripts/pexo-asset-get.sh
skills/startup-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/startup-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/startup-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/startup-video/scripts/pexo-project-create.sh
skills/startup-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/startup-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/startup-video/scripts/pexo-upload.sh
skills/text-to-video/README.md
skills/text-to-video/SKILL.md
- Network accessline 8
video", "generate a video from this description". NOT for editing an existing video or turning an image into video (use the image-to-video skill). homepage: https://pexo.ai - Network accessline 9
turning an image into video (use the image-to-video skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 10
homepage: https://pexo.ai - Network accessline 11
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 14
[Credential-related source omitted] - Network accessline 22
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 40
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 41
[Credential-related source omitted] - Network accessline 54
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/<pro - Network accessline 55
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 `nextAct - Network accessline 56
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 70
- 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; a - Network accessline 71
- **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. - Network accessline 72
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 83
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` - Network accessline 84
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 92
pid=$(pexo-project-create.sh "coffee subscription promo") pexo-chat.sh "$pid" "Make a 30-second video about our new coffee subscription." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 93
pexo-chat.sh "$pid" "Make a 30-second video about our new coffee subscription." # 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. - Network accessline 94
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/text-to-video/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/text-to-video/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/text-to-video/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/text-to-video/scripts/pexo-asset-get.sh
skills/text-to-video/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/text-to-video/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/text-to-video/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/text-to-video/scripts/pexo-project-create.sh
skills/text-to-video/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/text-to-video/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/text-to-video/scripts/pexo-upload.sh
skills/tiktok-video-ad/README.md
skills/tiktok-video-ad/SKILL.md
- Network accessline 7
ad", "tiktok video ad", "ad for tiktok", "vertical video ad". NOT for landscape or long-form ads (use the video-ad skill). homepage: https://pexo.ai - Network accessline 8
(use the video-ad skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "skincare serum TikTok ad") pexo-chat.sh "$pid" "Make a TikTok ad for our skincare serum." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a TikTok ad for our skincare serum." # 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. - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/tiktok-video-ad/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/tiktok-video-ad/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/tiktok-video-ad/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/tiktok-video-ad/scripts/pexo-asset-get.sh
skills/tiktok-video-ad/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/tiktok-video-ad/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/tiktok-video-ad/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/tiktok-video-ad/scripts/pexo-project-create.sh
skills/tiktok-video-ad/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/tiktok-video-ad/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/tiktok-video-ad/scripts/pexo-upload.sh
skills/video-ad/README.md
skills/video-ad/SKILL.md
- Network accessline 7
"make an ad", "product ad", "promo video", "commercial". NOT for explainer or tutorial content (use the explainer-video skill). homepage: https://pexo.ai - Network accessline 8
(use the explainer-video skill). homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
pid=$(pexo-project-create.sh "running shoes ad") pexo-chat.sh "$pid" "Make a 15-second video ad for our new running shoes." # Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid - Network accessline 91
pexo-chat.sh "$pid" "Make a 15-second video ad for our new running shoes." # 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. - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/video-ad/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/video-ad/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/video-ad/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/video-ad/scripts/pexo-asset-get.sh
skills/video-ad/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/video-ad/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/video-ad/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/video-ad/scripts/pexo-project-create.sh
skills/video-ad/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/video-ad/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/video-ad/scripts/pexo-upload.sh
skills/videoagent-audio-studio/SKILL.md
- Network accessline 15
description: > Tired of juggling multiple audio APIs? This skill gives you one-command access to TTS, music generation, sound effects, and voice cloning. Use when you want to generate any audio without managing multiple API keys. homepage - Network accessline 15
description: > Tired of juggling multiple audio APIs? This skill gives you one-command access to TTS, music generation, sound effects, and voice cloning. Use when you want to generate any audio without managing multiple API keys. homepage - Network accessline 16
Tired of juggling multiple audio APIs? This skill gives you one-command access to TTS, music generation, sound effects, and voice cloning. Use when you want to generate any audio without managing multiple API keys. homepage: https://github. - Network accessline 16
Tired of juggling multiple audio APIs? This skill gives you one-command access to TTS, music generation, sound effects, and voice cloning. Use when you want to generate any audio without managing multiple API keys. homepage: https://github. - Network accessline 17
homepage: https://github.com/pexoai/audiomind-skill - Network accessline 17
homepage: https://github.com/pexoai/audiomind-skill - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Network accessline 167
Get your key at [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys). - Network accessline 167
Get your key at [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys). - Network accessline 175
Get your key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 175
Get your key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 195
| Variable | Required For | Where to Get | |---|---|---| | `ELEVENLABS_API_KEY` | TTS, SFX, Voice Clone | [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys) | - Network accessline 195
| Variable | Required For | Where to Get | |---|---|---| | `ELEVENLABS_API_KEY` | TTS, SFX, Voice Clone | [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys) | - Network accessline 196
|---|---|---| | `ELEVENLABS_API_KEY` | TTS, SFX, Voice Clone | [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys) | | `FAL_KEY` | Music generation | [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys) | - Network accessline 196
|---|---|---| | `ELEVENLABS_API_KEY` | TTS, SFX, Voice Clone | [elevenlabs.io/app/settings/api-keys](https://elevenlabs.io/app/settings/api-keys) | | `FAL_KEY` | Music generation | [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys) | - Network accessline 197
[Credential-related source omitted] - Network accessline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Network accessline 198
| `FAL_KEY` | Music generation | [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys) | - Network accessline 198
| `FAL_KEY` | Music generation | [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys) | - Network accessline 204
export AUDIOMIND_PROXY_URL="https://your-domain.com/api/audio" - Network accessline 204
export AUDIOMIND_PROXY_URL="https://your-domain.com/api/audio" - Network accessline 213
"videoagent-audio-studio": { "env": { "AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" - Network accessline 213
"videoagent-audio-studio": { "env": { "AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" - Network accessline 214
"env": { "AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" } - Network accessline 214
"env": { "AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" } - Network accessline 215
"AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" - Network accessline 215
"AUDIOMIND_PROXY_URL": "https://your-domain.com/api/audio" - Access to secretsline 247
[Credential-related source omitted] - Access to secretsline 247
[Credential-related source omitted]
skills/videoagent-audio-studio/cli.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 16
const PROXY_URL = process.env.AUDIOMIND_PROXY_URL || "https://audiomind-proxy.vercel.app/api/audio"; - Network accessline 16
const PROXY_URL = process.env.AUDIOMIND_PROXY_URL || "https://audiomind-proxy.vercel.app/api/audio"; - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Network accessline 107
attempt += 1; await sleep(intervalSeconds * 1000); const res = await fetch(statusUrl, { method: "GET", headers }); - Network accessline 107
attempt += 1; await sleep(intervalSeconds * 1000); const res = await fetch(statusUrl, { method: "GET", headers }); - Network accessline 108
await sleep(intervalSeconds * 1000); const res = await fetch(statusUrl, { method: "GET", headers }); const data = await res.json().catch(() => ({})); - Network accessline 108
await sleep(intervalSeconds * 1000); const res = await fetch(statusUrl, { method: "GET", headers }); const data = await res.json().catch(() => ({})); - Network accessline 109
const res = await fetch(statusUrl, { method: "GET", headers }); - Network accessline 109
const res = await fetch(statusUrl, { method: "GET", headers }); - Network accessline 145
try { const res = await fetch(PROXY_URL, { - Network accessline 145
try { const res = await fetch(PROXY_URL, { - Network accessline 146
const res = await fetch(PROXY_URL, { - Network accessline 146
const res = await fetch(PROXY_URL, {
skills/videoagent-audio-studio/proxy/api/audio.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 51
const response = await fetch( - Network accessline 51
const response = await fetch( - Network accessline 52
`https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`, - Network accessline 52
`https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`, - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 96
const response = await fetch( - Network accessline 96
const response = await fetch( - Network accessline 97
"https://api.elevenlabs.io/v1/sound-generation", - Network accessline 97
"https://api.elevenlabs.io/v1/sound-generation", - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 190
[Credential-related source omitted] - Access to secretsline 190
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted]
skills/videoagent-audio-studio/proxy/api/stats.js
skills/videoagent-audio-studio/proxy/package-lock.json
- Network accessline 15
"node_modules/@fal-ai/client": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 15
"node_modules/@fal-ai/client": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 16
"version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", "integrity": "sha512-mDjF2QDq+oficSSxzmErNkseQeRXnvUBEhJy39n4PPe7jRPZeSqM2SNb27SW50rDtCtay+stwFU8zRZehlt1Qg==", - Network accessline 16
"version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", "integrity": "sha512-mDjF2QDq+oficSSxzmErNkseQeRXnvUBEhJy39n4PPe7jRPZeSqM2SNb27SW50rDtCtay+stwFU8zRZehlt1Qg==", - Network accessline 17
"resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 17
"resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 29
"node_modules/@msgpack/msgpack": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 29
"node_modules/@msgpack/msgpack": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 30
"version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", "integrity": "sha512-47XIizs9XZXvuJgoaJUIE2lFoID8ugvc0jzSHP+Ptfk8nTbnR8g788wv48N03Kx0UkAv559HWRQ3yzOgzlRNUA==", - Network accessline 30
"version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", "integrity": "sha512-47XIizs9XZXvuJgoaJUIE2lFoID8ugvc0jzSHP+Ptfk8nTbnR8g788wv48N03Kx0UkAv559HWRQ3yzOgzlRNUA==", - Network accessline 31
"resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 31
"resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 38
"node_modules/@upstash/redis": { "version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 38
"node_modules/@upstash/redis": { "version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 39
"version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", "integrity": "sha512-wxo1ei4OHDHm4UGMgrNVz9QUEela9N/Iwi4p1JlHNSowQiPi+eljlGnfbZVkV0V4PIrjGtGFJt5GjWM5k28enA==", - Network accessline 39
"version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", "integrity": "sha512-wxo1ei4OHDHm4UGMgrNVz9QUEela9N/Iwi4p1JlHNSowQiPi+eljlGnfbZVkV0V4PIrjGtGFJt5GjWM5k28enA==", - Network accessline 40
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 40
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 47
"node_modules/eventsource-parser": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 47
"node_modules/eventsource-parser": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 48
"version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", - Network accessline 48
"version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", - Network accessline 49
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 49
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 56
"node_modules/robot3": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 56
"node_modules/robot3": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 57
"version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", "integrity": "sha512-hzjy826lrxzx8eRgv80idkf8ua1JAepRc9Efdtj03N3KNJuznQCPlyCJ7gnUmDFwZCLQjxy567mQVKmdv2BsXQ==", - Network accessline 57
"version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", "integrity": "sha512-hzjy826lrxzx8eRgv80idkf8ua1JAepRc9Efdtj03N3KNJuznQCPlyCJ7gnUmDFwZCLQjxy567mQVKmdv2BsXQ==", - Network accessline 58
"resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 58
"resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 62
"node_modules/uncrypto": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 62
"node_modules/uncrypto": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 63
"version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - Network accessline 63
"version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - Network accessline 64
"resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 64
"resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
skills/videoagent-audio-studio/proxy/package.json
skills/videoagent-audio-studio/proxy/usage-store.js
skills/videoagent-audio-studio/tools/start_server.sh
- Executable scriptline 1
#!/bin/bash - Executable scriptline 1
#!/bin/bash - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted]
skills/videoagent-director/README.md
- Network accessline 99
| Variable | Default | Description | |----------|---------|-------------| | `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | - Network accessline 99
| Variable | Default | Description | |----------|---------|-------------| | `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | - Network accessline 100
|----------|---------|-------------| | `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | | `VIDEO_PROXY_URL` | `https://pexo-video-deploy.vercel.app` | Video generation proxy | - Network accessline 100
|----------|---------|-------------| | `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | | `VIDEO_PROXY_URL` | `https://pexo-video-deploy.vercel.app` | Video generation proxy | - Network accessline 101
| `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | - Network accessline 101
| `IMAGE_PROXY_URL` | `https://image-gen-proxy.vercel.app` | Image generation proxy | - Network accessline 102
| `VIDEO_PROXY_URL` | `https://pexo-video-deploy.vercel.app` | Video generation proxy | - Network accessline 102
| `VIDEO_PROXY_URL` | `https://pexo-video-deploy.vercel.app` | Video generation proxy | - Network accessline 103
| `AUDIO_PROXY_URL` | `https://audiomind-proxy.vercel.app` | Audio proxy | - Network accessline 103
| `AUDIO_PROXY_URL` | `https://audiomind-proxy.vercel.app` | Audio proxy |
skills/videoagent-director/package.json
skills/videoagent-director/tools/director.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 20
* # Animate an existing image * node director.js \ * --image-url "https://example.com/frame.jpg" \ - Network accessline 20
* # Animate an existing image * node director.js \ * --image-url "https://example.com/frame.jpg" \ - Network accessline 21
* node director.js * --image-url "https://example.com/frame.jpg" - Network accessline 21
* node director.js * --image-url "https://example.com/frame.jpg" - Network accessline 22
* --image-url "https://example.com/frame.jpg" \ - Network accessline 22
* --image-url "https://example.com/frame.jpg" \ - Network accessline 39
const IMAGE_PROXY = process.env.IMAGE_PROXY_URL || "https://image-gen-proxy.vercel.app"; - Network accessline 39
const IMAGE_PROXY = process.env.IMAGE_PROXY_URL || "https://image-gen-proxy.vercel.app"; - Network accessline 40
const VIDEO_PROXY = process.env.VIDEO_PROXY_URL || "https://pexo-video-deploy.vercel.app"; - Network accessline 40
const VIDEO_PROXY = process.env.VIDEO_PROXY_URL || "https://pexo-video-deploy.vercel.app"; - Network accessline 41
const AUDIO_PROXY = process.env.AUDIO_PROXY_URL || "https://audiomind-proxy.vercel.app"; - Network accessline 41
const AUDIO_PROXY = process.env.AUDIO_PROXY_URL || "https://audiomind-proxy.vercel.app"; - Network accessline 60
async function post(url, body, headers = {}) { const res = await fetch(url, { - Network accessline 60
async function post(url, body, headers = {}) { const res = await fetch(url, { - Network accessline 61
const res = await fetch(url, { - Network accessline 61
const res = await fetch(url, { - Network accessline 71
async function get(url, headers = {}) { const res = await fetch(url, { headers }); - Network accessline 71
async function get(url, headers = {}) { const res = await fetch(url, { headers }); - Network accessline 72
const res = await fetch(url, { headers }); - Network accessline 72
const res = await fetch(url, { headers }); - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted]
skills/videoagent-image-studio/.env.example
- Network accessline 1
# ── Client-side (optional) ────────────────────────────────────────────────── # Custom proxy URL — leave empty to use the default hosted proxy # IMAGE_STUDIO_PROXY_URL=https://your-proxy.vercel.app/api/image - Network accessline 1
# ── Client-side (optional) ────────────────────────────────────────────────── # Custom proxy URL — leave empty to use the default hosted proxy # IMAGE_STUDIO_PROXY_URL=https://your-proxy.vercel.app/api/image - Network accessline 3
# IMAGE_STUDIO_PROXY_URL=https://your-proxy.vercel.app/api/image - Network accessline 3
# IMAGE_STUDIO_PROXY_URL=https://your-proxy.vercel.app/api/image - Access to secretsline 6
[Credential-related source omitted] - Access to secretsline 6
[Credential-related source omitted] - Network accessline 8
# ── Server-side (only needed if self-hosting the proxy) ───────────────────── # fal.ai API Key — required for Flux, SDXL, Nano Banana, Ideogram, Recraft # Get it at: https://fal.ai/dashboard/keys - Network accessline 8
# ── Server-side (only needed if self-hosting the proxy) ───────────────────── # fal.ai API Key — required for Flux, SDXL, Nano Banana, Ideogram, Recraft # Get it at: https://fal.ai/dashboard/keys - Network accessline 9
# fal.ai API Key — required for Flux, SDXL, Nano Banana, Ideogram, Recraft # Get it at: https://fal.ai/dashboard/keys # FAL_KEY=your_fal_key_here - Network accessline 9
# fal.ai API Key — required for Flux, SDXL, Nano Banana, Ideogram, Recraft # Get it at: https://fal.ai/dashboard/keys # FAL_KEY=your_fal_key_here - Network accessline 10
# Get it at: https://fal.ai/dashboard/keys - Network accessline 10
# Get it at: https://fal.ai/dashboard/keys - Network accessline 13
# Legnext.ai API Key — required for Midjourney # Get it at: https://legnext.ai/dashboard - Network accessline 13
# Legnext.ai API Key — required for Midjourney # Get it at: https://legnext.ai/dashboard - Network accessline 14
# Get it at: https://legnext.ai/dashboard - Network accessline 14
# Get it at: https://legnext.ai/dashboard
skills/videoagent-image-studio/CHANGELOG.md
- Network accessline 5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Network accessline 5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Network accessline 6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Network accessline 6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 50
### Migration Guide If you were using `TTAPI_KEY`, please: 1. Register at [legnext.ai](https://legnext.ai) and get your API key. - Network accessline 50
### Migration Guide If you were using `TTAPI_KEY`, please: 1. Register at [legnext.ai](https://legnext.ai) and get your API key. - Network accessline 51
If you were using `TTAPI_KEY`, please: 1. Register at [legnext.ai](https://legnext.ai) and get your API key. 2. Update `~/.openclaw/openclaw.json`: rename `TTAPI_KEY` to `LEGNEXT_KEY` and set your new key. - Network accessline 51
If you were using `TTAPI_KEY`, please: 1. Register at [legnext.ai](https://legnext.ai) and get your API key. 2. Update `~/.openclaw/openclaw.json`: rename `TTAPI_KEY` to `LEGNEXT_KEY` and set your new key. - Network accessline 52
1. Register at [legnext.ai](https://legnext.ai) and get your API key. - Network accessline 52
1. Register at [legnext.ai](https://legnext.ai) and get your API key.
skills/videoagent-image-studio/CONTRIBUTING.md
- Network accessline 21
# 1. Clone the repository git clone https://github.com/pexoai/videoagent-image-studio.git - Network accessline 21
# 1. Clone the repository git clone https://github.com/pexoai/videoagent-image-studio.git - Network accessline 22
git clone https://github.com/pexoai/videoagent-image-studio.git - Network accessline 22
git clone https://github.com/pexoai/videoagent-image-studio.git - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 66
- **Branch naming**: `feature/xxx`, `fix/xxx`, `chore/xxx` - **Commit format**: Use [Conventional Commits](https://www.conventionalcommits.org/) - Network accessline 66
- **Branch naming**: `feature/xxx`, `fix/xxx`, `chore/xxx` - **Commit format**: Use [Conventional Commits](https://www.conventionalcommits.org/) - Network accessline 67
- **Commit format**: Use [Conventional Commits](https://www.conventionalcommits.org/) - Network accessline 67
- **Commit format**: Use [Conventional Commits](https://www.conventionalcommits.org/) - Network accessline 93
**Q: Where do I get FAL_KEY?** A: Create an API Key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 93
**Q: Where do I get FAL_KEY?** A: Create an API Key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 94
A: Create an API Key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 94
A: Create an API Key at [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys). - Network accessline 96
**Q: Where do I get LEGNEXT_KEY?** A: Get an API Key at [legnext.ai/dashboard](https://legnext.ai/dashboard). - Network accessline 96
**Q: Where do I get LEGNEXT_KEY?** A: Get an API Key at [legnext.ai/dashboard](https://legnext.ai/dashboard). - Network accessline 97
A: Get an API Key at [legnext.ai/dashboard](https://legnext.ai/dashboard). - Network accessline 97
A: Get an API Key at [legnext.ai/dashboard](https://legnext.ai/dashboard).
skills/videoagent-image-studio/SKILL.md
- Network accessline 15
description: > Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys. homepage: https://gith - Network accessline 15
description: > Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys. homepage: https://gith - Network accessline 16
Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys. homepage: https://github.com/pexoai/ima - Network accessline 16
Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys. homepage: https://github.com/pexoai/ima - Network accessline 17
homepage: https://github.com/pexoai/image-studio-skill - Network accessline 17
homepage: https://github.com/pexoai/image-studio-skill - Network accessline 87
"success": true, "model": "flux-pro", "imageUrl": "https://...", - Network accessline 87
"success": true, "model": "flux-pro", "imageUrl": "https://...", - Network accessline 88
"model": "flux-pro", "imageUrl": "https://...", "images": ["https://..."] - Network accessline 88
"model": "flux-pro", "imageUrl": "https://...", "images": ["https://..."] - Network accessline 89
"imageUrl": "https://...", - Network accessline 89
"imageUrl": "https://...", - Network accessline 90
"images": ["https://..."] - Network accessline 90
"images": ["https://..."] - Network accessline 197
"enabled": true, "env": { "IMAGE_STUDIO_PROXY_URL": "https://your-proxy.vercel.app", - Network accessline 197
"enabled": true, "env": { "IMAGE_STUDIO_PROXY_URL": "https://your-proxy.vercel.app", - Network accessline 198
[Credential-related source omitted] - Network accessline 198
[Credential-related source omitted] - Network accessline 199
"IMAGE_STUDIO_PROXY_URL": "https://your-proxy.vercel.app", - Network accessline 199
"IMAGE_STUDIO_PROXY_URL": "https://your-proxy.vercel.app", - Network accessline 208
| Variable | Required | Description | |---|---|---| | `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) | - Network accessline 208
| Variable | Required | Description | |---|---|---| | `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) | - Network accessline 209
|---|---|---| | `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) | | `IMAGE_STUDIO_TOKEN` | No | Persistent token (auto-obtained if not set, 100 free uses per token) | - Network accessline 209
|---|---|---| | `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) | | `IMAGE_STUDIO_TOKEN` | No | Persistent token (auto-obtained if not set, 100 free uses per token) | - Network accessline 210
| `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) | - Network accessline 210
| `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) |
skills/videoagent-image-studio/package.json
skills/videoagent-image-studio/tools/generate.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 15
const PROXY_BASE = process.env.IMAGE_STUDIO_PROXY_URL || "https://image-gen-proxy.vercel.app"; - Network accessline 15
const PROXY_BASE = process.env.IMAGE_STUDIO_PROXY_URL || "https://image-gen-proxy.vercel.app"; - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Network accessline 51
process.stderr.write("[ImageStudio] No token found, requesting free token...\n"); const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 51
process.stderr.write("[ImageStudio] No token found, requesting free token...\n"); const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 52
const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 52
const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 96
const res = await fetch(`${PROXY_BASE}/api/midjourney`, { - Network accessline 96
const res = await fetch(`${PROXY_BASE}/api/midjourney`, { - Network accessline 123
const res = await fetch(`${PROXY_BASE}/api/generate`, { - Network accessline 123
const res = await fetch(`${PROXY_BASE}/api/generate`, {
skills/videoagent-video-studio/README.md
- Network accessline 24
# Image-to-video node tools/generate.js --mode image-to-video --prompt "Slowly pan right" --image-url "https://..." --model minimax - Network accessline 24
# Image-to-video node tools/generate.js --mode image-to-video --prompt "Slowly pan right" --image-url "https://..." --model minimax - Network accessline 25
node tools/generate.js --mode image-to-video --prompt "Slowly pan right" --image-url "https://..." --model minimax - Network accessline 25
node tools/generate.js --mode image-to-video --prompt "Slowly pan right" --image-url "https://..." --model minimax - Network accessline 77
export VIDEO_STUDIO_PROXY_URL=https://your-proxy.vercel.app - Network accessline 77
export VIDEO_STUDIO_PROXY_URL=https://your-proxy.vercel.app - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Network accessline 88
# Terminal 2: use the CLI export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 88
# Terminal 2: use the CLI export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 89
export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 89
export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 96
export VIDEO_STUDIO_PROXY_URL=https://your-proxy.vercel.app - Network accessline 96
export VIDEO_STUDIO_PROXY_URL=https://your-proxy.vercel.app - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted]
skills/videoagent-video-studio/SKILL.md
- Network accessline 122
"success": true, "mode": "text-to-video", "videoUrl": "https://...", - Network accessline 122
"success": true, "mode": "text-to-video", "videoUrl": "https://...", - Network accessline 123
"mode": "text-to-video", "videoUrl": "https://...", "duration": 5, - Network accessline 123
"mode": "text-to-video", "videoUrl": "https://...", "duration": 5, - Network accessline 124
"videoUrl": "https://...", - Network accessline 124
"videoUrl": "https://...", - Network accessline 151
node {baseDir}/tools/generate.js --mode image-to-video --prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" --image-url "https://..." - Network accessline 151
node {baseDir}/tools/generate.js --mode image-to-video --prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" --image-url "https://..." - Network accessline 152
--mode image-to-video \ --prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \ --image-url "https://..." \ - Network accessline 152
--mode image-to-video \ --prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \ --image-url "https://..." \ - Network accessline 153
--prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \ --image-url "https://..." \ --duration 5 \ - Network accessline 153
--prompt "Gentle clouds moving across the sky, subtle grass movement, cinematic atmosphere" \ --image-url "https://..." \ --duration 5 \ - Network accessline 154
--image-url "https://..." \ - Network accessline 154
--image-url "https://..." \ - Network accessline 189
node {baseDir}/tools/generate.js --mode image-to-video --model grok --prompt "Gentle smile, subtle head turn" --image-url "https://..." - Network accessline 189
node {baseDir}/tools/generate.js --mode image-to-video --model grok --prompt "Gentle smile, subtle head turn" --image-url "https://..." - Network accessline 191
--model grok \ --prompt "Gentle smile, subtle head turn" \ --image-url "https://..." \ - Network accessline 191
--model grok \ --prompt "Gentle smile, subtle head turn" \ --image-url "https://..." \ - Network accessline 192
--prompt "Gentle smile, subtle head turn" \ --image-url "https://..." \ --duration 5 - Network accessline 192
--prompt "Gentle smile, subtle head turn" \ --image-url "https://..." \ --duration 5 - Network accessline 193
--image-url "https://..." \ - Network accessline 193
--image-url "https://..." \
skills/videoagent-video-studio/package.json
skills/videoagent-video-studio/proxy/README.md
- Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Network accessline 71
"duration": 5, "aspectRatio": "16:9", "imageUrl": "https://..." - Network accessline 71
"duration": 5, "aspectRatio": "16:9", "imageUrl": "https://..." - Network accessline 72
"aspectRatio": "16:9", "imageUrl": "https://..." } - Network accessline 72
"aspectRatio": "16:9", "imageUrl": "https://..." } - Network accessline 73
"imageUrl": "https://..." - Network accessline 73
"imageUrl": "https://..." - Network accessline 79
{ "success": true, "videoUrl": "https://...", "mode": "text-to-video", "model": "kling", "duration": 5 } - Network accessline 79
{ "success": true, "videoUrl": "https://...", "mode": "text-to-video", "model": "kling", "duration": 5 } - Network accessline 107
https://your-proxy.vercel.app/api/stats?ui=1 - Network accessline 107
https://your-proxy.vercel.app/api/stats?ui=1 - Network accessline 120
# In another terminal: export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 120
# In another terminal: export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 121
export VIDEO_STUDIO_PROXY_URL=http://localhost:3777 - Network accessline 121
export VIDEO_STUDIO_PROXY_URL=http://localhost:3777
skills/videoagent-video-studio/proxy/api/generate.js
skills/videoagent-video-studio/proxy/api/stats.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted]
skills/videoagent-video-studio/proxy/api/status.js
skills/videoagent-video-studio/proxy/api/token.js
skills/videoagent-video-studio/proxy/models.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted]
skills/videoagent-video-studio/proxy/package-lock.json
- Network accessline 15
"node_modules/@fal-ai/client": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 15
"node_modules/@fal-ai/client": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 16
"version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", "integrity": "sha512-mDjF2QDq+oficSSxzmErNkseQeRXnvUBEhJy39n4PPe7jRPZeSqM2SNb27SW50rDtCtay+stwFU8zRZehlt1Qg==", - Network accessline 16
"version": "1.9.4", "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", "integrity": "sha512-mDjF2QDq+oficSSxzmErNkseQeRXnvUBEhJy39n4PPe7jRPZeSqM2SNb27SW50rDtCtay+stwFU8zRZehlt1Qg==", - Network accessline 17
"resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 17
"resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.9.4.tgz", - Network accessline 29
"node_modules/@msgpack/msgpack": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 29
"node_modules/@msgpack/msgpack": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 30
"version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", "integrity": "sha512-47XIizs9XZXvuJgoaJUIE2lFoID8ugvc0jzSHP+Ptfk8nTbnR8g788wv48N03Kx0UkAv559HWRQ3yzOgzlRNUA==", - Network accessline 30
"version": "3.1.3", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", "integrity": "sha512-47XIizs9XZXvuJgoaJUIE2lFoID8ugvc0jzSHP+Ptfk8nTbnR8g788wv48N03Kx0UkAv559HWRQ3yzOgzlRNUA==", - Network accessline 31
"resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 31
"resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz", - Network accessline 38
"node_modules/@upstash/redis": { "version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 38
"node_modules/@upstash/redis": { "version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 39
"version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", "integrity": "sha512-wxo1ei4OHDHm4UGMgrNVz9QUEela9N/Iwi4p1JlHNSowQiPi+eljlGnfbZVkV0V4PIrjGtGFJt5GjWM5k28enA==", - Network accessline 39
"version": "1.36.3", "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", "integrity": "sha512-wxo1ei4OHDHm4UGMgrNVz9QUEela9N/Iwi4p1JlHNSowQiPi+eljlGnfbZVkV0V4PIrjGtGFJt5GjWM5k28enA==", - Network accessline 40
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 40
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.36.3.tgz", - Network accessline 47
"node_modules/eventsource-parser": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 47
"node_modules/eventsource-parser": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 48
"version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", - Network accessline 48
"version": "1.1.2", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", - Network accessline 49
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 49
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", - Network accessline 56
"node_modules/robot3": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 56
"node_modules/robot3": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 57
"version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", "integrity": "sha512-hzjy826lrxzx8eRgv80idkf8ua1JAepRc9Efdtj03N3KNJuznQCPlyCJ7gnUmDFwZCLQjxy567mQVKmdv2BsXQ==", - Network accessline 57
"version": "0.4.1", "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", "integrity": "sha512-hzjy826lrxzx8eRgv80idkf8ua1JAepRc9Efdtj03N3KNJuznQCPlyCJ7gnUmDFwZCLQjxy567mQVKmdv2BsXQ==", - Network accessline 58
"resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 58
"resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz", - Network accessline 62
"node_modules/uncrypto": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 62
"node_modules/uncrypto": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 63
"version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - Network accessline 63
"version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - Network accessline 64
"resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - Network accessline 64
"resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
skills/videoagent-video-studio/proxy/package.json
skills/videoagent-video-studio/proxy/usage-store.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted]
skills/videoagent-video-studio/references/calling_guide.md
- Network accessline 16
"duration": 5, "aspectRatio": "16:9", "imageUrl": "https://..." - Network accessline 16
"duration": 5, "aspectRatio": "16:9", "imageUrl": "https://..." - Network accessline 17
"aspectRatio": "16:9", "imageUrl": "https://..." } - Network accessline 17
"aspectRatio": "16:9", "imageUrl": "https://..." } - Network accessline 18
"imageUrl": "https://..." - Network accessline 18
"imageUrl": "https://..." - Network accessline 39
| **Reference endpoint** | `fal-ai/minimax/video-01-subject-reference` | | **T2V / I2V input** | `prompt` + `output_format: "url"`; I2V adds `image_url`. Duration and aspect_ratio are not passed. | | **Reference input** | `{ prompt, subject - Network accessline 39
| **Reference endpoint** | `fal-ai/minimax/video-01-subject-reference` | | **T2V / I2V input** | `prompt` + `output_format: "url"`; I2V adds `image_url`. Duration and aspect_ratio are not passed. | | **Reference input** | `{ prompt, subject - Network accessline 41
| **Reference input** | `{ prompt, subject_reference_image_url: "https://..." }` — one subject reference image for character consistency | - Network accessline 41
| **Reference input** | `{ prompt, subject_reference_image_url: "https://..." }` — one subject reference image for character consistency | - Network accessline 78
| **Reference endpoint** | `fal-ai/hunyuan-video/video-to-video` | | **T2V input** | `prompt`, `aspect_ratio`, `output_format: "url"`. Duration not passed. | | **Reference input** | `{ prompt, video_url: "https://...", aspect_ratio, strengt - Network accessline 78
| **Reference endpoint** | `fal-ai/hunyuan-video/video-to-video` | | **T2V input** | `prompt`, `aspect_ratio`, `output_format: "url"`. Duration not passed. | | **Reference input** | `{ prompt, video_url: "https://...", aspect_ratio, strengt - Network accessline 80
| **Reference input** | `{ prompt, video_url: "https://...", aspect_ratio, strength: 0.85 }` — `strength` controls how far the output drifts from the reference (lower = closer to original) | - Network accessline 80
| **Reference input** | `{ prompt, video_url: "https://...", aspect_ratio, strength: 0.85 }` — `strength` controls how far the output drifts from the reference (lower = closer to original) | - Network accessline 100
| **Reference endpoint** | `xai/grok-imagine-video/edit-video` | | **T2V / I2V input** | `prompt`, `duration` (1–15 s, default 6), `aspect_ratio`, `resolution: "720p"`; I2V adds `image_url` | | **Reference input** | `{ prompt: "Colorize the - Network accessline 100
| **Reference endpoint** | `xai/grok-imagine-video/edit-video` | | **T2V / I2V input** | `prompt`, `duration` (1–15 s, default 6), `aspect_ratio`, `resolution: "720p"`; I2V adds `image_url` | | **Reference input** | `{ prompt: "Colorize the - Network accessline 102
| **Reference input** | `{ prompt: "Colorize the video", video_url: "https://..." }` | - Network accessline 102
| **Reference input** | `{ prompt: "Colorize the video", video_url: "https://..." }` | - Network accessline 127
{ "video": { "url": "https://...", "content_type": "video/mp4" }, "seed": 42 } - Network accessline 127
{ "video": { "url": "https://...", "content_type": "video/mp4" }, "seed": 42 }
skills/videoagent-video-studio/scripts/local-server.cjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 23
nodeReq.on("data", (c) => (body += c)); nodeReq.on("end", () => { const url = new URL(nodeReq.url, `http://localhost:${PORT}`); - Network accessline 23
nodeReq.on("data", (c) => (body += c)); nodeReq.on("end", () => { const url = new URL(nodeReq.url, `http://localhost:${PORT}`); - Network accessline 24
nodeReq.on("end", () => { const url = new URL(nodeReq.url, `http://localhost:${PORT}`); const query = Object.fromEntries(url.searchParams.entries()); - Network accessline 24
nodeReq.on("end", () => { const url = new URL(nodeReq.url, `http://localhost:${PORT}`); const query = Object.fromEntries(url.searchParams.entries()); - Network accessline 25
const url = new URL(nodeReq.url, `http://localhost:${PORT}`); - Network accessline 25
const url = new URL(nodeReq.url, `http://localhost:${PORT}`); - Network accessline 68
const pathname = new URL(nodeReq.url, `http://localhost:${PORT}`).pathname; - Network accessline 68
const pathname = new URL(nodeReq.url, `http://localhost:${PORT}`).pathname; - Network accessline 78
server.listen(PORT, "127.0.0.1", () => { console.log(`[local-server] listening on http://127.0.0.1:${PORT}`); - Network accessline 78
server.listen(PORT, "127.0.0.1", () => { console.log(`[local-server] listening on http://127.0.0.1:${PORT}`); - Network accessline 79
console.log(`[local-server] listening on http://127.0.0.1:${PORT}`); - Network accessline 79
console.log(`[local-server] listening on http://127.0.0.1:${PORT}`); - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted]
skills/videoagent-video-studio/scripts/test-api.ps1
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
# Test via local or deployed proxy: # $env:FAL_KEY = "your-api-key"; $env:VIDEO_STUDIO_PROXY_URL = "http://localhost:3000"; .\test-api.ps1 # ============================================================ - Network accessline 6
# Test via local or deployed proxy: # $env:FAL_KEY = "your-api-key"; $env:VIDEO_STUDIO_PROXY_URL = "http://localhost:3000"; .\test-api.ps1 # ============================================================ - Network accessline 7
[Credential-related source omitted] - Network accessline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 51
Write-Info "1-A: minimax text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/minimax/video-01" ` - Network accessline 51
Write-Info "1-A: minimax text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/minimax/video-01" ` - Network accessline 52
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/minimax/video-01" - Network accessline 52
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/minimax/video-01" - Network accessline 53
-Uri "https://queue.fal.run/fal-ai/minimax/video-01" ` - Network accessline 53
-Uri "https://queue.fal.run/fal-ai/minimax/video-01" ` - Network accessline 65
Write-Info "1-B: kling text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" ` - Network accessline 65
Write-Info "1-B: kling text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" ` - Network accessline 66
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" - Network accessline 66
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" - Network accessline 67
-Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" ` - Network accessline 67
-Uri "https://queue.fal.run/fal-ai/kling-video/v3/standard/text-to-video" ` - Network accessline 78
Write-Info "1-C: seedance 1.5 pro text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" ` - Network accessline 78
Write-Info "1-C: seedance 1.5 pro text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" ` - Network accessline 79
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" - Network accessline 79
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" - Network accessline 80
-Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" ` - Network accessline 80
-Uri "https://queue.fal.run/fal-ai/bytedance/seedance/v1.5/pro/text-to-video" ` - Network accessline 91
Write-Info "1-D: veo 3.1 reference-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" ` - Network accessline 91
Write-Info "1-D: veo 3.1 reference-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" ` - Network accessline 92
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" - Network accessline 92
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" - Network accessline 93
-Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" ` - Network accessline 93
-Uri "https://queue.fal.run/fal-ai/veo3.1/reference-to-video" ` - Network accessline 96
-Body @{ prompt = "A person walking through a sunlit park" image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") - Network accessline 96
-Body @{ prompt = "A person walking through a sunlit park" image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") - Network accessline 97
prompt = "A person walking through a sunlit park" image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") aspect_ratio = "16:9" - Network accessline 97
prompt = "A person walking through a sunlit park" image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") aspect_ratio = "16:9" - Network accessline 98
image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") - Network accessline 98
image_urls = @("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png") - Network accessline 109
Write-Info "1-E: hunyuan video-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" ` - Network accessline 109
Write-Info "1-E: hunyuan video-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" ` - Network accessline 110
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" - Network accessline 110
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" - Network accessline 111
-Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" ` - Network accessline 111
-Uri "https://queue.fal.run/fal-ai/hunyuan-video/video-to-video" ` - Network accessline 114
-Body @{ prompt = "Same scene but at night with neon lights" video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" - Network accessline 114
-Body @{ prompt = "Same scene but at night with neon lights" video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" - Network accessline 115
prompt = "Same scene but at night with neon lights" video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" aspect_ratio = "16:9" - Network accessline 115
prompt = "Same scene but at night with neon lights" video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" aspect_ratio = "16:9" - Network accessline 116
video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" - Network accessline 116
video_url = "https://storage.googleapis.com/falserverless/hunyuan_video/hunyuan_v2v_input.mp4" - Network accessline 127
Write-Info "1-F: grok text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" ` - Network accessline 127
Write-Info "1-F: grok text-to-video (submit)" $r = Invoke-Json ` -Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" ` - Network accessline 128
$r = Invoke-Json -Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" - Network accessline 128
$r = Invoke-Json -Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" - Network accessline 129
-Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" ` - Network accessline 129
-Uri "https://queue.fal.run/xai/grok-imagine-video/text-to-video" ` - Network accessline 141
Write-Info "1-G: check minimax job status (request_id=$($Script:minimaxReqId))" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" ` - Network accessline 141
Write-Info "1-G: check minimax job status (request_id=$($Script:minimaxReqId))" $r = Invoke-Json ` -Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" ` - Network accessline 142
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" - Network accessline 142
$r = Invoke-Json -Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" - Network accessline 143
-Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" ` - Network accessline 143
-Uri "https://queue.fal.run/fal-ai/minimax/video-01/requests/$($Script:minimaxReqId)/status" `
skills/videoagent-video-studio/scripts/test-generate.ps1
- Network accessline 1
# Quick test for tools/generate.js. Set VIDEO_STUDIO_PROXY_URL to your proxy (e.g. http://localhost:3000). - Network accessline 1
# Quick test for tools/generate.js. Set VIDEO_STUDIO_PROXY_URL to your proxy (e.g. http://localhost:3000). - Executable scriptline 1
Executable file - Executable scriptline 1
Executable file
skills/videoagent-video-studio/scripts/test-generate.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 2
# Quick test for tools/generate.js. Set VIDEO_STUDIO_PROXY_URL to your proxy (e.g. http://localhost:3000). - Network accessline 2
# Quick test for tools/generate.js. Set VIDEO_STUDIO_PROXY_URL to your proxy (e.g. http://localhost:3000).
skills/videoagent-video-studio/scripts/test-proxy.cjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Network accessline 109
await test("getModel('veo') refInput always returns duration 8s", async () => { const m = getModel("veo"); const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); - Network accessline 109
await test("getModel('veo') refInput always returns duration 8s", async () => { const m = getModel("veo"); const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); - Network accessline 110
const m = getModel("veo"); const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); expect(input.duration, "veo ref duration").toBe("8s"); - Network accessline 110
const m = getModel("veo"); const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); expect(input.duration, "veo ref duration").toBe("8s"); - Network accessline 111
const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); - Network accessline 111
const input = m.refInput({ prompt: "test", imageUrl: "http://x.com/img.jpg", duration: 4 }); - Access to secretsline 239
[Credential-related source omitted] - Access to secretsline 239
[Credential-related source omitted] - Access to secretsline 240
[Credential-related source omitted] - Access to secretsline 240
[Credential-related source omitted] - Access to secretsline 250
[Credential-related source omitted] - Access to secretsline 250
[Credential-related source omitted] - Access to secretsline 262
[Credential-related source omitted] - Access to secretsline 262
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 297
[Credential-related source omitted] - Access to secretsline 297
[Credential-related source omitted] - Access to secretsline 308
[Credential-related source omitted] - Access to secretsline 308
[Credential-related source omitted] - Access to secretsline 314
[Credential-related source omitted] - Access to secretsline 314
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Access to secretsline 324
[Credential-related source omitted] - Access to secretsline 324
[Credential-related source omitted]
skills/videoagent-video-studio/tools/generate.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 12
const PROXY_BASE = process.env.VIDEO_STUDIO_PROXY_URL || "https://video-gen-proxy.vercel.app"; - Network accessline 12
const PROXY_BASE = process.env.VIDEO_STUDIO_PROXY_URL || "https://video-gen-proxy.vercel.app"; - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Network accessline 40
if (TOKEN) return TOKEN; try { const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 40
if (TOKEN) return TOKEN; try { const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 41
try { const res = await fetch(`${PROXY_BASE}/api/token`, { method: "POST", - Network accessline 41
try { const res = await fetch(`${PROXY_BASE}/api/token`, { method: "POST", - Network accessline 42
const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 42
const res = await fetch(`${PROXY_BASE}/api/token`, { - Network accessline 55
async function listModels() { try { const res = await fetch(`${PROXY_BASE}/api/generate`); - Network accessline 55
async function listModels() { try { const res = await fetch(`${PROXY_BASE}/api/generate`); - Network accessline 56
try { const res = await fetch(`${PROXY_BASE}/api/generate`); const data = await res.json().catch(() => ({})); - Network accessline 56
try { const res = await fetch(`${PROXY_BASE}/api/generate`); const data = await res.json().catch(() => ({})); - Network accessline 57
const res = await fetch(`${PROXY_BASE}/api/generate`); - Network accessline 57
const res = await fetch(`${PROXY_BASE}/api/generate`); - Network accessline 81
const url = new URL("/api/status", PROXY_BASE); url.searchParams.set("jobId", jobId); const res = await fetch(url.toString(), { headers }); - Network accessline 81
const url = new URL("/api/status", PROXY_BASE); url.searchParams.set("jobId", jobId); const res = await fetch(url.toString(), { headers }); - Network accessline 82
url.searchParams.set("jobId", jobId); const res = await fetch(url.toString(), { headers }); const data = await res.json().catch(() => ({})); - Network accessline 82
url.searchParams.set("jobId", jobId); const res = await fetch(url.toString(), { headers }); const data = await res.json().catch(() => ({})); - Network accessline 83
const res = await fetch(url.toString(), { headers }); - Network accessline 83
const res = await fetch(url.toString(), { headers }); - Network accessline 126
try { const res = await fetch(`${PROXY_BASE}/api/generate`, { - Network accessline 126
try { const res = await fetch(`${PROXY_BASE}/api/generate`, { - Network accessline 127
const res = await fetch(`${PROXY_BASE}/api/generate`, { - Network accessline 127
const res = await fetch(`${PROXY_BASE}/api/generate`, {
skills/youtube-short-maker/README.md
skills/youtube-short-maker/SKILL.md
- Network accessline 7
"make a youtube short", "shorts video", "short-form video". NOT for long-form or landscape video. homepage: https://pexo.ai - Network accessline 8
video. homepage: https://pexo.ai repository: https://github.com/pexoai/pexo-skills - Network accessline 9
homepage: https://pexo.ai - Network accessline 10
repository: https://github.com/pexoai/pexo-skills - Access to secretsline 13
[Credential-related source omitted] - Network accessline 21
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there. - Network accessline 38
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 52
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/<pro - Network accessline 53
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 `nextAct - Network accessline 54
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`. - Network accessline 68
- 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; a - Network accessline 69
- **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. - Network accessline 70
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or - Network accessline 81
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` - Network accessline 82
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home` - Network accessline 90
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 - Network accessline 91
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. - Network accessline 92
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
skills/youtube-short-maker/references/SETUP-CHECKLIST.md
- Network accessline 10
mkdir -p ~/.pexo cat > ~/.pexo/config << 'EOF' PEXO_BASE_URL="https://pexo.ai" - Network accessline 11
[Credential-related source omitted] - Network accessline 12
PEXO_BASE_URL="https://pexo.ai" - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
Get your API key at: https://pexo.ai - Network accessline 19
- If you do not have an account: Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Network accessline 20
Go to https://pexo.ai and sign up. During registration, you will be asked for an invite code. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 61
Your API key may be expired or incorrect. Log in at https://pexo.ai to generate a new one. Replace the value in `~/.pexo/config`. - Network accessline 68
# macOS (file is usually preinstalled) brew install curl jq - Network accessline 69
brew install curl jq - Network accessline 71
# Ubuntu/Debian apt-get install -y curl jq file - Network accessline 72
apt-get install -y curl jq file - Network accessline 74
# CentOS/RHEL yum install -y curl jq file - Network accessline 75
yum install -y curl jq file - Network accessline 80
If `pexo-doctor.sh` reports a connectivity issue: - Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Network accessline 81
- Check if your server can reach `pexo.ai` (e.g. `curl -I https://pexo.ai`) - Access to secretsline 92
[Credential-related source omitted]
skills/youtube-short-maker/references/TROUBLESHOOTING.md
- Access to secretsline 18
[Credential-related source omitted] - Network accessline 25
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 26
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 203
Credits balance: 0 — your account has no available credits. To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 204
To purchase credits: visit https://pexo.ai/home → click Credits (top-right) → Buy Credits → Extra Credits - Network accessline 209
- Explain to the user that they have run out of credits. - Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 210
- Guide them to purchase credits: visit https://pexo.ai/home, click Credits in the top-right corner → Buy Credits, then find Extra Credits. - Network accessline 239
1. Tell the user the account has no available credits for this chat request. 2. Direct them to top up credits at `https://pexo.ai/home`. - Network accessline 240
2. Direct them to top up credits at `https://pexo.ai/home`. - Access to secretsline 288
[Credential-related source omitted]
skills/youtube-short-maker/scripts/_common.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 93
if [[ "$http_code" == "0" && -n "$transport_error" ]]; then jq -nc \ - Network accessline 94
jq -nc \ - Network accessline 147
jq -nc \ - Network accessline 227
if [[ -n "$body" ]]; then http_code=$(curl -sS \ - Network accessline 228
http_code=$(curl -sS \ - Network accessline 239
"${PEXO_BASE_URL}${path}" 2>"$err_file") || curl_status=$? else http_code=$(curl -sS \ - Network accessline 240
else http_code=$(curl -sS \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 241
http_code=$(curl -sS \ - Dangerous shell operationline 259
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 265
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 270
rm -f "$body_file" "$header_file" "$err_file" - Network accessline 277
local _saved_code="${PEXO_LAST_HTTP_CODE:-0}" local entitlements available local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 279
local topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 333
set +o pipefail if [[ -n "$body" ]]; then curl -sS -N \ - Network accessline 334
if [[ -n "$body" ]]; then curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 335
curl -sS -N \ - Network accessline 344
"${PEXO_BASE_URL}${path}" >"$body_file" 2>"$err_file" else curl -sS -N \ - Network accessline 345
else curl -sS -N \ --connect-timeout "$_PEXO_CONNECT_TIMEOUT" \ - Network accessline 346
curl -sS -N \ - Dangerous shell operationline 365
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 373
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 378
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 384
rm -f "$body_file" "$header_file" "$err_file" - Dangerous shell operationline 389
rm -f "$body_file" "$header_file" "$err_file"
skills/youtube-short-maker/scripts/pexo-asset-get.sh
skills/youtube-short-maker/scripts/pexo-chat.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 129
if [[ -n "$choice" ]]; then body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 130
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" --arg ch "$choice" \ - Network accessline 131
'{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}, choices:{preview_id:$ch}}') else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 132
else body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ '{project_id:$pid, timestamp:$ts, user_visible:true, native_inputs:{text:$msg}}') - Network accessline 133
body=$(jq -nc --arg pid "$pid" --arg msg "$msg" --arg ts "$ts" \ - Network accessline 144
jq -nc \
skills/youtube-short-maker/scripts/pexo-doctor.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 79
echo " Create it with:" echo ' mkdir -p ~/.pexo && cat > ~/.pexo/config << EOF' echo ' PEXO_BASE_URL="https://pexo.ai"' - Network accessline 80
[Credential-related source omitted] - Network accessline 81
echo ' PEXO_BASE_URL="https://pexo.ai"' - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 102
else echo "$FAIL PEXO_API_KEY is not set" echo " Get your API key at: https://pexo.ai" - Network accessline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Network accessline 104
echo " Get your API key at: https://pexo.ai" - Network accessline 109
echo "" for cmd in curl jq file; do - Network accessline 110
for cmd in curl jq file; do - Network accessline 126
echo "" if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Network accessline 127
if [[ -n "${PEXO_BASE_URL:-}" ]]; then http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") if [[ "$http_code" != "000" ]]; then - Network accessline 128
http_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "${PEXO_BASE_URL}" 2>/dev/null || echo "000") - Access to secretsline 142
[Credential-related source omitted] - Network accessline 143
tmp_body=$(mktemp) tmp_err=$(mktemp) http_code=$(curl -sS \ - Network accessline 144
tmp_err=$(mktemp) http_code=$(curl -sS \ --connect-timeout 10 \ - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Dangerous shell operationline 154
rm -f "$tmp_body" "$tmp_err" - Access to secretsline 161
[Credential-related source omitted] - Network accessline 162
echo "$FAIL API key is invalid or expired (HTTP 401)" echo " Message: $message" echo " Get a new key at: https://pexo.ai" - Network accessline 163
echo " Message: $message" echo " Get a new key at: https://pexo.ai" errors=$((errors + 1)) - Network accessline 164
echo " Get a new key at: https://pexo.ai" - Network accessline 179
elif [[ "$http_code" == "000" ]]; then echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" - Network accessline 180
echo "$FAIL API validation request failed before receiving a response" echo " Curl error: ${curl_err:-unknown}" errors=$((errors + 1)) - Network accessline 181
echo " Curl error: ${curl_err:-unknown}"
skills/youtube-short-maker/scripts/pexo-entitlements.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 49
topup_url="${PEXO_BASE_URL:-https://pexo.ai}/home" - Network accessline 60
{ [[ "$available" =~ ^[0-9]+$ ]] && [[ "$available" -le 0 ]]; }; }; then printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extr - Network accessline 61
printf '\nCredits balance: 0 — your account has no available credits.\n' >&2 printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2 fi - Network accessline 62
printf 'To purchase credits: visit %s → click Credits (top-right) → Buy Credits → Extra Credits\n' "$topup_url" >&2
skills/youtube-short-maker/scripts/pexo-project-create.sh
skills/youtube-short-maker/scripts/pexo-project-get.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/youtube-short-maker/scripts/pexo-project-list.sh
- Executable scriptline 1
#!/usr/bin/env bash
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 2 facts
- Network access in code of the SKILL.mdai-video-generation/SKILL.md:38High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueai-video-generation/SKILL.md:39Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/ai-video-generation/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/ai-video-generation/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/ai-video-generation/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/ai-video-generation/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/ai-video-generation/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.