Clipcat - AI Viral Video Maker for TikTok Shop
Clipcat - TikTok e-commerce video creation skill. Video search, product insights, viral replication, product-to-video generation, breakdown analysis, and video download via Clipcat CLI.
技能说明
name: clipcat description: Clipcat - TikTok e-commerce video creation skill. Video search, product insights, viral replication, product-to-video generation, breakdown analysis, and video download via Clipcat CLI. user-invocable: true metadata: { "openclaw": { "skillKey": "clipcat", "requires": { "env": ["CLIPCAT_API_KEY"] }, "primaryEnv": "CLIPCAT_API_KEY", "install": [ { "id": "download-darwin-arm64", "kind": "download", "os": ["darwin"], "arch": ["arm64"], "url": "https://static.clipcat.ai/public/cli/v1.0.24/clipcat_darwin_arm64.tar.gz", "archive": "tar.gz", "bins": ["clipcat"], "label": "Install Clipcat CLI (macOS Apple Silicon)", }, { "id": "download-darwin-x64", "kind": "download", "os": ["darwin"], "arch": ["x64"], "url": "https://static.clipcat.ai/public/cli/v1.0.24/clipcat_darwin_amd64.tar.gz", "archive": "tar.gz", "bins": ["clipcat"], "label": "Install Clipcat CLI (macOS Intel)", }, { "id": "download-linux-x64", "kind": "download", "os": ["linux"], "arch": ["x64"], "url": "https://static.clipcat.ai/public/cli/v1.0.24/clipcat_linux_amd64.tar.gz", "archive": "tar.gz", "bins": ["clipcat"], "label": "Install Clipcat CLI (Linux x86_64)", }, { "id": "download-linux-arm64", "kind": "download", "os": ["linux"], "arch": ["arm64"], "url": "https://static.clipcat.ai/public/cli/v1.0.24/clipcat_linux_arm64.tar.gz", "archive": "tar.gz", "bins": ["clipcat"], "label": "Install Clipcat CLI (Linux arm64)", }, { "id": "download-windows-x64", "kind": "download", "os": ["win32"], "arch": ["x64"], "url": "https://static.clipcat.ai/public/cli/v1.0.24/clipcat_windows_amd64.zip", "archive": "zip", "bins": ["clipcat.exe"], "label": "Install Clipcat CLI (Windows x86_64)", }, ], }, "homepage": "https://clipcat.ai", }
Clipcat CLI
Use this skill when you need TikTok e-commerce video creation through clipcat.
Get API key: https://clipcat.ai/workspace?modal=settings&tab=apikeys
This skill is intentionally short. Detailed flags and supported values belong to the CLI itself — always treat clipcat -h and clipcat <subcommand> -h as the primary reference.
Installation
This skill is auto-installed by OpenClaw using the declared install spec in the frontmatter above. OpenClaw downloads the platform-specific binary from versioned, immutable URLs under https://static.clipcat.ai/public/cli/vX.Y.Z/ and places it under ~/.openclaw/tools/clipcat/. No remote shell script is executed.
After installation, configure your API key once:
clipcat config --api-key <your-key> --base-url https://clipcat.ai
What this CLI is for
clipcat is the local entrypoint for all Clipcat AI video generation workflows:
- Query TikTok e-commerce data across 6 entity domains: creators, products, shops, videos, lives, and keyword/image search (market intelligence, leaderboards, trends, relationships)
- Replicate viral videos with your product
- Generate product videos from images
- Generate AI images from text prompts using GPT Image 2 (with optional reference images)
- Analyze videos (script, scenes, music)
- Download TikTok/Douyin videos
- Query async task status
Default agent workflow
- Start with
clipcat -hto see all commands. - Before using any command, run
clipcat <subcommand> -hto see flags. - Default to JSON output. Only use
--prettywhen the result is meant for human terminal reading. - Before any credit-consuming video command, quote the exact cost with
clipcat quote, confirm it with the user, and submit with--expected-credits(see "Confirming cost before paid video commands").
Choosing the right command
TikTok e-commerce data — entity commands
Noun-verb commands: clipcat <entity> <verb>. Run clipcat <entity> -h for verbs
and clipcat <entity> <verb> -h for flags.
creator <list|rank|detail|trend|videos|lives|products|followers|following|region|milestones>— creators/influencersproduct <list|rank|detail|trend|comments|creators|videos|lives>— TikTok Shop productsseller <list|rank|detail|trend|products|creators|videos|lives>— TikTok Shop shopsvideo <list|rank|detail|trend|comments|captions|products|hashtag>— videoslive detail— live-room detail (only while live)find <creators|products|videos|lives|hashtags|music|photo|all>— keyword/image search;find allis the broad fallback
--mode offline|realtime (only on creator detail|videos, product comments,
seller products, video detail): default is the safe choice — omit unless the
user needs latest/current (realtime) vs history/trend/leaderboard (offline). Never
say "offline/realtime" to users; phrase as latest vs historical.
Pagination: offline list/rank commands take --page / --page-size (and
--max-pages to auto-fetch several pages); realtime lists take --offset /
--cursor / --scroll-param echoed back from a prior page.
Data-query playbook (dense):
- Chain ids, don't guess them. Discover first (
<entity> list|rank,find …), take the id from the result, then calldetail/trend/ relationship verbs. Detail verbs take comma-separated batches (--user-ids,--product-ids,--video-ids, ≤10). - Seed relationships from commerce-active entities. Sub-resource verbs
(
creator products|lives,product creators|videos|lives,seller lives,video products) return[]for low-activity ids. Pull seeds from… rankor a sorted… list(top sales/followers), not an arbitrary row, or expect empties. … rankneeds a recent--date. Pass any day in the target period — the backend auto-snaps it to the period anchor (week→that week's Monday, month→that month's 1st) and back to the latest complete period (data is T+1), so a mid-week / mid-month date, or even today, still resolves. But it must fall within the freshness window keyed to--rank-type: day ≤30d, week ≤6mo, month ≤12mo back from today. A too-old date (e.g. last year) is rejected upstream asrant_type N only support …— move it forward toward today; don't switch rank-type.- Category filtering is numeric and split by level. To scope
rank/listto a category, first runcategory resolve --keyword <term>(e.g.lipstick/口红; CJK auto-uses the zh tree). It returns each match's level + ancestor ids{l1_id, l2_id?, l3_id?}(ids work for any region). Pass the id for the level the target command takes: product/seller rank/list use L1→--category-id, L2→--category-l2-id, L3→--category-l3-id(--category-idis L1-only — don't put an L2/L3 id there); creator rank takes any level via--product-category-id; video rank only accepts L1 (l1_id). Low-confidencehint→ runcategory tree(L1+L2 overview), pick the branch by meaning, thencategory tree --parent <that L2 id>to drill into its L3 leaves. For plain keyword search (no leaderboard),find products --keywordneeds no id. find productsreturns product_id only (it's a search index). For title / price / metrics, chain the ids intoproduct detail.- Empty
[]/nullmeans "none", not an error. Known thin/quirky:creator region(unreliable → readregionfromcreator detailinstead),video captions(many videos have none),live detail(only while a room is live),seller products --mode realtime(empty when no live inventory; the offline default already covers it). - Responses are server-trimmed to signal (ids, core metrics, names, key links; images already converted to accessible URLs) — no raw-blob handling needed.
Video generation & tools
quote— return the exact credit cost of one specific generation (--model+--resolution+--duration, plus--url/--socialfor a TikTok/Douyin replicate, plus--enhancefor super-resolution). The primary way to quote a paid command: the server does all the math and hands backtotalCredits(already includes the enhance fee) plusenhanceCredits/enhanceBlocked(see "Confirming cost before paid video commands" and "Super-resolution").models— browse all available video models with their credit costs (discrete →prices, range →creditsPerSecond) and your balance. Use it when the user hasn't picked a model yet, or an unavailable one is reported.replicate— replicate a viral video with your product images (auto-detects URL type); images via--image(local) or--image-url(URL); local files and URLs can be mixed; supports--model,--duration,--size(only9:16or16:9),--lang,--resolution,--enhance(super-resolution, see below),--character-id,--expected-creditsproduct_video— generate video from product images only (no reference video); images via--image(local) or--image-url(URL); local files and URLs can be mixed;--sizeonly accepts9:16or16:9; supports--enhance(super-resolution, see below),--expected-creditsimage— generate an AI image from a text prompt using GPT Image 2 model; optionally supply up to 5 reference images via--image(local file) or--image-url(URL). Use--aspect-ratioto pick1:1(default) /16:9/9:16. Dimension hints (9:16/16:9/1:1, portrait/landscape/square, 竖版/横版/方图, banner, wallpaper) must appear in BOTH--promptand--aspect-ratio—--aspect-ratiosets canvas, the prompt hint anchors framing. Don't invent dimensions the user didn't ask for.list_images— list image generation tasks from server; supports--status/--limit/--pagefiltersbreakdown— analyze a video (script, scenes, music); returns cached result immediately if previously analyzeddownload— download TikTok/Douyin video (returns signed URL); cached results return immediatelyquery_task— check status of a task by ID and type (--type replicate | product | breakdown | download | image). Omit--task-idto resume the latest local task. With--enhance, eachvideos[]item carries its ownstatus/enhanceStatus(see "Super-resolution").list_tasks— list recent video-related tasks from server (--typerequired:replicate | product | breakdown | download). Image tasks uselist_images.
Confirming cost before paid video commands
replicate and product_video consume credits. Always confirm cost first — and
never compute the credits yourself, let clipcat quote return them:
- Run
clipcat quotewith the SAME parameters you'll submit (--model,--resolution,--duration; for a TikTok/Douyin replicate also pass the--url, which auto-adds the download surcharge; for super-resolution also pass--enhance). It returnstotalCredits(the server does all the math — per-second rates, download surcharge, deferred enhance fee) and yourremainingCredits. - Show the user the model, duration, resolution and that
totalCredits, and get explicit approval. - Submit with
--expected-credits <totalCredits>. The server rejects the request only if the real cost is higher than what you pass, so you can never overcharge (a cheaper real cost — cache hit, promo — just goes through). On a rejection it returns the current cost — re-confirm that number with the user and resubmit with the updated--expected-credits.
When the user hasn't chosen a model yet (or you need the full menu), run clipcat models to list every available model and its cost, then clipcat quote the pick.
Premium models (e.g. seedance2, happyhorse10) require a paid plan; clipcat quote flags them (premiumBlocked) and the server rejects them for free users.
Super-resolution (--enhance)
replicate and product_video accept --enhance 720p|1080p|2k to upscale the
finished video. Rules:
- Tier must be strictly higher than the generated resolution: 480p → 720p / 1080p / 2k, 720p → 1080p / 2k, 1080p → 2k, 2k → no option. The CLI only enum-checks the value; the server enforces the tier ladder.
- Paid plans only. Free users are rejected on submit;
clipcat quote --enhanceflags this asenhanceBlocked: true(upgrade needed). - Cost = ceil(duration_sec / 10) × tier rate (
720p=10,1080p=20,2k=30 credits per 10s). It is deferred — charged only after the base video succeeds.quotereturns it asenhanceCredits, already folded intototalCredits; submit thattotalCreditsvia--expected-credits. - Status semantics (
query_task): once the base video is ready it appears invideos[]withstatus: enhancingand a usablevideoUrl(the original), but the task reaches its final completed state only after enhance finishes (a standard 1-min video takes ~6-10 min extra).enhanceStatus: failed→ the task still completes and delivers the original video, and the enhance fee is refunded.
clipcat quote --model seedance2 --resolution 480p --duration 8 --enhance 1080p
# → seedance2 480p 8s → 320 credits + 20 enhance (1080p) → total 340 credits
clipcat product_video --image product.jpg --model seedance2 --duration 8 \
--resolution 480p --size 9:16 --enhance 1080p --expected-credits 340
replicate: URL type auto-detection
clipcat replicate automatically detects the URL type:
- TikTok/Douyin link → calls
/replicate_from_social(costs 10 extra credits for download) - Direct video URL → calls
/replicate
Always inform the user about the extra credits before running with a social URL.
clipcat:// asset references
clipcat://... strings seen in earlier turns are stable asset references. Pass them verbatim to any --image-url / --character-id flag — never prepend https:// or modify them. See subcommand -h for details.
Async task rules
replicate, product_video, image, and breakdown are async. All four
submit and return immediately with a task ID — they never block.
Typical durations: image ~3 min, breakdown a few minutes, product_video /
replicate 10+ min. Never try to wait synchronously inside a single tool
call — every realistic agent harness has a tool-call timeout (commonly 60s)
that will kill the call long before the task is done. Always go submit → return
→ poll across turns.
- Task ID is saved locally to
~/.clipcat/tasks.jsonautomatically. - Check status with
clipcat query_task --task-id <id> --type <type>. Each call returns immediately with the current status. Omit--task-idto resume the latest task. Re-invoke the command across turns (suggested cadence: ~30s forimage, ~1-2 min forbreakdown/product_video/replicate) untilstatusiscompletedorfailed. - Use
clipcat list_tasks --type <replicate|product|breakdown|download>to see tasks of a given type from the server.
query_task: auto-resume
clipcat query_task with no flags automatically reads the latest task from ~/.clipcat/tasks.json and resumes it. No need to remember task IDs.
Available models
Trial models are available to all users; standard models require a paid plan.
| Model ID | Duration | Resolution | Notes |
|---|---|---|---|
veo3.1fast | 8s, 16s, 24s | 720p, 1080p | Trial. Google Veo 3.1 Fast, balanced quality and cost |
veo3.1pro | 8s, 16s, 24s | 720p, 1080p | Trial. Google Veo 3.1 Pro, high-quality variant |
omini_flash | 10s | 720p, 1080p | Trial. Gemini Omni Flash, Google's newest model |
grok_imagine | 10s, 15s, 20s, 30s | 720p | Trial, default. 9:16 aspect ratio only, longer clips |
seedance2 | 4-15s (any integer) | 480p, 720p, 1080p | Standard (paid). ByteDance Seedance 2, top quality |
seedance2_fast | 4-15s (any integer) | 480p, 720p, 1080p | Standard (paid). ByteDance Seedance 2 Fast, fast variant |
happyhorse10 | 3-15s (any integer) | 720p, 1080p | Standard (paid). Alibaba HappyHorse 1.0 |
sora2_official_exp | 4s, 8s, 12s | 720p | Standard (paid). OpenAI Sora 2 official channel, 9:16 or 16:9 |
Always check clipcat replicate -h for the current model list, and clipcat models for the authoritative live per-combination credit costs and your balance.
Supported languages (--lang)
en zh fr de ms vi th ja ko id fil es
Region (--region)
ISO 3166-1 alpha-2, uppercase: US GB DE ES FR IT JP MX BR ID MY PH SG TH VN. Server-enforced; an out-of-range code returns the current allowed list.
Good agent behavior
- Run
clipcat -hfirst if unsure which command to use. - For paid video commands (
replicate,product_video): quote the exact cost withclipcat quote(same params you'll submit), show the user the model / duration / resolution /totalCredits, get explicit approval, then submit with--expected-credits <totalCredits>. Never compute the credits yourself — letclipcat quotereturn them. - Keep record of task IDs; re-invoke
query_taskacross turns to track long-running tasks. - Preserve signed video URLs intact — they contain
X-Amz-*params that break if truncated. - Agents should prefer the default JSON output.
- Use
--prettyonly for human-facing terminal display.
如何使用「Clipcat - AI Viral Video Maker for TikTok Shop」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Clipcat - AI Viral Video Maker for TikTok Shop」技能完成任务
- 结果即时呈现,支持继续对话优化