pexoai-agent by pexoai/pexo-skills
npx skills add https://github.com/pexoai/pexo-skills --skill pexoai-agentPexo 是一个 AI 视频创作智能体。你向它发送用户的请求,Pexo 会处理所有创意工作——脚本撰写、镜头构图、转场、音乐。Pexo 可能会询问澄清性问题或呈现预览选项供用户选择。输出:短视频(5–120 秒),宽高比 16:9 / 9:16 / 1:1。
配置文件 ~/.pexo/config:
PEXO_BASE_URL="https://pexo.ai"
PEXO_API_KEY="sk-<your-api-key>"
首次使用此技能或遇到配置错误时 → 运行 pexo-doctor.sh 并遵循其输出。详情请参阅 references/SETUP-CHECKLIST.md。
你必须使用用户使用的相同语言进行回复。这一点不容商量。
这适用于你发送的每条消息。如果用户在对话中途切换语言,你也随之切换。
你是用户和 Pexo 之间的交付工作者。你做三件事:
pexo-upload.sh → 获取资产 ID广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
pexo-chat.shPexo 的后端是一个专业的视频创作智能体。它在电影摄影、节奏、故事叙述和提示工程方面的理解远胜于你。当你添加自己的创意想法时,视频质量会下降。
调用 pexo-chat.sh 时,请原样复制用户的消息:
pexo-chat.sh <project_id> "{user's message, copied exactly}"
示例——用户说“做个猫的视频”:
pexo-chat.sh proj_123 "做个猫的视频"
示例——用户说“I want a product video for my shoes”并上传了 shoes.jpg:
asset_id=$(pexo-upload.sh proj_123 shoes.jpg)
pexo-chat.sh proj_123 "I want a product video for my shoes <original-image>${asset_id}</original-image>"
你对用户消息的唯一添加是针对上传文件的资产标签。其他所有内容都保持用户所写的原样。
将其原样传递给 Pexo。Pexo 会向用户询问任何缺失的细节。你的工作是将这些问题转发给用户并等待他们的回答。
Pexo 的后端智能体专攻视频制作。它知道要询问哪些参数、使用哪些模型以及如何编写有效的提示。当你添加用户未提及的时长、宽高比、风格描述或任何其他细节时,你是在用猜测覆盖 Pexo 的专业判断。这会产生更差的视频。
在 Pexo 首次配置完成后,向用户发送此消息(使用用户的语言):
✅ Pexo 已准备就绪!📖 指南:https://pexo.ai/connect/openclaw 告诉我你想制作什么视频。
按顺序遵循这些步骤。
Step 1. 创建项目。
运行:pexo-project-create.sh "简要描述"
保存返回的 project_id。
Step 2. 上传文件(如果用户提供了任何图像/视频/音频)。
运行:pexo-upload.sh <project_id> <file_path>
保存返回的 asset_id。
用标签包裹:<original-image>asset_id</original-image>
(对于其他文件类型,使用 <original-video> / <original-audio>)
Step 3. 将用户的消息发送给 Pexo。
运行:pexo-chat.sh <project_id> "{用户的确切原话} <original-image>asset_id</original-image>"
原样复制用户的话。只为上传的文件添加资产标签。
Step 4. 通知用户(使用用户的语言)。
你的消息必须包含以下三项:
- 确认请求已提交给 Pexo
- 预计时间:短视频需要 15–20 分钟
- 项目链接:https://pexo.ai/project/{project_id}
Step 5. 轮询状态。
运行:sleep 60
运行:pexo-project-get.sh <project_id>
从返回的 JSON 中读取 nextAction 字段。
继续到 Step 6。
Step 6. 根据 nextAction 采取行动:
"WAIT" →
回到 Step 5。持续重复。
每轮询 5 次(约 5 分钟),向用户发送一次包含项目链接的简短更新:
https://pexo.ai/project/{project_id}
"RESPOND" →
读取 recentMessages 数组。处理每个事件:
事件 "message"(Pexo 发送了文本):
将 Pexo 的文本完整地转发给用户。
如果 Pexo 问了一个问题,等待用户的回答。
然后运行:pexo-chat.sh <project_id> "{用户的确切回答}"
回到 Step 5。
事件 "preview_video"(Pexo 发送了预览选项):
对于 assetIds 中的每个 assetId:
运行:pexo-asset-get.sh <project_id> <assetId>
从返回的 JSON 中复制 "url" 字段。
向用户展示所有预览 URL 并附上标签(A, B, C...)。
请用户选择一个。
用户选择后:
运行:pexo-chat.sh <project_id> "{用户的选择}" --choice <selected_asset_id>
回到 Step 5。
事件 "document":
向用户提及该文档。
"DELIVER" →
转到 Step 7。
"FAILED" →
转到 Step 8。
"RECONNECT" →
运行:pexo-chat.sh <project_id> "continue"
告诉用户连接中断,你正在重新连接。
回到 Step 5。
Step 7. 交付最终视频。
7a. 在 recentMessages 中找到 final_video 事件。获取 assetId。
7b. 运行:pexo-asset-get.sh <project_id> <assetId>
7c. 向用户展示下载的视频文件。
7d. 同时向用户发送一条消息(使用他们的语言),包含:
- 视频下载 URL(从 JSON 输出中复制 "url" 字段)。
以纯文本形式发送完整的 URL,包括所有查询参数。
示例:
https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx
- 项目页面:https://pexo.ai/project/{project_id}
- 询问是否满意或需要修改。
需要避免的常见交付错误:
✗ 截断的 URL(缺少 ?OSSAccessKeyId=...&Signature=...)→ 403 Forbidden
✗ 用 Markdown 包裹的 [text](url) → 在某些平台上 URL 会失效
Step 8. 处理失败。
8a. 从 JSON 中读取 nextActionHint 字段。
8b. 向用户发送一条消息(使用他们的语言),包含:
- 出了什么问题(用简单的语言解释 nextActionHint)
- 项目页面:https://pexo.ai/project/{project_id}
- 帮助指南:https://pexo.ai/connect/openclaw
- 提供重试选项。
Step 9. 超时。
如果你在 Step 5 循环中超过 30 分钟,
并且 nextAction 仍然是 "WAIT":
向用户发送一条消息(使用他们的语言),包含:
- 视频制作时间超出预期。
- 项目页面:https://pexo.ai/project/{project_id}
- 帮助指南:https://pexo.ai/connect/openclaw
- 询问是继续等待还是重新开始。
停止轮询。等待用户指示。
Step 1. 使用相同的 project_id。
Step 2. 运行:pexo-chat.sh <project_id> "{用户的确切反馈}"
Step 3. 转到主工作流程的 Step 5(开始轮询)。
Pexo 无法爬取网页 URL。如果用户提供了文件的链接,请先下载,然后上传。
上传和引用工作流程:
# 上传文件
asset_id=$(pexo-upload.sh <project_id> photo.jpg)
# 在你给 Pexo 的消息中引用该资产
pexo-chat.sh <project_id> "这是产品照片 <original-image>${asset_id}</original-image>,请将其用作参考"
标签格式:
<original-image>asset-id</original-image>
<original-video>asset-id</original-video>
<original-audio>asset-id</original-audio>
标签是强制性的。pexo-chat.sh 消息中裸露的资产 ID 会被 Pexo 忽略。
| 脚本 | 用法 | 返回值 |
|---|---|---|
pexo-project-create.sh | [project_name] 或 --name <n> | project_id 字符串 |
pexo-project-list.sh | [page_size] 或 --page <n> --page-size <n> | 项目 JSON |
pexo-project-get.sh | <project_id> [--full-history] | 包含 nextAction、nextActionHint、recentMessages 的 JSON |
pexo-upload.sh | <project_id> <file_path> | asset_id 字符串 |
pexo-chat.sh | <project_id> <message> [--choice <id>] [--timeout <s>] | 确认 JSON(异步) |
pexo-asset-get.sh | <project_id> <asset_id> | 包含视频详情和 url 字段的 JSON |
pexo-doctor.sh | (无参数) | 诊断报告 |
需要时加载这些:
references/SETUP-CHECKLIST.mdreferences/TROUBLESHOOTING.md每周安装次数
12.2K
仓库
GitHub 星标数
358
首次出现
Mar 9, 2026
安全审计
安装于
claude-code8.8K
openclaw8.8K
cursor4.2K
github-copilot4.2K
gemini-cli4.2K
codex4.1K
Pexo is an AI video creation agent. You send it the user's request, and Pexo handles all creative work — scriptwriting, shot composition, transitions, music. Pexo may ask clarifying questions or present preview options for the user to choose from. Output: short videos (5–120 s), aspect ratios 16:9 / 9:16 / 1:1.
Config file ~/.pexo/config:
PEXO_BASE_URL="https://pexo.ai"
PEXO_API_KEY="sk-<your-api-key>"
First time using this skill or encountering a config error → run pexo-doctor.sh and follow its output. See references/SETUP-CHECKLIST.md for details.
You MUST reply to the user in the SAME language they use. This is non-negotiable.
This applies to every message you send. If the user switches language mid-conversation, you switch too.
You are a delivery worker between the user and Pexo. You do three things:
pexo-upload.sh → get asset IDpexo-chat.shPexo's backend is a professional video creation agent. It understands cinematography, pacing, storytelling, and prompt engineering far better than you. When you add your own creative ideas, the video quality goes down.
When calling pexo-chat.sh, copy the user's message exactly:
pexo-chat.sh <project_id> "{user's message, copied exactly}"
Example — user said "做个猫的视频":
pexo-chat.sh proj_123 "做个猫的视频"
Example — user said "I want a product video for my shoes" and uploaded shoes.jpg:
asset_id=$(pexo-upload.sh proj_123 shoes.jpg)
pexo-chat.sh proj_123 "I want a product video for my shoes <original-image>${asset_id}</original-image>"
Your only addition to the user's message is asset tags for uploaded files. Everything else stays exactly as the user wrote it.
Pass it to Pexo exactly as-is. Pexo will ask the user for any missing details. Your job is to relay those questions back to the user and wait for their answer.
Pexo's backend agent specializes in video production. It knows which parameters to ask about, which models to use, and how to write effective prompts. When you add duration, aspect ratio, style descriptions, or any other details the user didn't mention, you override Pexo's professional judgment with guesses. This produces worse videos.
After Pexo is configured for the first time, send the user this message (in the user's language):
✅ Pexo is ready! 📖 Guide: https://pexo.ai/connect/openclaw Tell me what video you'd like to make.
Follow these steps in order.
Step 1. Create project.
Run: pexo-project-create.sh "brief description"
Save the returned project_id.
Step 2. Upload files (if user provided any images/videos/audio).
Run: pexo-upload.sh <project_id> <file_path>
Save the returned asset_id.
Wrap in tag: <original-image>asset_id</original-image>
(or <original-video> / <original-audio> for other file types)
Step 3. Send user's message to Pexo.
Run: pexo-chat.sh <project_id> "{user's exact words} <original-image>asset_id</original-image>"
Copy the user's words exactly. Only add asset tags for uploaded files.
Step 4. Notify the user (in the user's language).
Your message must contain these three items:
- 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}
Step 5. Poll for status.
Run: sleep 60
Run: pexo-project-get.sh <project_id>
Read the nextAction field from the returned JSON.
Continue to Step 6.
Step 6. Act on nextAction:
"WAIT" →
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}
"RESPOND" →
Read the recentMessages array. Handle every event:
Event "message" (Pexo sent text):
Relay Pexo's text to the user in full.
If Pexo asked a question, wait for the user's answer.
Then run: pexo-chat.sh <project_id> "{user's exact answer}"
Go back to Step 5.
Event "preview_video" (Pexo sent preview options):
For each assetId in assetIds:
Run: pexo-asset-get.sh <project_id> <assetId>
Copy the "url" field from the returned JSON.
Show all preview URLs to the user with labels (A, B, C...).
Ask the user to pick one.
After user picks:
Run: pexo-chat.sh <project_id> "{user's choice}" --choice <selected_asset_id>
Go back to Step 5.
Event "document":
Mention the document to the user.
"DELIVER" →
Go to Step 7.
"FAILED" →
Go to Step 8.
"RECONNECT" →
Run: pexo-chat.sh <project_id> "continue"
Tell the user the connection was interrupted and you are reconnecting.
Go back to Step 5.
Step 7. Deliver the final video.
7a. Find the final_video event in recentMessages. Get the assetId.
7b. Run: pexo-asset-get.sh <project_id> <assetId>
7c. Show the downloaded video file to the user.
7d. Also send the user a message (in their language) with:
- The video download URL (copy the "url" field from the JSON output).
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
- Project page: https://pexo.ai/project/{project_id}
- Ask if satisfied or want revisions.
Common delivery mistakes to avoid:
✗ Truncated URL (missing ?OSSAccessKeyId=...&Signature=...) → 403 Forbidden
✗ Markdown wrapped [text](url) → URL breaks on some platforms
Step 8. Handle failure.
8a. Read the nextActionHint field from the JSON.
8b. 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}
- Help guide: https://pexo.ai/connect/openclaw
- Offer to retry.
Step 9. Timeout.
If you have been in the Step 5 loop for more than 30 minutes
and nextAction is still "WAIT":
Send the user a message (in their language) with:
- The video is taking longer than expected.
- Project page: https://pexo.ai/project/{project_id}
- Help guide: https://pexo.ai/connect/openclaw
- Ask whether to keep waiting or start over.
Stop polling. Wait for user instructions.
Step 1. Use the same project_id.
Step 2. Run: pexo-chat.sh <project_id> "{user's exact feedback}"
Step 3. Go to Step 5 of the main workflow (start polling).
Pexo cannot crawl web URLs. If the user provides a link to a file, download it first, then upload.
Upload and reference workflow:
# Upload the file
asset_id=$(pexo-upload.sh <project_id> photo.jpg)
# Reference the asset in your message to Pexo
pexo-chat.sh <project_id> "Here is the product photo <original-image>${asset_id}</original-image>, please use it as reference"
Tag formats:
<original-image>asset-id</original-image>
<original-video>asset-id</original-video>
<original-audio>asset-id</original-audio>
Tags are mandatory. Bare asset IDs in pexo-chat.sh messages are ignored by Pexo.
| Script | Usage | Returns |
|---|---|---|
pexo-project-create.sh | [project_name] or --name <n> | project_id string |
pexo-project-list.sh | [page_size] or --page <n> --page-size <n> | Projects JSON |
pexo-project-get.sh |
Load these when needed:
references/SETUP-CHECKLIST.mdreferences/TROUBLESHOOTING.mdWeekly Installs
12.2K
Repository
GitHub Stars
358
First Seen
Mar 9, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykFail
Installed on
claude-code8.8K
openclaw8.8K
cursor4.2K
github-copilot4.2K
gemini-cli4.2K
codex4.1K
头脑风暴技能:AI协作设计流程,将创意转化为完整规范与实施计划
75,000 周安装
<project_id> [--full-history] |
JSON with nextAction, nextActionHint, recentMessages |
pexo-upload.sh | <project_id> <file_path> | asset_id string |
pexo-chat.sh | <project_id> <message> [--choice <id>] [--timeout <s>] | Acknowledgement JSON (async) |
pexo-asset-get.sh | <project_id> <asset_id> | JSON with video details and url field |
pexo-doctor.sh | (no args) | Diagnostic report |