Viral Captions And Ctas
vyralcontent/content-skills
Write captions, on-screen text, hashtags, and CTAs for short-form video that earn saves and sends without tripping engagement-bait penalties.
Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API.
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tiktok-slideshow .claude/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .claude/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshowType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/tiktok-slideshow .agents/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .agents/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/tiktok-slideshow .cursor/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .cursor/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/tiktok-slideshow--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/tiktok-slideshow .gemini/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .gemini/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/tiktok-slideshow .github/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .github/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills tiktok-slideshow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/tiktok-slideshow .opencode/skills/tiktok-slideshow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tiktok-slideshow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tiktok-slideshow into .opencode/skills/tiktok-slideshow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tiktok-slideshow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tiktok-slideshowCreates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API.
Tiktok Slideshow is an agent skill from LeoYeAI/openclaw-master-skills. Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API. Use when the user wants to: create TikTok slideshows or carousels, find/search for background images for social media content, post or upload slideshow content to TikTok, edit slide text, or manage image collections for content creation. Do NOT use for: general TikTok account management, TikTok analytics or metrics, video editing or video creation (this is for photo slideshows only), non-TikTok social media platforms…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Media & Creative, covering Slides and decks, Social media posts and Customer success. It works with TikTok. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and bash).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
viralbaby.cocdn.viralbaby.cotiktok.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VB_KEYVB_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tiktok Slideshow loads about 4.4k tokens when it runs. Until then it costs about 151 tokens; SKILL.md has 1,198 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,198 words, ~4,379 tokens.
.claude/skills/tiktok-slideshow/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Create image carousels with text overlays for TikTok — search images, build slides, edit text, and upload to TikTok drafts.
Base URL: https://viralbaby.co
All endpoints (except auth) require: Authorization: Bearer $VB_KEY
All indices are 1-based — image indices, slide indices, etc. Slide 1 is the first slide.
IMPORTANT — check environment variables first, in this order:
$VB_KEY — if set, you already have an API key. Skip straight to using the API.$VB_PASSWORD — if set, you have a saved password. Log in to get a new API key.POST /api/v1/auth
Body: { "email": "user@example.com", "password": "securepassword", "action": "signup" }
Response: { "key": "vb_live_abc123...", "keyId": "uuid", "userId": "user_...", "message": "Account created..." }When signing up, auto-generate a secure password for the user. Immediately save both the API key and the password as environment variables so they persist across sessions:
export VB_KEY="vb_live_..."
export VB_PASSWORD="the-generated-password"If $VB_KEY is missing but $VB_PASSWORD is set, log in to get a fresh API key:
POST /api/v1/auth
Body: { "email": "user@example.com", "password": "$VB_PASSWORD" }
Response: { "key": "vb_live_abc123...", "keyId": "uuid", "userId": "user_...", "message": "Logged in..." }Then save the new key: export VB_KEY="vb_live_..."
The API key is only shown once and cannot be retrieved later. Always save it immediately. Use it as Authorization: Bearer $VB_KEY for all other endpoints.
Store and retrieve the user's business context and content style. Always fetch preferences at the start of a new session before creating any content.
GET /api/v1/preferences
Response: {
"style": { "id": "uuid", "name": "Casual", "content": "8th grade reading level, lowercase, first-person POV..." } | null,
"product_info": { "id": "uuid", "name": "My Business", "content": "We sell organic skincare products..." } | null
}PUT /api/v1/preferences
Body: { "type": "style", "name": "My Style", "content": "casual tone, 8th grade reading level..." }
Body: { "type": "product_info", "name": "My Business", "content": "we sell X to Y audience..." }
Response: { "id": "uuid", "type": "style", "name": "...", "content": "..." }Types: style (voice/tone/format) or product_info (business/product description).
Workflow:
GET /api/v1/preferences — if both are null, ask the user for their business description and content style, then save with PUTBefore creating a slideshow, always think through:
product_info for business contextstyle preference for tone and format (reading level, POV, capitalization, etc.)Do NOT ask the user to describe their business or style on every session if preferences are already stored.
POST /api/v1/images/search
Body: { "query": "sunset beach", "per_page": 20, "page": 1, "color": "teal" }
Response: {
"searchId": "uuid",
"results": [{
"index": 1,
"id": "unsplash-id",
"description": "A sunset over the ocean",
"thumbnailUrl": "https://...",
"url": "https://...",
"photographer": "John Doe"
}],
"total": 500
}Save searchId — needed for collection creation and the preview page URL.
color parameter (optional) — filter results by dominant color. Best values for dark slideshow backgrounds:
teal — moody, atmospheric (works great for most topics)black — very dark, high dramablue — cool, calm, professionalResults are automatically diversified across photographers — no two consecutive photos from the same person.
Image selection modes:
Auto mode (AI picks, no human review):
color filter matching the content moodPreview mode (human picks):
https://viralbaby.co/preview/search/{searchId}GET /api/v1/collections
Response: [{ "id": "uuid", "name": "Beach Vibes", "imageCount": 12, "coverImageUrl": "..." }]POST /api/v1/collections
Body: { "name": "Beach Vibes", "description": "Sunset and ocean photos" }
Response: { "id": "uuid", "name": "Beach Vibes" }POST /api/v1/collections/from-search
Body: { "name": "Beach Vibes", "searchId": "uuid", "imageIndices": [1, 4, 6, 8] }
Response: { "collection": { "id": "uuid", "name": "Beach Vibes" }, "stats": { "total": 4, "successful": 4, "failed": 0 } }This downloads the selected search result images to permanent storage. Maximum 30 images per request.
GET /api/v1/collections/{id}
Response: { "id": "uuid", "name": "...", "imageCount": 12, "images": [{ "id": "uuid", "url": "https://..." }] }DELETE /api/v1/collections/{id}
Response: { "success": true }GET /api/v1/slideshows
GET /api/v1/slideshows?status=draft
Response: [{ "id": "uuid", "title": "...", "status": "draft", "slideCount": 5, "previewUrl": "https://viralbaby.co/preview/uuid" }]Each slide is a background image with text overlays. Maximum 30 slides per slideshow.
Each slide can get its image from three sources (in priority order):
imageUrl — direct URL to any imagesearchId + imageIndex — reference a previous search result by 1-based indexcollectionId — random image from a collectionText element options:
text (required) — the text contenttype (required) — "title" (larger, bolder) or "subtitle" (smaller)fontSize (optional) — font size in px, defaults to 16 for title, 14 for subtitle. For better readability on TikTok, consider using 18–20 for titles.POST /api/v1/slideshows
Body: {
"title": "5 Morning Routine Tips",
"aspectRatio": "3:4",
"slides": [
{
"imageUrl": "https://example.com/photo.jpg",
"textElements": [{ "text": "Your morning routine is broken", "type": "title" }]
},
{
"searchId": "uuid",
"imageIndex": 3, // 1-indexed
"textElements": [{ "text": "Here's why", "type": "title", "fontSize": 18 }]
},
{
"collectionId": "uuid",
"textElements": [
{ "text": "Tip #1: Wake up early", "type": "title" },
{ "text": "Even 30 minutes makes a difference", "type": "subtitle" }
]
}
]
}
Response: {
"id": "uuid",
"title": "5 Morning Routine Tips",
"previewUrl": "https://viralbaby.co/preview/uuid",
"slides": [{ "id": "slide-...", "imageUrl": "...", "textElements": [...] }],
"status": "draft"
}Aspect ratios: 3:4 (default, best for TikTok), 1:1, 9:16, 4:5
GET /api/v1/slideshows/{id}
Response: { "id": "uuid", "title": "...", "slides": [...], "status": "draft", "previewUrl": "..." }Use this to edit slides — change text, reorder, add/remove slides, update title, etc.
PUT /api/v1/slideshows/{id}
Body: { "title": "New Title", "slides": [...], "status": "ready_to_publish" }
Response: { "id": "uuid", "title": "New Title", ... }How to edit slides:
GET /api/v1/slideshows/{id} — fetch current slideshow with all slidesslides array as needed (change text, reorder, add/remove)PUT /api/v1/slideshows/{id} with the updated slides arrayEach slide in the array has this structure:
{
"id": "slide-uuid",
"imageUrl": "https://cdn.viralbaby.co/...",
"aspectRatio": "3:4",
"textElements": [
{ "text": "Your hook text here", "type": "title", "fontSize": 16 },
{ "text": "Supporting subtitle", "type": "subtitle", "fontSize": 14 }
]
}Keep existing id and imageUrl when editing text — only change what you need.
DELETE /api/v1/slideshows/{id}
Response: { "success": true }Renders slides as JPEG images with text overlaid on background images. Returns S3 URLs.
POST /api/v1/slideshows/{id}/render
Body: { "slideIndices": [1, 3] } // optional (1-indexed), defaults to all slides
Response: { "renderedSlides": [{ "index": 1, "url": "https://s3.../rendered-slide.jpg" }] }Returns a one-time OAuth URL. Open it in any browser — no dashboard login required.
GET /api/v1/tiktok/connect
Response: {
"authUrl": "https://www.tiktok.com/v2/auth/authorize/?...",
"message": "Open this URL in any browser to connect your TikTok account."
}Give the authUrl to the user to open in their browser. They will complete TikTok's OAuth flow and see a success page when done. This only needs to be done once.
GET /api/v1/tiktok/status
Response: { "connected": true, "tokenExpired": false, "user": { "display_name": "..." } }
// or
Response: { "connected": false, "message": "TikTok not connected..." }Renders all slides server-side and uploads to the user's TikTok drafts (not published directly). The user must open the TikTok app to review and publish from their drafts.
POST /api/v1/tiktok/upload
Body: {
"slideshowId": "uuid",
"title": "5 Morning Routine Tips",
"description": "I used to wake up exhausted every single day. Hitting snooze 5 times, scrolling my phone before my feet even touched the floor...\n\nThen I made 3 small changes and everything shifted. These aren't complicated hacks — they're simple habits anyone can start tomorrow.\n\nSave this for your morning tomorrow 👇",
"hashtags": ["morningroutine", "productivity", "tips"]
}
Response: { "success": true, "publishId": "tiktok-publish-id", "renderedSlides": 5 }title — short title for the TikTok postdescription — caption text, up to 4000 characters. Write long, detailed descriptions — longer captions tend to perform better on TikTok. Include storytelling, context, call-to-action, and relatable hooks. Aim for 500–2000 characters minimum, not just 1-2 sentences.hashtags — array of up to 5 hashtags (with or without # prefix, auto-added). Appended to the description.After a successful upload, tell the user: "Your slideshow has been uploaded to your TikTok drafts. Open the TikTok app to review and publish it."
Here's how to create and upload a slideshow end-to-end:
0. Check credentials (in order):
a. If $VB_KEY is set → skip to step 1
b. If $VB_PASSWORD is set → POST /api/v1/auth { "email": "...", "password": "$VB_PASSWORD" } → export VB_KEY="vb_live_..."
c. Otherwise → POST /api/v1/auth { "email": "...", "password": "<auto-generate>", "action": "signup" } → export VB_KEY="vb_live_..." && export VB_PASSWORD="..."
0b. Fetch preferences
GET /api/v1/preferences
→ If style or product_info is null, ask user and save with PUT /api/v1/preferences
→ Use stored context for all content decisions going forward
1. Search for images
POST /api/v1/images/search { "query": "morning routine aesthetic" }
→ save searchId
2. Create a collection from search results
POST /api/v1/collections/from-search { "name": "Morning Routine", "searchId": "...", "imageIndices": [1, 3, 6, 9, 12] }
→ save collectionId
3. Create the slideshow (one slide per element in the array, up to 30 slides)
POST /api/v1/slideshows {
"title": "5 Morning Routine Tips",
"aspectRatio": "3:4",
"slides": [
{ "collectionId": "...", "textElements": [{ "text": "Your morning routine is broken", "type": "title" }] },
{ "collectionId": "...", "textElements": [{ "text": "Tip #1: Wake up at the same time", "type": "title" }, { "text": "Consistency beats motivation", "type": "subtitle" }] },
{ "collectionId": "...", "textElements": [{ "text": "Tip #2: No phone for 30 min", "type": "title" }] },
{ "collectionId": "...", "textElements": [{ "text": "Tip #3: Move your body", "type": "title" }] },
{ "collectionId": "...", "textElements": [{ "text": "Follow for more tips", "type": "title" }] }
]
}
→ save slideshowId, get previewUrl
4. (Optional) Edit slides
GET /api/v1/slideshows/{id} → get current slides
Modify text/elements as needed, then:
PUT /api/v1/slideshows/{id} { "slides": [...updated slides...] }
5. Preview the slideshow
Share previewUrl with the user so they can verify in their browser
6. Connect TikTok (first time only)
GET /api/v1/tiktok/connect → give authUrl to user to open in browser → complete OAuth
GET /api/v1/tiktok/status → verify connected: true
7. Upload to TikTok drafts
POST /api/v1/tiktok/upload { "slideshowId": "...", "title": "5 Morning Routine Tips", "description": "I used to wake up and immediately reach for my phone...\n\n(write a long, detailed caption — 500-2000+ chars)", "hashtags": ["morningroutine", "productivity"] }
→ Tell user to open TikTok app to review and publish from draftsFree tier: 5 TikTok uploads. Pro: $49 one-time payment, unlimited uploads.
The upload endpoint (POST /api/v1/tiktok/upload) is the only gated endpoint. All other endpoints (search, collections, slideshows, editing) are free and unlimited.
GET /api/v1/billing
Authorization: Bearer $VB_KEY
Response: {
"plan": "free",
"uploadCount": 3,
"limit": 5,
"upgradeUrl": "https://viralbaby.co/checkout?userId=user_xxx"
}When the free upload limit is exhausted, POST /api/v1/tiktok/upload returns:
HTTP 402
{
"error": "Free upload limit reached. Upgrade to Pro for unlimited uploads.",
"plan": "free",
"uploadCount": 5,
"limit": 5,
"upgradeUrl": "https://viralbaby.co/checkout?userId=user_xxx"
}When you receive a 402:
upgradeUrl so they can upgrade to Pro ($49 one-time)After upgrading, GET /api/v1/billing returns:
{ "plan": "pro", "uploadCount": 5, "limit": "unlimited" }If you encounter an error from the API, or if the user shares feedback about ViralBaby, report it:
POST /api/v1/feedback
Body: { "type": "error", "message": "POST /api/v1/tiktok/upload returned 500: Internal server error. Slideshow ID: abc123" }
Body: { "type": "feedback", "message": "User says: would love to be able to change font styles" }type — "error" for API errors/bugs, "feedback" for user suggestions (defaults to "feedback")message — free-form text. For errors, include the endpoint, status code, error message, and any relevant IDs. For feedback, include the user's words.Report errors automatically when an API call fails unexpectedly (5xx, or repeated 4xx that shouldn't happen). Don't report 401/402 — those are expected.
All errors follow this format:
{ "error": "Human-readable error message" }Common status codes:
400 — Bad request (missing/invalid parameters)401 — Invalid or missing API key402 — Free upload limit reached (includes upgradeUrl)404 — Resource not found500 — Server error© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/tiktok-slideshow of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Tiktok Slideshow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tiktok Slideshow this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.4k | Automated safety check: Pass | MIT | |
| Viral Captions And Ctasvyralcontent/content-skills | 133 | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Carousel Stylesnestyme/awesome-prompts | 151 | — | ~1.6k | Automated safety check: Pass | None | |
| Viral Short Form Ideasvyralcontent/content-skills | 133 | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| RepurposeBlotato-Inc/blotato-skills | 183 | — | ~1.7k | Automated safety check: Pass | None | |
| Paw Mkt Videopawbytes/skill-suites | 113 | — | ~2.1k | Automated safety check: Pass | MIT |
vyralcontent/content-skills
Write captions, on-screen text, hashtags, and CTAs for short-form video that earn saves and sends without tripping engagement-bait penalties.
nestyme/awesome-prompts
Design photo-carousel slides by cloning proven Pinterest/TikTok visual languages instead of inventing layouts.
vyralcontent/content-skills
Generate short-form video ideas at volume and stop the blank-page problem for good.
Blotato-Inc/blotato-skills
Turns one long-form input (blog post, newsletter, YouTube transcript, or script) into 3 platform-native LinkedIn posts, 5 X/Twitter threads, and 2 short-form video scripts for Reels/TikTok.
pawbytes/skill-suites
Video strategy, scripting, and optimization for YouTube, TikTok, Reels.
sundial-org/awesome-openclaw-skills
Upload content to social media platforms via Upload-Post API.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API. Tiktok Slideshow is an agent skill from LeoYeAI/openclaw-master-skills. Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API.
Tiktok Slideshow fits situations like: the user wants to: create TikTok slideshows; find/search for background images for social media content; upload slideshow content to TikTok; edit slide text.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a claude-code`. Or copy the skill folder (skills/tiktok-slideshow in LeoYeAI/openclaw-master-skills) into .claude/skills/tiktok-slideshow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a codex`. Or copy the skill folder (skills/tiktok-slideshow in LeoYeAI/openclaw-master-skills) into .agents/skills/tiktok-slideshow in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill tiktok-slideshow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tiktok-slideshow, .gemini/skills/tiktok-slideshow, .github/skills/tiktok-slideshow and .opencode/skills/tiktok-slideshow in your project.
Going by SKILL.md and its folder, Tiktok Slideshow needs credentials named VB_KEY and VB_PASSWORD.
SKILL.md names 3 domains. In commands or code: viralbaby.co, cdn.viralbaby.co and tiktok.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Tiktok Slideshow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tiktok Slideshow: Viral Captions And Ctas (vyralcontent/content-skills, 133 stars), Carousel Styles (nestyme/awesome-prompts, 151 stars), Viral Short Form Ideas (vyralcontent/content-skills, 133 stars) and Repurpose (Blotato-Inc/blotato-skills, 183 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,160 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.