wonda-cli
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWonda CLI
Wonda CLI
Wonda CLI is a content creation toolkit for terminal-based agents. Use it to generate images, videos, music, and audio; edit and compose media; publish to social platforms; and research/automate across LinkedIn, Reddit, and X/Twitter.
Wonda CLI 是面向终端 Agent 的内容创作工具包,可用于生成图片、视频、音乐和音频;编辑和合成媒体内容;发布到社交平台;以及跨 LinkedIn、Reddit 和 X/Twitter 完成调研与自动化操作。
Install
安装
If is not found on PATH, install it first:
wondabash
curl -fsSL https://wonda.sh/install.sh | bashOr via Homebrew:
Or via npm:
brew tap degausai/tap && brew install wondanpm i -g @degausai/wonda如果 PATH 中找不到 ,请先完成安装:
wondabash
curl -fsSL https://wonda.sh/install.sh | bash或通过 Homebrew 安装:
或通过 npm 安装:
brew tap degausai/tap && brew install wondanpm i -g @degausai/wondaSetup
配置
- Auth: (opens browser) or
wonda auth loginorexport WONDERCAT_API_KEY=sk_...wonda config set api-key sk_... - Base URL (local dev):
export WONDERCAT_BASE_URL=http://localhost:14692 - Verify:
wonda auth check - Config: /
wonda config set <key> <value>(keys:wonda config get <key>,api-key)base-url
- 身份验证:执行 (会打开浏览器),或
wonda auth login,或export WONDERCAT_API_KEY=sk_...wonda config set api-key sk_... - 基础 URL(本地开发用):
export WONDERCAT_BASE_URL=http://localhost:14692 - 验证配置:
wonda auth check - 配置管理:/
wonda config set <key> <value>(可配置键:wonda config get <key>、api-key)base-url
Access tiers
访问等级
Not all commands are available to every account type:
| Tier | Access |
|---|---|
| Anonymous (temporary account, no login) | Media upload/download, editing ( |
| Free (logged in, Basic/Free plan) | Everything above + generation ( |
| Paid (Plus, Pro, or Absolute plan) | Everything above + video analysis (requires credits), skill commands ( |
If a command returns a error, check your plan at https://app.wondercat.ai/settings/billing.
403不同账号类型支持的命令范围不同:
| 等级 | 权限 |
|---|---|
| 匿名用户(临时账号,无需登录) | 媒体上传/下载、编辑( |
| 免费用户(已登录,基础/免费套餐) | 上述所有功能 + 生成能力( |
| 付费用户(Plus、Pro 或 Absolute 套餐) | 上述所有功能 + 视频分析(需消耗点数)、skill 命令( |
如果命令返回 错误,请前往 https://app.wondercat.ai/settings/billing 查看你的套餐详情。
403Global output flags
全局输出参数
All commands support these output control flags:
- — Force JSON output (auto-enabled when stdout is piped)
--json - — Only output the primary identifier (job ID, media ID, etc.) — ideal for scripting
--quiet - — Download output to file (implies
-o <path>)--wait - — Select specific JSON fields
--fields status,outputs - — Filter JSON output with a jq expression
--jq '.outputs[0].media.url'
所有命令都支持以下输出控制参数:
- — 强制输出 JSON 格式(当标准输出被管道传输时会自动启用)
--json - — 仅输出核心标识(任务 ID、媒体 ID 等),非常适合脚本调用
--quiet - — 将输出下载到指定文件(会自动启用
-o <path>)--wait - — 选择指定的 JSON 字段输出
--fields status,outputs - — 使用 jq 表达式过滤 JSON 输出
--jq '.outputs[0].media.url'
How to think about content creation
内容创作思路
You are a marketing director with access to a full production toolkit. Before touching any tool, think:
- What product category? (beauty, food, tech, fashion, fitness, etc.)
- What format performs for this category? (UGC memes for everyday products, cinematic for luxury, before/after for transformations, testimonial for services)
- What's the hook? (relatable scenario, surprising twist, aspirational lifestyle, social proof)
- What specific scene? (not "product on table" but "person discovering the product in a funny situation")
你可以把自己想象成手握全套生产工具的营销总监,在使用工具前,先想清楚这几点:
- 产品属于什么品类?(美妆、食品、科技、时尚、健身等)
- 这个品类的内容什么格式效果最好?(日常产品用 UGC 梗图、奢侈品用电影质感内容、转化类内容用前后对比、服务类内容用客户证言)
- 内容的钩子是什么?(共鸣场景、惊喜反转、向往的生活方式、社交证明)
- 具体要呈现什么场景?(不要写“桌上的产品”,要写“用户在有趣的场景下发现这款产品”)
Decision flow
决策流程
When asked to create content, follow this order:
当需要创建内容时,按照以下顺序执行:
Step 1: Gather context
步骤1:收集上下文
bash
wonda brand # Brand identity, colors, products, audience
wonda analytics instagram # What content performs well
wonda scrape social --handle @competitor --platform instagram --wait # Competitive research (if relevant)bash
wonda brand # 品牌标识、配色、产品、受众信息
wonda analytics instagram # 哪些内容表现更好
wonda scrape social --handle @competitor --platform instagram --wait # 竞品调研(如果需要)Cross-platform research (if relevant)
跨平台调研(如果需要)
wonda x search "topic OR keyword" # Find conversations on X/Twitter
wonda x user-tweets @competitor # Competitor's recent tweets
wonda reddit search "topic" --sort top --time week # Reddit discussions
wonda reddit feed marketing --sort hot # Subreddit trends
wonda linkedin search "topic" --type COMPANIES # LinkedIn company/people research
wonda linkedin profile competitor-vanity-name # LinkedIn profile intel
undefinedwonda x search "topic OR keyword" # 查找 X/Twitter 上的相关讨论
wonda x user-tweets @competitor # 竞品的最新推文
wonda reddit search "topic" --sort top --time week # Reddit 相关讨论
wonda reddit feed marketing --sort hot # 子版块趋势
wonda linkedin search "topic" --type COMPANIES # LinkedIn 企业/人员调研
wonda linkedin profile competitor-vanity-name # LinkedIn profile 情报
undefinedStep 2: Check content skills
步骤2:检查内容 skill
Content skills are step-by-step guides for common content types. Each skill tells you exactly which models, prompts, and editing operations to use — and in what order. ALWAYS check skills before building from scratch.
bash
wonda skill list # Browse all content skills
wonda skill get <slug> # Full step-by-step guide for a skillFull skill index:
| Slug | Description | Input |
|---|---|---|
| product-video | Product/scene video — prompt library for all categories | optional product image |
| ugc-talking | Talking-head UGC — single clip, two-angle PIP, or 20s+ with B-roll | optional reference |
| ugc-reaction-batch | Batch TikTok-native UGC reactions with viral strategy | optional product image |
| tiktok-ugc-pipeline | Scrape viral reel → generate 5 UGC → post as drafts | reel or TikTok URL |
| ugc-dance-motion | Dance/motion transfer | image + video |
| marketing-brain | Marketing strategy brain — hooks, visuals, ads | user brief |
| reddit-subreddit-intel | Scrape top posts, analyze virality, generate ideas | subreddit + product |
| twitter-influencer-search | Find X influencers and amplifiers | competitor/niche keywords |
If a skill matches → , read it, adapt to context, execute each step.
wonda skill get <slug>If no skill matches → build from scratch (Step 3).
内容 skill 是通用内容类型的分步操作指南,每个 skill 都会明确告诉你要使用哪些模型、Prompt、编辑操作,以及执行顺序。从零构建内容前一定要先检查是否有匹配的 skill。
bash
wonda skill list # 浏览所有内容 skill
wonda skill get <slug> # 查看某个 skill 的完整分步指南完整 skill 索引:
| Slug | 说明 | 输入 |
|---|---|---|
| product-video | 产品/场景视频 — 全品类 Prompt 库 | 可选产品图片 |
| ugc-talking | 真人出镜 UGC — 单片段、双角度画中画、或20秒以上带辅助镜头的内容 | 可选参考素材 |
| ugc-reaction-batch | 批量生成 TikTok 原生 UGC 反应视频,附带爆款策略 | 可选产品图片 |
| tiktok-ugc-pipeline | 爬取爆款 Reel → 生成5条UGC → 存为草稿 | Reel 或 TikTok URL |
| ugc-dance-motion | 舞蹈/动作迁移 | 图片 + 视频 |
| marketing-brain | 营销策略大脑 — 钩子、视觉、广告方案 | 用户需求brief |
| reddit-subreddit-intel | 爬取热帖、分析爆款逻辑、生成内容思路 | 子版块 + 产品 |
| twitter-influencer-search | 查找 X 平台的网红和传播资源 | 竞品/垂直领域关键词 |
如果有匹配的 skill → 执行 ,阅读指南,适配上下文,逐步执行每个步骤。
wonda skill get <slug>如果没有匹配的 skill → 从零构建(步骤3)。
Step 3: Build from scratch (chain endpoints)
步骤3:从零构建(链式调用端点)
When no skill matches, chain individual CLI commands. Each step produces an output that feeds into the next.
Single asset:
bash
wonda generate image --model nano-banana-2 --prompt "..." --aspect-ratio 9:16 --wait -o out.png当没有匹配的 skill 时,可以链式调用单独的 CLI 命令,每个步骤的输出会作为下一个步骤的输入。
单资源生成:
bash
wonda generate image --model nano-banana-2 --prompt "..." --aspect-ratio 9:16 --wait -o out.png--negative-prompt "..." — override what to exclude (models like cookie have good defaults)
--negative-prompt "..." — 指定要排除的内容(像 cookie 这类模型已经有不错的默认值)
--seed <number> — pin the seed for reproducible results
--seed <number> — 固定 seed 保证生成结果可复现
wonda generate video --model seedance-2 --prompt "..." --duration 5 --params '{"quality":"high"}' --wait -o out.mp4
wonda generate text --model <model> --prompt "..." --wait
wonda generate music --model suno-music --prompt "upbeat lo-fi" --wait -o music.mp3
**Audio (speech, transcription, dialogue):**
```bashwonda generate video --model seedance-2 --prompt "..." --duration 5 --params '{"quality":"high"}' --wait -o out.mp4
wonda generate text --model <model> --prompt "..." --wait
wonda generate music --model suno-music --prompt "upbeat lo-fi" --wait -o music.mp3
**音频相关(语音、转录、对话):**
```bashText-to-speech
文本转语音
wonda audio speech --model elevenlabs-tts --prompt "Your script here"
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait -o speech.mp3
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait -o speech.mp3
wonda audio speech --model elevenlabs-tts --prompt "你的脚本内容"
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait -o speech.mp3
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait -o speech.mp3
elevenlabs-tts always requires a voiceId param
elevenlabs-tts 始终需要传入 voiceId 参数
Common voice: Rachel (female) "21m00Tcm4TlvDq8ikWAM"
常用语音:Rachel(女声)对应ID "21m00Tcm4TlvDq8ikWAM"
Transcribe audio/video to text
将音频/视频转录为文本
wonda audio transcribe --model elevenlabs-stt --attach $MEDIA --wait
wonda audio transcribe --model elevenlabs-stt --attach $MEDIA --wait
Multi-speaker dialogue
多角色对话生成
wonda audio dialogue --model elevenlabs-dialogue --prompt "Speaker A: Hi! Speaker B: Hello!"
--wait -o dialogue.mp3
--wait -o dialogue.mp3
**Add animated captions to a video:**
The `animatedCaptions` operation handles everything in one step — it extracts audio, transcribes for word-level timing, and renders animated word-by-word captions onto the video.
```bashwonda audio dialogue --model elevenlabs-dialogue --prompt "Speaker A: Hi! Speaker B: Hello!"
--wait -o dialogue.mp3
--wait -o dialogue.mp3
**给视频添加动态字幕:**
`animatedCaptions` 操作可以一步完成所有流程:提取音频、生成逐词时间轴、在视频上渲染逐词高亮的动态字幕。
```bashGenerate a video with speech audio
生成带语音的视频
VID_JOB=$(wonda generate video --model seedance-2 --prompt "..." --duration 5 --aspect-ratio 9:16 --params '{"quality":"high"}' --wait --quiet)
VID_URL=$(wonda jobs get inference $VID_JOB --jq '.outputs[0].media.url')
wonda media download "$VID_URL" -o /tmp/vid.mp4
VID_MEDIA=$(wonda media upload /tmp/vid.mp4 --quiet)
VID_JOB=$(wonda generate video --model seedance-2 --prompt "..." --duration 5 --aspect-ratio 9:16 --params '{"quality":"high"}' --wait --quiet)
VID_URL=$(wonda jobs get inference $VID_JOB --jq '.outputs[0].media.url')
wonda media download "$VID_URL" -o /tmp/vid.mp4
VID_MEDIA=$(wonda media upload /tmp/vid.mp4 --quiet)
Add animated captions (single step)
一步添加动态字幕
wonda edit video --operation animatedCaptions --media $VID_MEDIA
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}'
--wait -o final.mp4
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}'
--wait -o final.mp4
The video's original audio is preserved. Do NOT replace the audio with TTS — Sora already generated the speech.
**Output URL paths differ by job type:**
- Inference jobs (generate, audio): `.outputs[0].media.url` and `.outputs[0].media.mediaId`
- Editor jobs (edit): `.outputs[0].url` and `.outputs[0].mediaId`wonda edit video --operation animatedCaptions --media $VID_MEDIA
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}'
--wait -o final.mp4
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}'
--wait -o final.mp4
视频的原始音频会保留,不要用TTS替换音频 — Sora已经自带生成的语音了。
**不同任务类型的输出URL路径不同:**
- 推理任务(生成、音频操作):`.outputs[0].media.url` 和 `.outputs[0].media.mediaId`
- 编辑任务:`.outputs[0].url` 和 `.outputs[0].mediaId`Model waterfall
模型选择优先级
Image
图片
Default: . Only use others when:
nano-banana-2- User explicitly asks for a different model
- Need vector output →
runware-vectorize - Need background removal →
birefnet-bg-removal - Cheapest possible →
z-image - NanoBanana fails (rare) →
seedream-4-5 - Need readable text in image →
gpt-image-1-5 - Photorealistic/creative imagery → or
grok-imaginegrok-imagine-pro - Spicy content → (SDXL-based, tag-based or natural language prompts) — ONLY select when the user explicitly asks for spicy content. Never auto-select.
cookie
Cookie model (): SDXL with DMD acceleration and hires fix. Restricted: only use when the user explicitly requests spicy content. Accepts both danbooru-style tags () and natural language. Supports (has sensible defaults; override only when needed) and for reproducibility.
cookie1cat, portrait, soft lighting--negative-prompt--seedbash
wonda generate image --model cookie --prompt "1cat, portrait, soft lighting" --wait -o out.png
wonda generate image --model cookie --prompt "a woman in a garden, golden hour" \
--negative-prompt "ugly, blurry, watermark" --seed 42 --wait -o out.png默认模型:,仅在以下场景使用其他模型:
nano-banana-2- 用户明确要求使用其他模型
- 需要矢量输出 →
runware-vectorize - 需要抠图 →
birefnet-bg-removal - 需要最低成本 →
z-image - NanoBanana 生成失败(罕见)→
seedream-4-5 - 需要图片里的文字清晰可辨 →
gpt-image-1-5 - 写实/创意图像生成 → 或
grok-imaginegrok-imagine-pro - 成人内容 → (基于SDXL,支持标签或自然语言Prompt)—— 仅当用户明确要求生成成人内容时使用,禁止自动选择。
cookie
Cookie模型(): 搭载DMD加速和高清修复的SDXL模型。限制:仅当用户明确要求生成成人内容时使用。 支持danbooru风格标签()和自然语言Prompt。支持(已有合理默认值,仅需要时覆盖)和实现可复现生成。
cookie1cat, portrait, soft lighting--negative-prompt--seedbash
wonda generate image --model cookie --prompt "1cat, portrait, soft lighting" --wait -o out.png
wonda generate image --model cookie --prompt "a woman in a garden, golden hour" \
--negative-prompt "ugly, blurry, watermark" --seed 42 --wait -o out.pngVideo
视频
Default: (duration 5/10/15s, default 5s, quality: high). Escalation:
seedance-2- Quality complaint or different style → or
sora2sora2pro - Max single-clip duration is 15s for Seedance 2, 20s for Sora → for longer content, stitch multiple clips via merge
- Fast generation needed → (Veo 3.1, supports 720p/1080p)
veo3_1-fast
Image-to-video routing (MANDATORY when attaching a reference image):
- Person/face visible in the reference image → MUST use (preserves identity better for faces)
kling_3_pro - No person in reference image → use
seedance-2 - Text-to-video (no reference image): Seedance 2 generates people fine. This rule ONLY applies when you an image.
--attach
Kling model family:
- — Text-to-video and image-to-video, supports start/end images, custom elements (@Element1, @Element2), 3-15s duration, 16:9/9:16/1:1
kling_3_pro - — General purpose, 5-10s, 16:9/9:16/1:1, text-to-video and image-to-video
kling_2_6_pro - — Motion transfer: requires both a reference image AND a reference video, recreates the video's motion with the image's appearance
kling_2_6_motion_control - — Budget Kling option, 5-10s, supports first/last frame images
kling2_5-pro
Other video models:
- — xAI video generation, 5-15s, supports 7 aspect ratios including 4:3 and 3:2
grok-imagine-video - — Upscale video resolution (1-4x factor, supports fps conversion)
topaz-video-upscale - — Sync lip movements to audio (requires video + audio input)
sync-lipsync-v2-pro
Seedance family (DEFAULT video model, watermarks automatically removed):
- — Base Seedance 2.0 (T2V/I2V, 5-15s, high=standard/basic=fast)
seedance-2 - — Multi-reference generation (images, audio refs)
seedance-2-omni - — Edit existing video via text prompt
seedance-2-video-edit
Video durations: Accepted values vary by model. Check with or .
--durationwonda capabilitieswonda models info <slug>默认模型:(支持5/10/15秒时长,默认5秒,质量:高)。升级逻辑:
seedance-2- 对质量不满或者需要不同风格 → 或
sora2sora2pro - Seedance 2 单片段最长支持15秒,Sora最长支持20秒 → 更长的内容需要合并多个片段
- 需要快速生成 → (Veo 3.1,支持720p/1080p)
veo3_1-fast
图生视频路由规则(传入参考图片时必须遵守):
- 参考图片中有人物/人脸 → 必须使用 (对人脸的身份保留效果更好)
kling_3_pro - 参考图片中没有人物 → 使用
seedance-2 - 文生视频(无参考图片): Seedance 2 生成人物的效果很好,本规则仅适用于使用传入图片的场景。
--attach
Kling 模型家族:
- — 文生视频和图生视频,支持首尾帧图片、自定义元素(@Element1, @Element2),时长3-15秒,支持16:9/9:16/1:1比例
kling_3_pro - — 通用模型,时长5-10秒,支持16:9/9:16/1:1比例,支持文生视频和图生视频
kling_2_6_pro - — 动作迁移:需要同时传入参考图片和参考视频,用参考图片的外观还原参考视频的动作
kling_2_6_motion_control - — 性价比Kling选项,时长5-10秒,支持首尾帧图片
kling2_5-pro
其他视频模型:
- — xAI视频生成模型,时长5-15秒,支持7种宽高比,包括4:3和3:2
grok-imagine-video - — 视频分辨率放大(支持1-4倍,支持帧率转换)
topaz-video-upscale - — 口型与音频同步(需要同时输入视频和音频)
sync-lipsync-v2-pro
Seedance 家族(默认视频模型,水印会自动移除):
- — 基础Seedance 2.0(支持T2V/I2V,时长5-15秒,high=标准质量/basic=快速生成)
seedance-2 - — 多参考生成(支持图片、音频参考)
seedance-2-omni - — 通过文本Prompt编辑现有视频
seedance-2-video-edit
视频时长: 不同模型支持的取值不同,可通过或查询。
--durationwonda capabilitieswonda models info <slug>Audio
音频
- Music: (set
suno-musicfor no vocals)--params '{"instrumental":true}' - Text-to-speech: — always set voiceId in params. Default female voice:
elevenlabs-tts(Rachel).--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' - Transcription:
elevenlabs-stt - Multi-speaker dialogue:
elevenlabs-dialogue
- 音乐:(设置
suno-music生成无人声版本)--params '{"instrumental":true}' - 文本转语音:— 必须在params中设置voiceId,默认女声:
elevenlabs-tts(Rachel)--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' - 转录:
elevenlabs-stt - 多角色对话:
elevenlabs-dialogue
Prompt writing rules
Prompt 编写规则
Follow this waterfall top-to-bottom. Use the FIRST matching rule and stop.
-
PASSTHROUGH — If the user says "use my exact prompt" / "verbatim" / "no enhancements" → copy their words exactly. Zero modifications.
-
IMAGE-TO-VIDEO — When a source image feeds into a video model, describe MOTION ONLY. The model can see the image. Do NOT describe the image content.
- Good:
"gentle breathing motion, camera slowly pushes in, atmospheric lighting shifts" - Bad: (describes the image)
"Two cats on a lavender background breathing softly"
- Good:
-
EMPTY PROMPT (from scratch) — Use the user's exact request as the prompt. Do NOT add style descriptors, lighting, composition, or mood.
- User says "create an image of a cat with sunglasses" → prompt:
"create an image of a cat with sunglasses" - Do NOT enhance to
"A playful orange tabby wearing oversized reflective sunglasses, studio lighting, shallow depth of field"
- User says "create an image of a cat with sunglasses" → prompt:
-
NON-EMPTY PROMPT (adapting a template) — Keep the structure and style, only swap content to match the user's request. Keep prompts literal and constraint-heavy.
请从上到下匹配优先级,使用第一个匹配的规则后停止:
-
直接透传 — 如果用户说“使用我给的精确Prompt”/“逐字使用”/“不要优化” → 完全复制用户的内容,零修改。
-
图生视频场景 — 当源图片输入到视频模型时,仅描述动作即可,模型可以看到图片内容,不要描述图片本身的内容。
- 正面示例:
"gentle breathing motion, camera slowly pushes in, atmospheric lighting shifts" - 反面示例:(描述了图片内容)
"Two cats on a lavender background breathing softly"
- 正面示例:
-
空Prompt(从零生成) — 直接使用用户的原始请求作为Prompt,不要添加风格、光线、构图、氛围等描述。
- 用户说“生成一张戴墨镜的猫的图片” → Prompt:
"create an image of a cat with sunglasses" - 不要优化成
"A playful orange tabby wearing oversized reflective sunglasses, studio lighting, shallow depth of field"
- 用户说“生成一张戴墨镜的猫的图片” → Prompt:
-
非空Prompt(适配模板) — 保留原有结构和风格,仅替换内容匹配用户需求,保持Prompt字面准确、约束清晰。
Aspect ratio rules
宽高比规则
Three cases, no exceptions:
- User specifies a ratio → use it:
--aspect-ratio 16:9 - User doesn't mention ratio → explicitly set for social content (UGC, TikTok, Reels, Stories). Portrait is the default for any social/marketing video.
--aspect-ratio 9:16 - Editing existing media → use to preserve source dimensions
--aspect-ratio auto
UGC and social content is ALWAYS portrait (9:16). If someone asks for a TikTok, Reel, Story, or UGC video, always use . Landscape is only for YouTube, presentations, or when explicitly requested.
--aspect-ratio 9:16Square (1:1) is supported by all Kling models and some image models — use for Instagram feed posts when requested.
三种情况,无例外:
- 用户指定了比例 → 直接使用:
--aspect-ratio 16:9 - 用户没有提到比例 → 社交内容(UGC、TikTok、Reels、Stories)明确设置为,竖屏是所有社交/营销视频的默认比例。
--aspect-ratio 9:16 - 编辑现有媒体 → 使用保留源文件的尺寸。
--aspect-ratio auto
UGC和社交内容始终使用竖屏(9:16)。 如果用户需要TikTok、Reel、Story或者UGC视频,一律使用。横屏仅用于YouTube、演示文稿,或者用户明确要求的场景。
--aspect-ratio 9:16正方形(1:1) 支持所有Kling模型和部分图片模型 — 用户要求Instagram Feed帖时使用。
Common chaining patterns
常见链式调用模式
These patterns show how to compose multi-step pipelines by chaining CLI commands. Each step's output feeds into the next.
这些模式展示了如何通过链式调用CLI命令构建多步流程,每个步骤的输出作为下一步的输入。
Animate an image to video
将图片动效化为视频
bash
MEDIA=$(wonda media upload ./product.jpg --quiet)bash
MEDIA=$(wonda media upload ./product.jpg --quiet)No person in image → Seedance 2
图片中没有人物 → 使用Seedance 2
wonda generate video --model seedance-2 --prompt "camera slowly pushes in, product rotates"
--attach $MEDIA --duration 5 --params '{"quality":"high"}' --wait -o animated.mp4
--attach $MEDIA --duration 5 --params '{"quality":"high"}' --wait -o animated.mp4
wonda generate video --model seedance-2 --prompt "camera slowly pushes in, product rotates"
--attach $MEDIA --duration 5 --params '{"quality":"high"}' --wait -o animated.mp4
--attach $MEDIA --duration 5 --params '{"quality":"high"}' --wait -o animated.mp4
Person in image → Kling (ONLY when attaching a reference image with a person)
图片中有人物 → 使用Kling(仅当传入带有人物的参考图片时适用)
wonda generate video --model kling_3_pro --prompt "the person turns and smiles"
--attach $MEDIA --duration 5 --wait -o person.mp4
--attach $MEDIA --duration 5 --wait -o person.mp4
undefinedwonda generate video --model kling_3_pro --prompt "the person turns and smiles"
--attach $MEDIA --duration 5 --wait -o person.mp4
--attach $MEDIA --duration 5 --wait -o person.mp4
undefinedReplace audio on a video (TTS voiceover or music)
替换视频的音频(TTS配音或背景音乐)
bash
undefinedbash
undefinedGenerate TTS
生成TTS
TTS_JOB=$(wonda audio speech --model elevenlabs-tts --prompt "The script"
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait --quiet) TTS_URL=$(wonda jobs get inference $TTS_JOB --jq '.outputs[0].media.url') wonda media download "$TTS_URL" -o /tmp/tts.mp3 TTS_MEDIA=$(wonda media upload /tmp/tts.mp3 --quiet)
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait --quiet) TTS_URL=$(wonda jobs get inference $TTS_JOB --jq '.outputs[0].media.url') wonda media download "$TTS_URL" -o /tmp/tts.mp3 TTS_MEDIA=$(wonda media upload /tmp/tts.mp3 --quiet)
TTS_JOB=$(wonda audio speech --model elevenlabs-tts --prompt "脚本内容"
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait --quiet) TTS_URL=$(wonda jobs get inference $TTS_JOB --jq '.outputs[0].media.url') wonda media download "$TTS_URL" -o /tmp/tts.mp3 TTS_MEDIA=$(wonda media upload /tmp/tts.mp3 --quiet)
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait --quiet) TTS_URL=$(wonda jobs get inference $TTS_JOB --jq '.outputs[0].media.url') wonda media download "$TTS_URL" -o /tmp/tts.mp3 TTS_MEDIA=$(wonda media upload /tmp/tts.mp3 --quiet)
Mix onto video (mute original, full voiceover)
混合到视频中(静音原视频,全音量配音)
wonda edit video --operation editAudio --media $VID_MEDIA --audio-media $TTS_MEDIA
--params '{"videoVolume":0,"audioVolume":100}' --wait -o with-voice.mp4
--params '{"videoVolume":0,"audioVolume":100}' --wait -o with-voice.mp4
Only use this when you need to REPLACE the video's audio. Sora generates native speech audio — don't replace it unless the user specifically wants a different voiceover.wonda edit video --operation editAudio --media $VID_MEDIA --audio-media $TTS_MEDIA
--params '{"videoVolume":0,"audioVolume":100}' --wait -o with-voice.mp4
--params '{"videoVolume":0,"audioVolume":100}' --wait -o with-voice.mp4
仅当你需要替换视频音频时使用这个方法,Sora会生成原生语音音频 — 除非用户明确要求更换配音,否则不要替换。Add static text overlay
添加静态文字叠加层
Static overlays (meme text, "chat did i cook", etc.) use smaller font sizes than captions. They're ambient, not meant to dominate the frame.
bash
wonda edit video --operation textOverlay --media $VID_MEDIA \
--prompt-text "chat, did i cook" \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"top-center","sizePercent":66,"fontSizeScale":0.5,"strokeWidth":4.5,"paddingTop":10}' \
--wait -o with-text.mp4Font sizing guide:
- Static overlays: ,
sizePercent: 66,fontSizeScale: 0.5strokeWidth: 4.5 - Animated captions: ,
sizePercent: 80,fontSizeScale: 0.8,strokeWidth: 2.5highlightColor: rgb(252, 61, 61) - Font: for both
TikTok Sans SemiCondensed
静态叠加层(梗图文字、“chat did i cook”等)使用比字幕更小的字号,作为环境元素存在,不要占满画面。
bash
wonda edit video --operation textOverlay --media $VID_MEDIA \
--prompt-text "chat, did i cook" \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"top-center","sizePercent":66,"fontSizeScale":0.5,"strokeWidth":4.5,"paddingTop":10}' \
--wait -o with-text.mp4字号参考:
- 静态叠加层:,
sizePercent: 66,fontSizeScale: 0.5strokeWidth: 4.5 - 动态字幕:,
sizePercent: 80,fontSizeScale: 0.8,strokeWidth: 2.5highlightColor: rgb(252, 61, 61) - 字体:两者都使用
TikTok Sans SemiCondensed
Add animated captions (word-by-word with timing)
添加动态字幕(逐词带时间轴)
The operation extracts audio, transcribes, and renders animated word-by-word captions — all in one step.
animatedCaptionsbash
wonda edit video --operation animatedCaptions --media $VIDEO_MEDIA \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}' \
--wait -o with-captions.mp4For quick static captions (no timing, just text on screen), use with :
textOverlay--prompt-textbash
wonda edit video --operation textOverlay --media $VIDEO_MEDIA \
--prompt-text "Summer Sale - 50% Off" \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80}' \
--wait -o captioned.mp4animatedCaptionsbash
wonda edit video --operation animatedCaptions --media $VIDEO_MEDIA \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80,"strokeWidth":2.5,"fontSizeScale":0.8,"highlightColor":"rgb(252, 61, 61)"}' \
--wait -o with-captions.mp4如果需要快速静态字幕(没有时间轴,只是固定文字在屏幕上),使用配合:
textOverlay--prompt-textbash
wonda edit video --operation textOverlay --media $VIDEO_MEDIA \
--prompt-text "Summer Sale - 50% Off" \
--params '{"fontFamily":"TikTok Sans SemiCondensed","position":"bottom-center","sizePercent":80}' \
--wait -o captioned.mp4Add background music
添加背景音乐
bash
MUSIC_JOB=$(wonda generate music --model suno-music \
--prompt "upbeat lo-fi hip hop, warm vinyl crackle" --wait --quiet)
MUSIC_URL=$(wonda jobs get inference $MUSIC_JOB --jq '.outputs[0].media.url')
wonda media download "$MUSIC_URL" -o /tmp/music.mp3
MUSIC_MEDIA=$(wonda media upload /tmp/music.mp3 --quiet)
wonda edit video --operation editAudio --media $VID_MEDIA --audio-media $MUSIC_MEDIA \
--params '{"videoVolume":100,"audioVolume":30}' --wait -o with-music.mp4bash
MUSIC_JOB=$(wonda generate music --model suno-music \
--prompt "upbeat lo-fi hip hop, warm vinyl crackle" --wait --quiet)
MUSIC_URL=$(wonda jobs get inference $MUSIC_JOB --jq '.outputs[0].media.url')
wonda media download "$MUSIC_URL" -o /tmp/music.mp3
MUSIC_MEDIA=$(wonda media upload /tmp/music.mp3 --quiet)
wonda edit video --operation editAudio --media $VID_MEDIA --audio-media $MUSIC_MEDIA \
--params '{"videoVolume":100,"audioVolume":30}' --wait -o with-music.mp4Merge multiple clips
合并多个片段
bash
wonda edit video --operation merge --media $CLIP1,$CLIP2,$CLIP3 --wait -o merged.mp4Media order = playback order. Up to 5 clips.
bash
wonda edit video --operation merge --media $CLIP1,$CLIP2,$CLIP3 --wait -o merged.mp4媒体顺序 = 播放顺序,最多支持5个片段。
Split scenes / keep a specific scene
拆分场景/保留指定场景
Two modes — pick by intent:
bash
undefined两种模式,按需求选择:
bash
undefinedKeep a specific scene (split mode) — splits into scenes, auto-selects one
保留指定场景(split模式)— 拆分为多个场景,自动选择一个
wonda edit video --operation splitScenes --media $VID_MEDIA
--params '{"mode":"split","threshold":0.5,"minClipDuration":2,"outputSelection":"last"}'
--wait -o last-scene.mp4
--params '{"mode":"split","threshold":0.5,"minClipDuration":2,"outputSelection":"last"}'
--wait -o last-scene.mp4
wonda edit video --operation splitScenes --media $VID_MEDIA
--params '{"mode":"split","threshold":0.5,"minClipDuration":2,"outputSelection":"last"}'
--wait -o last-scene.mp4
--params '{"mode":"split","threshold":0.5,"minClipDuration":2,"outputSelection":"last"}'
--wait -o last-scene.mp4
outputSelection: "first", "last", or 1-indexed number (e.g. 2 for second scene)
outputSelection可选值:"first"、"last",或者从1开始的索引(比如2代表第二个场景)
Remove a scene (omit mode) — removes one scene, merges the rest
删除指定场景(omit模式)— 删除一个场景,合并剩余部分
wonda edit video --operation splitScenes --media $VID_MEDIA
--params '{"mode":"omit","threshold":0.5,"minClipDuration":2,"outputSelection":"first"}'
--wait -o without-first.mp4
--params '{"mode":"omit","threshold":0.5,"minClipDuration":2,"outputSelection":"first"}'
--wait -o without-first.mp4
wonda edit video --operation splitScenes --media $VID_MEDIA
--params '{"mode":"omit","threshold":0.5,"minClipDuration":2,"outputSelection":"first"}'
--wait -o without-first.mp4
--params '{"mode":"omit","threshold":0.5,"minClipDuration":2,"outputSelection":"first"}'
--wait -o without-first.mp4
outputSelection: which scene to REMOVE
outputSelection代表要删除的场景
Use omit mode for "remove frozen first frame" (common with Sora videos). Use split mode for "keep just scene X".
删除模式适合“移除冻结的首帧”(Sora视频常见问题),拆分模式适合“仅保留X场景”的需求。Image editing (img2img)
图片编辑(图生图)
bash
MEDIA=$(wonda media upload ./photo.jpg --quiet)
wonda generate image --model nano-banana-2 --prompt "change the background to blue" \
--attach $MEDIA --aspect-ratio auto --wait -o edited.pngWhen editing an existing image, always use to preserve dimensions. The prompt should describe ONLY the edit, not the full image.
--aspect-ratio autobash
MEDIA=$(wonda media upload ./photo.jpg --quiet)
wonda generate image --model nano-banana-2 --prompt "change the background to blue" \
--attach $MEDIA --aspect-ratio auto --wait -o edited.png编辑现有图片时,始终使用保留原有尺寸,Prompt仅需要描述要修改的部分,不要描述整张图片。
--aspect-ratio autoBackground removal
背景移除
bash
undefinedbash
undefinedImage → use birefnet-bg-removal
图片 → 使用birefnet-bg-removal
wonda generate image --model birefnet-bg-removal --attach $IMAGE_MEDIA --wait -o no-bg.png
wonda generate image --model birefnet-bg-removal --attach $IMAGE_MEDIA --wait -o no-bg.png
Video → use bria-video-background-removal
视频 → 使用bria-video-background-removal
wonda generate video --model bria-video-background-removal --attach $VIDEO_MEDIA --wait -o no-bg.mp4
CRITICAL: Image and video background removal are different models. Never swap them.wonda generate video --model bria-video-background-removal --attach $VIDEO_MEDIA --wait -o no-bg.mp4
重要提示:图片和视频背景移除使用不同的模型,不要混用。Lip sync
口型同步
bash
wonda generate video --model sync-lipsync-v2-pro --attach $VIDEO_MEDIA,$AUDIO_MEDIA --wait -o synced.mp4bash
wonda generate video --model sync-lipsync-v2-pro --attach $VIDEO_MEDIA,$AUDIO_MEDIA --wait -o synced.mp4Video upscale
视频超分
bash
wonda generate video --model topaz-video-upscale --attach $VIDEO_MEDIA \
--params '{"upscaleFactor":2}' --wait -o upscaled.mp4bash
wonda generate video --model topaz-video-upscale --attach $VIDEO_MEDIA \
--params '{"upscaleFactor":2}' --wait -o upscaled.mp4Editor operations reference
编辑器操作参考
| Operation | Inputs | Key Params |
|---|---|---|
| video_0 | fontFamily, position, sizePercent, fontSizeScale, strokeWidth, highlightColor |
| video_0 + prompt | fontFamily, position, sizePercent, fontSizeScale, strokeWidth |
| video_0 + audio_0 | videoVolume (0-100), audioVolume (0-100) |
| video_0..video_4 | Handle order = playback order |
| video_0 (bg) + video_1 (fg) | position, resizePercent |
| video_0 + video_1 | targetAspectRatio (16:9 or 9:16) |
| video_0 | trimStartMs, trimEndMs (milliseconds) |
| video_0 | mode (split/omit), threshold, outputSelection |
| video_0 | speed (multiplier: 2 = 2x faster) |
| video_0 | Extracts audio track |
| video_0 | Plays backwards |
| video_0 | maxSilenceDuration (default 0.3), padding (default 0.03) |
| video_0 | aspectRatio |
Valid textOverlay fonts: Inter, Montserrat, Bebas Neue, Oswald, TikTok Sans, Poppins, Raleway, Anton, Comic Cat, Gavency
Valid positions: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
| 操作名 | 输入 | 核心参数 |
|---|---|---|
| video_0 | fontFamily, position, sizePercent, fontSizeScale, strokeWidth, highlightColor |
| video_0 + prompt | fontFamily, position, sizePercent, fontSizeScale, strokeWidth |
| video_0 + audio_0 | videoVolume (0-100), audioVolume (0-100) |
| video_0..video_4 | 媒体顺序 = 播放顺序 |
| video_0(背景) + video_1(前景) | position, resizePercent |
| video_0 + video_1 | targetAspectRatio (16:9 or 9:16) |
| video_0 | trimStartMs, trimEndMs(毫秒) |
| video_0 | mode (split/omit), threshold, outputSelection |
| video_0 | speed(倍速:2代表2倍快) |
| video_0 | 提取音轨 |
| video_0 | 倒序播放 |
| video_0 | maxSilenceDuration(默认0.3秒), padding(默认0.03秒) |
| video_0 | aspectRatio |
支持的textOverlay字体:Inter, Montserrat, Bebas Neue, Oswald, TikTok Sans, Poppins, Raleway, Anton, Comic Cat, Gavency
支持的位置:top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
Marketing & distribution
营销与分发
bash
undefinedbash
undefinedConnected social accounts
已绑定的社交账号
wonda accounts instagram
wonda accounts tiktok
wonda accounts instagram
wonda accounts tiktok
Analytics
数据分析
wonda analytics instagram
wonda analytics tiktok
wonda analytics meta-ads
wonda analytics instagram
wonda analytics tiktok
wonda analytics meta-ads
Scrape competitors
爬取竞品信息
wonda scrape social --handle @nike --platform instagram --wait
wonda scrape social-status <taskId> # Get results of a social scrape
wonda scrape ads --query "sneakers" --country US --wait
wonda scrape ads --query "sneakers" --country US --search-type keyword
--active-status active --sort-by impressions_desc --period last30d
--media-type video --max-results 50 --wait wonda scrape ads-status <taskId> # Get results of an ads search
--active-status active --sort-by impressions_desc --period last30d
--media-type video --max-results 50 --wait wonda scrape ads-status <taskId> # Get results of an ads search
wonda scrape social --handle @nike --platform instagram --wait
wonda scrape social-status <taskId> # 获取社交爬取结果
wonda scrape ads --query "sneakers" --country US --wait
wonda scrape ads --query "sneakers" --country US --search-type keyword
--active-status active --sort-by impressions_desc --period last30d
--media-type video --max-results 50 --wait wonda scrape ads-status <taskId> # 获取广告搜索结果
--active-status active --sort-by impressions_desc --period last30d
--media-type video --max-results 50 --wait wonda scrape ads-status <taskId> # 获取广告搜索结果
Download a single reel or TikTok video
下载单个Reel或TikTok视频
SCRAPE=$(wonda scrape video --url "https://www.instagram.com/reel/ABC123/" --wait --quiet)
SCRAPE=$(wonda scrape video --url "https://www.instagram.com/reel/ABC123/" --wait --quiet)
→ returns scrape result with mediaId in the media array
→ 返回爬取结果,media数组中包含mediaId
Publish
发布
wonda publish instagram --media <id> --account <accountId> --caption "New drop"
wonda publish instagram --media <id> --account <accountId> --caption "..." --alt-text "..." --product IMAGE --share-to-feed
wonda publish instagram-carousel --media <id1>,<id2>,<id3> --account <accountId> --caption "..."
wonda publish tiktok --media <id> --account <accountId> --caption "New drop"
wonda publish tiktok --media <id> --account <accountId> --caption "..." --privacy-level PUBLIC_TO_EVERYONE --aigc
wonda publish tiktok-carousel --media <id1>,<id2> --account <accountId> --caption "..." --cover-index 0
wonda publish instagram --media <id> --account <accountId> --caption "新品上线"
wonda publish instagram --media <id> --account <accountId> --caption "..." --alt-text "..." --product IMAGE --share-to-feed
wonda publish instagram-carousel --media <id1>,<id2>,<id3> --account <accountId> --caption "..."
wonda publish tiktok --media <id> --account <accountId> --caption "新品上线"
wonda publish tiktok --media <id> --account <accountId> --caption "..." --privacy-level PUBLIC_TO_EVERYONE --aigc
wonda publish tiktok-carousel --media <id1>,<id2> --account <accountId> --caption "..." --cover-index 0
History
发布历史
wonda publish history instagram --limit 10
wonda publish history tiktok --limit 10
wonda publish history instagram --limit 10
wonda publish history tiktok --limit 10
Browse media library
浏览媒体库
wonda media list --kind image --limit 20
wonda media info <mediaId>
undefinedwonda media list --kind image --limit 20
wonda media info <mediaId>
undefinedX/Twitter
X/Twitter
Cookie-based auth against X's internal GraphQL API. Supports reads, writes, and social graph.
bash
undefined基于Cookie的X内部GraphQL API授权,支持读、写和社交图谱操作。
bash
undefinedAuth setup (get cookies from DevTools → Application → Cookies → x.com)
授权配置(从浏览器DevTools → Application → Cookies → x.com获取Cookie)
wonda x auth set --auth-token <auth_token> --ct0 <ct0>
wonda x auth check
wonda x auth set --auth-token <auth_token> --ct0 <ct0>
wonda x auth check
Read
读取操作
wonda x search "sneakers" -n 20 # Search tweets
wonda x user @nike # User profile
wonda x user-tweets @nike -n 20 # User's recent tweets
wonda x read <tweet-id-or-url> # Single tweet
wonda x replies <tweet-id-or-url> # Replies to a tweet
wonda x thread <tweet-id-or-url> # Full thread (author's self-replies)
wonda x home # Home timeline (--following for Following tab)
wonda x bookmarks # Your bookmarks
wonda x likes # Your liked tweets
wonda x following @handle # Who a user follows
wonda x followers @handle # A user's followers
wonda x lists @handle # User's lists (--member-of for memberships)
wonda x list-timeline <list-id-or-url> # Tweets from a list
wonda x news --tab trending # Trending topics (tabs: for_you, trending, news, sports, entertainment)
wonda x search "sneakers" -n 20 # 搜索推文
wonda x user @nike # 用户profile
wonda x user-tweets @nike -n 20 # 用户的最新推文
wonda x read <tweet-id-or-url> # 单条推文
wonda x replies <tweet-id-or-url> # 推文的回复
wonda x thread <tweet-id-or-url> # 完整线程(作者的自回复)
wonda x home # 首页时间线(加--following查看关注页)
wonda x bookmarks # 你的收藏
wonda x likes # 你点赞的推文
wonda x following @handle # 用户关注的账号
wonda x followers @handle # 用户的粉丝
wonda x lists @handle # 用户的列表(加--member-of查看加入的列表)
wonda x list-timeline <list-id-or-url> # 列表中的推文
wonda x news --tab trending # 热门话题(tabs可选:for_you, trending, news, sports, entertainment)
Write (uses internal API — use on secondary accounts)
写入操作(使用内部API — 建议用小号操作)
wonda x tweet "Hello world" # Post a tweet
wonda x reply <tweet-id-or-url> "Great point" # Reply
wonda x like <tweet-id-or-url> # Like
wonda x unlike <tweet-id-or-url> # Unlike
wonda x retweet <tweet-id-or-url> # Retweet
wonda x unretweet <tweet-id-or-url> # Unretweet
wonda x follow @handle # Follow
wonda x unfollow @handle # Unfollow
wonda x tweet "Hello world" # 发推文
wonda x reply <tweet-id-or-url> "说得好" # 回复
wonda x like <tweet-id-or-url> # 点赞
wonda x unlike <tweet-id-or-url> # 取消点赞
wonda x retweet <tweet-id-or-url> # 转发
wonda x unretweet <tweet-id-or-url> # 取消转发
wonda x follow @handle # 关注
wonda x unfollow @handle # 取消关注
Maintenance
维护操作
wonda x refresh-ids # Refresh cached GraphQL query IDs from X's JS bundles
All paginated commands support: `-n <count>`, `--cursor`, `--all`, `--max-pages`, `--delay <ms>`.wonda x refresh-ids # 从X的JS包刷新缓存的GraphQL查询ID
所有分页命令都支持:`-n <count>`、`--cursor`、`--all`、`--max-pages`、`--delay <ms>`。Cookie-based auth against LinkedIn's Voyager API. Supports search, profiles, companies, messaging, and engagement.
bash
undefined基于Cookie的LinkedIn Voyager API授权,支持搜索、profile、企业页、消息和互动操作。
bash
undefinedAuth setup (get cookies from DevTools → Application → Cookies → linkedin.com)
授权配置(从浏览器DevTools → Application → Cookies → linkedin.com获取Cookie)
wonda linkedin auth set --li-at-value <li_at> --jsessionid-value <JSESSIONID>
wonda linkedin auth check
wonda linkedin auth set --li-at-value <li_at> --jsessionid-value <JSESSIONID>
wonda linkedin auth check
Read
读取操作
wonda linkedin me # Your identity
wonda linkedin search "data engineer" --type PEOPLE # Search (types: PEOPLE, COMPANIES, ALL)
wonda linkedin profile johndoe # View profile (vanity name or URL)
wonda linkedin company google # View company page
wonda linkedin conversations # List message threads
wonda linkedin messages <conversation-urn> # Read messages in a thread
wonda linkedin notifications -n 20 # Recent notifications
wonda linkedin connections # Your connections
wonda linkedin me # 你的身份信息
wonda linkedin search "data engineer" --type PEOPLE # 搜索(类型可选:PEOPLE, COMPANIES, ALL)
wonda linkedin profile johndoe # 查看profile( vanity name或URL)
wonda linkedin company google # 查看企业页
wonda linkedin conversations # 列出消息线程
wonda linkedin messages <conversation-urn> # 读取线程中的消息
wonda linkedin notifications -n 20 # 最新通知
wonda linkedin connections # 你的人脉
Write
写入操作
wonda linkedin like <activity-urn> # Like a post
wonda linkedin unlike <activity-urn> # Remove a like
wonda linkedin send-message <conversation-urn> "Hi!" # Send a message
wonda linkedin post "Excited to announce..." # Create a post
wonda linkedin delete-post <activity-id> # Delete a post
Paginated commands support: `-n <count>`, `--start`, `--all`, `--max-pages`, `--delay <ms>`.wonda linkedin like <activity-urn> # 点赞帖子
wonda linkedin unlike <activity-urn> # 取消点赞
wonda linkedin send-message <conversation-urn> "你好!" # 发消息
wonda linkedin post "很高兴宣布..." # 发帖子
wonda linkedin delete-post <activity-id> # 删除帖子
分页命令支持:`-n <count>`、`--start`、`--all`、`--max-pages`、`--delay <ms>`。Cookie-based auth (optional — many reads work unauthenticated). Supports search, feeds, users, posts, trending, and chat/DMs.
bash
undefined基于Cookie的授权(可选 — 很多读取操作无需授权即可使用),支持搜索、信息流、用户、帖子、热门趋势和聊天/私信。
bash
undefinedAuth setup (get cookie from DevTools → Application → Cookies → reddit.com → reddit_session)
授权配置(从浏览器DevTools → Application → Cookies → reddit.com → reddit_session获取Cookie)
wonda reddit auth set --session-value <jwt>
wonda reddit auth check
wonda reddit auth set --session-value <jwt>
wonda reddit auth check
Read (works without auth)
读取操作(无需授权)
wonda reddit search "AI video" --sort top --time week # Search posts (sort: relevance, hot, top, new, comments)
wonda reddit subreddit marketing # Subreddit info
wonda reddit feed marketing --sort hot # Subreddit posts (sort: hot, new, top, rising)
wonda reddit user spez # User profile
wonda reddit user-posts spez --sort top # User's posts
wonda reddit user-comments spez # User's comments
wonda reddit post <id-or-url> -n 50 # Post with comments
wonda reddit trending --sort hot # Popular/trending posts
wonda reddit search "AI video" --sort top --time week # 搜索帖子(排序方式:relevance, hot, top, new, comments)
wonda reddit subreddit marketing # 子版块信息
wonda reddit feed marketing --sort hot # 子版块帖子(排序方式:hot, new, top, rising)
wonda reddit user spez # 用户profile
wonda reddit user-posts spez --sort top # 用户的帖子
wonda reddit user-comments spez # 用户的评论
wonda reddit post <id-or-url> -n 50 # 帖子和评论
wonda reddit trending --sort hot # 热门/趋势帖子
Read (requires auth)
读取操作(需要授权)
wonda reddit home --sort best # Your home feed
wonda reddit home --sort best # 你的首页信息流
Write (requires auth)
写入操作(需要授权)
wonda reddit submit marketing --title "Great tool" --text "Check this out..." # Self post
wonda reddit submit marketing --title "Great tool" --url "https://..." # Link post
wonda reddit comment <parent-fullname> --text "Nice post!" # Reply
wonda reddit vote <fullname> --up # Upvote (--down, --unvote)
wonda reddit subscribe marketing # Subscribe (--unsub to unsubscribe)
wonda reddit save <fullname> # Save a post or comment
wonda reddit unsave <fullname> # Unsave
wonda reddit delete <fullname> # Delete your post or comment
Paginated commands support: `-n <count>`, `--after <cursor>`, `--all`, `--max-pages`, `--delay <ms>`.wonda reddit submit marketing --title "很棒的工具" --text "看看这个..." # 文本帖
wonda reddit submit marketing --title "很棒的工具" --url "https://..." # 链接帖
wonda reddit comment <parent-fullname> --text "帖子不错!" # 回复
wonda reddit vote <fullname> --up # 点赞(--down点踩,--unvote取消投票)
wonda reddit subscribe marketing # 订阅子版块(--unsub取消订阅)
wonda reddit save <fullname> # 保存帖子或评论
wonda reddit unsave <fullname> # 取消保存
wonda reddit delete <fullname> # 删除你的帖子或评论
分页命令支持:`-n <count>`、`--after <cursor>`、`--all`、`--max-pages`、`--delay <ms>`。Reddit chat / DMs
Reddit 聊天 / 私信
Direct messaging via the Matrix protocol. Requires a separate chat token (different from the session cookie).
bash
undefined通过Matrix协议实现私信功能,需要单独的聊天token(和会话Cookie不同)。
bash
undefinedAuth setup (get token from DevTools → Console → JSON.parse(localStorage.getItem('chat:access-token')).token)
授权配置(从浏览器DevTools → Console → 执行JSON.parse(localStorage.getItem('chat:access-token')).token获取token)
wonda reddit chat auth-set --token <matrix-token>
wonda reddit chat auth-set --token <matrix-token>
Read
读取操作
wonda reddit chat inbox # List DM conversations with latest messages
wonda reddit chat messages <room-id> -n 50 # Fetch messages from a room
wonda reddit chat all-rooms # List ALL joined rooms (not limited to sync window)
wonda reddit chat inbox # 列出私信会话和最新消息
wonda reddit chat messages <room-id> -n 50 # 获取房间中的消息
wonda reddit chat all-rooms # 列出所有已加入的房间(不受同步窗口限制)
Write
写入操作
wonda reddit chat send <room-id> --text "Hey!" # Send a DM (mimics browser typing behavior)
wonda reddit chat send <room-id> --text "嗨!" # 发私信(模拟浏览器输入行为)
Management
管理操作
wonda reddit chat accept-all # Accept all pending chat requests
wonda reddit chat refresh # Force-refresh the Matrix chat token
**Important**: The chat token expires every ~24h. The CLI auto-refreshes on use, but if it expires fully, re-run `auth-set`. Rate limit DM sends to 15-20/day with varied text to avoid detection. The `send` command includes a typing delay (1-5s) to mimic human behavior.wonda reddit chat accept-all # 接受所有待处理的聊天请求
wonda reddit chat refresh # 强制刷新Matrix聊天token
**重要提示**:聊天token每24小时左右过期,CLI使用时会自动刷新,但如果完全过期,请重新执行`auth-set`。私信发送频率限制为每天15-20条,内容要有变化避免被检测。`send`命令自带1-5秒的输入延迟,模拟人类行为。Workflow & discovery
工作流与功能探索
Video analysis
视频分析
Analyze a video to extract a composite frame grid (visual) and audio transcript (text). Useful for understanding video content before creating variations. Requires a full account (not anonymous) and costs credits based on video duration (ElevenLabs STT pricing).
If the video was just uploaded and is still normalizing, the CLI auto-retries until the media is ready.
bash
undefined分析视频提取合成帧网格(可视化)和音频转录(文本),在生成变体前理解视频内容非常有用。需要全功能账号(非匿名),根据视频时长消耗点数(ElevenLabs STT定价)。
如果视频刚上传还在处理中,CLI会自动重试直到媒体就绪。
bash
undefinedAnalyze a video — returns composite grid image + transcript
分析视频 — 返回合成网格图片 + 转录文本
ANALYSIS_JOB=$(wonda analyze video --media $VIDEO_MEDIA --wait --quiet)
ANALYSIS_JOB=$(wonda analyze video --media $VIDEO_MEDIA --wait --quiet)
The job output contains:
任务输出包含:
- compositeGrid: image showing 24 evenly-spaced frames
- compositeGrid: 展示24个均匀间隔帧的图片
- transcript: full text of any speech
- transcript: 所有语音的完整文本
- wordTimestamps: word-level timing [{word, start, end}]
- wordTimestamps: 逐词时间轴 [{word, start, end}]
- videoMetadata: {width, height, durationMs, fps, aspectRatio}
- videoMetadata: {width, height, durationMs, fps, aspectRatio}
Download the composite grid for visual inspection
下载合成网格用于可视化检查
wonda analyze video --media $VIDEO_MEDIA --wait -o /tmp/grid.jpg
wonda analyze video --media $VIDEO_MEDIA --wait -o /tmp/grid.jpg
Get just the transcript
仅获取转录文本
wonda analyze video --media $VIDEO_MEDIA --wait --jq '.outputs[] | select(.outputKey=="transcript") | .outputValue'
**Error handling**: 402 = insufficient credits (use `wonda topup`), 409 = media still processing (CLI auto-retries).wonda analyze video --media $VIDEO_MEDIA --wait --jq '.outputs[] | select(.outputKey=="transcript") | .outputValue'
**错误处理**:402 = 点数不足(使用`wonda topup`充值),409 = 媒体仍在处理中(CLI自动重试)。Chat (AI assistant)
聊天(AI助手)
Interactive chat sessions for content creation — the AI handles generation, editing, and iteration.
bash
wonda chat create --title "Product launch" # New session
wonda chat list # List sessions (--limit, --offset)
wonda chat messages <chatId> # Get messages
wonda chat send <chatId> --message "Create a UGC reaction video"
wonda chat send <chatId> --message "Edit it" --media <id>
wonda chat send <chatId> --message "..." --aspect-ratio 9:16 --quality-tier max
wonda chat send <chatId> --message "..." --style <styleId>
wonda chat send <chatId> --message "..." --passthrough-prompt # Use exact prompt, no AI enhancement用于内容创作的交互式聊天会话,AI会处理生成、编辑和迭代。
bash
wonda chat create --title "产品发布" # 新建会话
wonda chat list # 列出会话(支持--limit, --offset)
wonda chat messages <chatId> # 获取消息
wonda chat send <chatId> --message "生成一个UGC反应视频"
wonda chat send <chatId> --message "编辑它" --media <id>
wonda chat send <chatId> --message "..." --aspect-ratio 9:16 --quality-tier max
wonda chat send <chatId> --message "..." --style <styleId>
wonda chat send <chatId> --message "..." --passthrough-prompt # 使用精确Prompt,无AI优化Jobs & runs
任务与运行记录
bash
wonda jobs get inference <id> # Inference job status
wonda jobs get editor <id> # Editor job status
wonda jobs get publish <id> # Publish job status
wonda jobs wait inference <id> --timeout 20m # Wait for completion
wonda run get <runId> # Run status
wonda run wait <runId> --timeout 30m # Wait for run completionbash
wonda jobs get inference <id> # 推理任务状态
wonda jobs get editor <id> # 编辑任务状态
wonda jobs get publish <id> # 发布任务状态
wonda jobs wait inference <id> --timeout 20m # 等待任务完成
wonda run get <runId> # 运行状态
wonda run wait <runId> --timeout 30m # 等待运行完成Discovery
功能探索
bash
wonda models list # All available models
wonda models info <slug> # Model details and params
wonda operations list # All editor operations
wonda operations info <operation> # Operation details
wonda capabilities # Full platform capabilities
wonda pricing list # Pricing for all models
wonda pricing estimate --model seedance-2 --prompt "..." # Cost estimate
wonda style list # Available visual styles
wonda topup --amount 20 # Top up credits ($5 minimum, opens Stripe)bash
wonda models list # 所有可用模型
wonda models info <slug> # 模型详情和参数
wonda operations list # 所有编辑器操作
wonda operations info <operation> # 操作详情
wonda capabilities # 完整平台能力
wonda pricing list # 所有模型的定价
wonda pricing estimate --model seedance-2 --prompt "..." # 成本估算
wonda style list # 可用视觉样式
wonda topup --amount 20 # 充值点数(最低5美元,打开Stripe页面)Editing audio & images
编辑音频和图片
bash
undefinedbash
undefinedEdit audio
编辑音频
wonda edit audio --operation <op> --media <id> --wait -o out.mp3
wonda edit audio --operation <op> --media <id> --wait -o out.mp3
Edit image (crop, etc.)
编辑图片(裁剪等)
wonda edit image --operation imageCrop --media <id>
--params '{"aspectRatio":"9:16"}' --wait -o cropped.png
--params '{"aspectRatio":"9:16"}' --wait -o cropped.png
undefinedwonda edit image --operation imageCrop --media <id>
--params '{"aspectRatio":"9:16"}' --wait -o cropped.png
--params '{"aspectRatio":"9:16"}' --wait -o cropped.png
undefinedAlignment (timestamp extraction)
对齐(时间轴提取)
bash
wonda alignment extract-timestamps --model <model> --attach <mediaId> --waitbash
wonda alignment extract-timestamps --model <model> --attach <mediaId> --waitQuality tiers
质量等级
| Tier | Image Model | Resolution | Video Model | When |
|---|---|---|---|---|
| Standard | | 1K | | Default. High quality, good for iteration. |
| High | | 1K | | Longer duration. Also offer |
| Max | | 4K | | Best possible. Also offer |
| 等级 | 图片模型 | 分辨率 | 视频模型 | 适用场景 |
|---|---|---|---|---|
| 标准 | | 1K | | 默认选项,高质量,适合迭代。 |
| 高 | | 1K | | 需要更长时长的场景,也可以提供 |
| 最高 | | 4K | | 最优质量,也可以提供 |
Troubleshooting
问题排查
| Symptom | Likely Cause | Fix |
|---|---|---|
| Sora rejected image | Person in image | Switch to |
| Video adds objects not in source | Motion prompt describes elements not in image | Simplify to camera movement and atmosphere only |
| Text unreadable in video | AI tried to render text in generation | Remove text from video prompt, use textOverlay instead |
| Hands look wrong | Complex hand actions in prompt | Simplify to passive positions or frame to exclude |
| Style inconsistent across series | No shared anchor | Use same reference image via |
| Changes to step A not in step B | Stale render | Re-run all downstream steps |
| 现象 | 可能原因 | 修复方案 |
|---|---|---|
| Sora 拒绝处理图片 | 图片中有人物 | 切换到 |
| 视频中出现了源素材没有的对象 | 动作Prompt描述了图片中不存在的元素 | 简化Prompt,仅保留相机移动和氛围描述 |
| 视频中的文字无法阅读 | AI在生成时尝试渲染文字 | 从视频Prompt中移除文字描述,改用textOverlay添加 |
| 手部看起来怪异 | Prompt中有复杂的手部动作 | 简化为被动姿势,或者裁剪画面排除手部 |
| 系列内容风格不一致 | 没有共享锚点 | 通过 |
| 步骤A的修改没有同步到步骤B | 缓存的渲染结果 | 重新运行所有下游步骤 |
Timing expectations
耗时预期
- Image: 30s - 2min
- Video (Sora): 2 - 5min
- Video (Sora Pro): 5 - 10min
- Video (Veo 3.1): 1 - 3min
- Video (Kling): 3 - 8min
- Video (Grok): 2 - 5min
- Music (Suno): 1 - 3min
- TTS: 10 - 30s
- Editor operations: 30s - 2min
- Lip sync: 1 - 3min
- Video upscale: 2 - 5min
- 图片:30秒 - 2分钟
- 视频(Sora):2 - 5分钟
- 视频(Sora Pro):5 - 10分钟
- 视频(Veo 3.1):1 - 3分钟
- 视频(Kling):3 - 8分钟
- 视频(Grok):2 - 5分钟
- 音乐(Suno):1 - 3分钟
- TTS:10 - 30秒
- 编辑器操作:30秒 - 2分钟
- 口型同步:1 - 3分钟
- 视频超分:2 - 5分钟
Error recovery
错误恢复
- Unknown model:
wonda models list - No API key: or
export WONDERCAT_API_KEY=sk_...wonda config set api-key sk_... - Job failed: for error details
wonda jobs get inference <id> - Bad params: for valid params
wonda models info <slug> - Timeout:
wonda jobs wait inference <id> --timeout 20m - Insufficient credits (402): to add credits via Stripe
wonda topup --amount 10
- 未知模型:执行查看可用模型
wonda models list - 缺少API key:执行或
export WONDERCAT_API_KEY=sk_...wonda config set api-key sk_... - 任务失败:执行查看错误详情
wonda jobs get inference <id> - 参数错误:执行查看有效参数
wonda models info <slug> - 超时:执行延长超时时间
wonda jobs wait inference <id> --timeout 20m - 点数不足(402):执行通过Stripe充值点数
wonda topup --amount 10