
tiktok-video-ad
★ 742by pexoai · part of pexoai/pexo-skills
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).
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
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.
Config
~/.pexo/config:
PEXO_BASE_URL="https://pexo.ai"
PEXO_API_KEY="sk-<your-api-key>"No account / first run → read references/SETUP-CHECKLIST.md and walk the user through it — it carries the signup flow with the invite code that grants new users bonus credits, plus how to create the config above. Config error → run scripts/pexo-doctor.sh and follow its output.
Workflow
Scripts live in this skill's scripts/. Reply to the user in their language.
- Create a project:
pexo-project-create.sh "<short brief>"→ save theproject_id. - Upload any files the user gave:
pexo-upload.sh <project_id> <path>→ saveasset_id, reference it inline as<original-image>asset_id</original-image>(or<original-video>/<original-audio>). Tags are required — a bareasset_idis ignored. Pexo can't crawl URLs — download, then upload. - Send the request:
pexo-chat.sh <project_id> "<user's exact words> <asset tags>". Copy the user's words exactly; only add asset tags. - Tell the user (their language): submitted ✓ · ~15–20 min ·
https://pexo.ai/project/<project_id>. - Poll: every ≥60s run
pexo-project-get.sh <project_id>and act onnextAction:- WAIT → keep polling; every ~5 polls send a one-line update with the project link.
- RESPOND → handle each event in
recentMessages: relay Pexo's text (wait for the user's answer if it asked, thenpexo-chat.shtheir reply); forpreview_video, runpexo-asset-get.sh <project_id> <assetId>per option, show the URLs (A/B/C), let the user pick, thenpexo-chat.sh <project_id> "<choice>" --choice <assetId>; for adocumentevent, mention it to the user. - DELIVER →
pexo-asset-get.sh <project_id> <final assetId>, then send the user the full asset URL as plain text — all?…query params, never truncated or wrapped in markdown — plus the project link. - FAILED → explain
nextActionHintin plain terms and offer to retry. - RECONNECT →
pexo-chat.sh <project_id> "continue", tell the user the connection dropped and you're resuming, then keep polling. - Never call
pexo-chat.shduring WAIT — it triggers duplicate production. - Taking too long → if it's been >30 min and still WAIT, tell the user (with the project
link +
https://pexo.ai/connect/openclaw) it's running long; ask whether to keep waiting or stop. Don't poll forever.
Revisions
After delivery, the user's tweaks ("make it shorter", "new music", "different shot") reuse the
same project: pexo-chat.sh <project_id> "<their feedback>", then poll again (step 5). Never
create a new project for a revision — it throws away Pexo's server-side context.
Example
User: "Make a TikTok ad for our skincare serum."
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
# Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, then deliver the asset URL.Scripts
| Script | Usage | Returns |
|---|---|---|
pexo-project-create.sh | "<brief>" | project_id |
pexo-upload.sh | <project_id> <file> | asset_id |
pexo-chat.sh | <project_id> "<message>" [--choice <id>] | ack (async) |
pexo-project-get.sh | <project_id> | JSON: nextAction, recentMessages |
pexo-asset-get.sh | <project_id> <asset_id> | JSON with url |
pexo-doctor.sh | — | setup diagnostic |
Error codes and edge cases → references/TROUBLESHOOTING.md.
npx skills add https://github.com/pexoai/pexo-skills --skill tiktok-video-adRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MIT— you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub →