wonda-cli

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Wonda 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
wonda
is not found on PATH, install it first:
bash
curl -fsSL https://wonda.sh/install.sh | bash
Or via Homebrew:
brew tap degausai/tap && brew install wonda
Or via npm:
npm i -g @degausai/wonda
如果 PATH 中找不到
wonda
,请先完成安装:
bash
curl -fsSL https://wonda.sh/install.sh | bash
或通过 Homebrew 安装:
brew tap degausai/tap && brew install wonda
或通过 npm 安装:
npm i -g @degausai/wonda

Setup

配置

  • Auth:
    wonda auth login
    (opens browser) or
    export WONDERCAT_API_KEY=sk_...
    or
    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>
    /
    wonda config get <key>
    (keys:
    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:
TierAccess
Anonymous (temporary account, no login)Media upload/download, editing (
video/edit
,
image/edit
,
audio/edit
), transcription, social publishing, scraping, analytics
Free (logged in, Basic/Free plan)Everything above + generation (
image/generate
,
video/generate
, etc.), styles, recipes, brand
Paid (Plus, Pro, or Absolute plan)Everything above + video analysis (requires credits), skill commands (
wonda skill install/list/get
)
If a command returns a
403
error, check your plan at https://app.wondercat.ai/settings/billing.
不同账号类型支持的命令范围不同:
等级权限
匿名用户(临时账号,无需登录)媒体上传/下载、编辑(
video/edit
image/edit
audio/edit
)、转录、社交发布、爬虫、数据分析
免费用户(已登录,基础/免费套餐)上述所有功能 + 生成能力
image/generate
video/generate
等)、样式、模板、品牌管理
付费用户(Plus、Pro 或 Absolute 套餐)上述所有功能 + 视频分析(需消耗点数)、skill 命令
wonda skill install/list/get
如果命令返回
403
错误,请前往 https://app.wondercat.ai/settings/billing 查看你的套餐详情。

Global output flags

全局输出参数

All commands support these output control flags:
  • --json
    — Force JSON output (auto-enabled when stdout is piped)
  • --quiet
    — Only output the primary identifier (job ID, media ID, etc.) — ideal for scripting
  • -o <path>
    — Download output to file (implies
    --wait
    )
  • --fields status,outputs
    — Select specific JSON fields
  • --jq '.outputs[0].media.url'
    — Filter JSON output with a jq expression
所有命令都支持以下输出控制参数:
  • --json
    — 强制输出 JSON 格式(当标准输出被管道传输时会自动启用)
  • --quiet
    — 仅输出核心标识(任务 ID、媒体 ID 等),非常适合脚本调用
  • -o <path>
    — 将输出下载到指定文件(会自动启用
    --wait
  • --fields status,outputs
    — 选择指定的 JSON 字段输出
  • --jq '.outputs[0].media.url'
    — 使用 jq 表达式过滤 JSON 输出

How to think about content creation

内容创作思路

You are a marketing director with access to a full production toolkit. Before touching any tool, think:
  1. What product category? (beauty, food, tech, fashion, fitness, etc.)
  2. What format performs for this category? (UGC memes for everyday products, cinematic for luxury, before/after for transformations, testimonial for services)
  3. What's the hook? (relatable scenario, surprising twist, aspirational lifestyle, social proof)
  4. What specific scene? (not "product on table" but "person discovering the product in a funny situation")
你可以把自己想象成手握全套生产工具的营销总监,在使用工具前,先想清楚这几点:
  1. 产品属于什么品类?(美妆、食品、科技、时尚、健身等)
  2. 这个品类的内容什么格式效果最好?(日常产品用 UGC 梗图、奢侈品用电影质感内容、转化类内容用前后对比、服务类内容用客户证言)
  3. 内容的钩子是什么?(共鸣场景、惊喜反转、向往的生活方式、社交证明)
  4. 具体要呈现什么场景?(不要写“桌上的产品”,要写“用户在有趣的场景下发现这款产品”)

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
undefined
wonda 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 情报
undefined

Step 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 skill
Full skill index:
SlugDescriptionInput
product-videoProduct/scene video — prompt library for all categoriesoptional product image
ugc-talkingTalking-head UGC — single clip, two-angle PIP, or 20s+ with B-rolloptional reference
ugc-reaction-batchBatch TikTok-native UGC reactions with viral strategyoptional product image
tiktok-ugc-pipelineScrape viral reel → generate 5 UGC → post as draftsreel or TikTok URL
ugc-dance-motionDance/motion transferimage + video
marketing-brainMarketing strategy brain — hooks, visuals, adsuser brief
reddit-subreddit-intelScrape top posts, analyze virality, generate ideassubreddit + product
twitter-influencer-searchFind X influencers and amplifierscompetitor/niche keywords
If a skill matches
wonda skill get <slug>
, read it, adapt to context, execute each step.
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):**

```bash
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

**音频相关(语音、转录、对话):**

```bash

Text-to-speech

文本转语音

wonda audio speech --model elevenlabs-tts --prompt "Your script here"
--params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}' --wait -o speech.mp3
wonda audio speech --model elevenlabs-tts --prompt "你的脚本内容"
--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

**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.

```bash
wonda audio dialogue --model elevenlabs-dialogue --prompt "Speaker A: Hi! Speaker B: Hello!"
--wait -o dialogue.mp3

**给视频添加动态字幕:**

`animatedCaptions` 操作可以一步完成所有流程:提取音频、生成逐词时间轴、在视频上渲染逐词高亮的动态字幕。

```bash

Generate 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

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

视频的原始音频会保留,不要用TTS替换音频 — Sora已经自带生成的语音了。

**不同任务类型的输出URL路径不同:**

- 推理任务(生成、音频操作):`.outputs[0].media.url` 和 `.outputs[0].media.mediaId`
- 编辑任务:`.outputs[0].url` 和 `.outputs[0].mediaId`

Model waterfall

模型选择优先级

Image

图片

Default:
nano-banana-2
. Only use others when:
  • 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 →
    grok-imagine
    or
    grok-imagine-pro
  • Spicy content →
    cookie
    (SDXL-based, tag-based or natural language prompts) — ONLY select when the user explicitly asks for spicy content. Never auto-select.
Cookie model (
cookie
):
SDXL with DMD acceleration and hires fix. Restricted: only use when the user explicitly requests spicy content. Accepts both danbooru-style tags (
1cat, portrait, soft lighting
) and natural language. Supports
--negative-prompt
(has sensible defaults; override only when needed) and
--seed
for reproducibility.
bash
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-imagine
    grok-imagine-pro
  • 成人内容 →
    cookie
    (基于SDXL,支持标签或自然语言Prompt)—— 仅当用户明确要求生成成人内容时使用,禁止自动选择。
Cookie模型(
cookie
):
搭载DMD加速和高清修复的SDXL模型。限制:仅当用户明确要求生成成人内容时使用。 支持danbooru风格标签(
1cat, portrait, soft lighting
)和自然语言Prompt。支持
--negative-prompt
(已有合理默认值,仅需要时覆盖)和
--seed
实现可复现生成。
bash
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

Video

视频

Default:
seedance-2
(duration 5/10/15s, default 5s, quality: high). Escalation:
  • Quality complaint or different style →
    sora2
    or
    sora2pro
  • Max single-clip duration is 15s for Seedance 2, 20s for Sora → for longer content, stitch multiple clips via merge
  • Fast generation needed →
    veo3_1-fast
    (Veo 3.1, supports 720p/1080p)
Image-to-video routing (MANDATORY when attaching a reference image):
  • Person/face visible in the reference image → MUST use
    kling_3_pro
    (preserves identity better for faces)
  • 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
    --attach
    an image.
Kling model family:
  • kling_3_pro
    — 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_2_6_pro
    — General purpose, 5-10s, 16:9/9:16/1:1, text-to-video and image-to-video
  • kling_2_6_motion_control
    — Motion transfer: requires both a reference image AND a reference video, recreates the video's motion with the image's appearance
  • kling2_5-pro
    — Budget Kling option, 5-10s, supports first/last frame images
Other video models:
  • grok-imagine-video
    — xAI video generation, 5-15s, supports 7 aspect ratios including 4:3 and 3:2
  • topaz-video-upscale
    — Upscale video resolution (1-4x factor, supports fps conversion)
  • sync-lipsync-v2-pro
    — Sync lip movements to audio (requires video + audio input)
Seedance family (DEFAULT video model, watermarks automatically removed):
  • seedance-2
    — Base Seedance 2.0 (T2V/I2V, 5-15s, high=standard/basic=fast)
  • seedance-2-omni
    — Multi-reference generation (images, audio refs)
  • seedance-2-video-edit
    — Edit existing video via text prompt
Video durations: Accepted
--duration
values vary by model. Check with
wonda capabilities
or
wonda models info <slug>
.
默认模型:
seedance-2
(支持5/10/15秒时长,默认5秒,质量:高)。升级逻辑:
  • 对质量不满或者需要不同风格 →
    sora2
    sora2pro
  • Seedance 2 单片段最长支持15秒,Sora最长支持20秒 → 更长的内容需要合并多个片段
  • 需要快速生成 →
    veo3_1-fast
    (Veo 3.1,支持720p/1080p)
图生视频路由规则(传入参考图片时必须遵守):
  • 参考图片中有人物/人脸 → 必须使用
    kling_3_pro
    (对人脸的身份保留效果更好)
  • 参考图片中没有人物 → 使用
    seedance-2
  • 文生视频(无参考图片): Seedance 2 生成人物的效果很好,本规则仅适用于使用
    --attach
    传入图片的场景。
Kling 模型家族:
  • kling_3_pro
    — 文生视频和图生视频,支持首尾帧图片、自定义元素(@Element1, @Element2),时长3-15秒,支持16:9/9:16/1:1比例
  • kling_2_6_pro
    — 通用模型,时长5-10秒,支持16:9/9:16/1:1比例,支持文生视频和图生视频
  • kling_2_6_motion_control
    — 动作迁移:需要同时传入参考图片和参考视频,用参考图片的外观还原参考视频的动作
  • kling2_5-pro
    — 性价比Kling选项,时长5-10秒,支持首尾帧图片
其他视频模型:
  • grok-imagine-video
    — xAI视频生成模型,时长5-15秒,支持7种宽高比,包括4:3和3:2
  • topaz-video-upscale
    — 视频分辨率放大(支持1-4倍,支持帧率转换)
  • sync-lipsync-v2-pro
    — 口型与音频同步(需要同时输入视频和音频)
Seedance 家族(默认视频模型,水印会自动移除):
  • seedance-2
    — 基础Seedance 2.0(支持T2V/I2V,时长5-15秒,high=标准质量/basic=快速生成)
  • seedance-2-omni
    — 多参考生成(支持图片、音频参考)
  • seedance-2-video-edit
    — 通过文本Prompt编辑现有视频
视频时长: 不同模型支持的
--duration
取值不同,可通过
wonda capabilities
wonda models info <slug>
查询。

Audio

音频

  • Music:
    suno-music
    (set
    --params '{"instrumental":true}'
    for no vocals)
  • Text-to-speech:
    elevenlabs-tts
    — always set voiceId in params. Default female voice:
    --params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}'
    (Rachel).
  • Transcription:
    elevenlabs-stt
  • Multi-speaker dialogue:
    elevenlabs-dialogue
  • 音乐:
    suno-music
    (设置
    --params '{"instrumental":true}'
    生成无人声版本)
  • 文本转语音:
    elevenlabs-tts
    — 必须在params中设置voiceId,默认女声:
    --params '{"voiceId":"21m00Tcm4TlvDq8ikWAM"}'
    (Rachel)
  • 转录:
    elevenlabs-stt
  • 多角色对话:
    elevenlabs-dialogue

Prompt writing rules

Prompt 编写规则

Follow this waterfall top-to-bottom. Use the FIRST matching rule and stop.
  1. PASSTHROUGH — If the user says "use my exact prompt" / "verbatim" / "no enhancements" → copy their words exactly. Zero modifications.
  2. 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:
      "Two cats on a lavender background breathing softly"
      (describes the image)
  3. 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"
  4. 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.
请从上到下匹配优先级,使用第一个匹配的规则后停止:
  1. 直接透传 — 如果用户说“使用我给的精确Prompt”/“逐字使用”/“不要优化” → 完全复制用户的内容,零修改。
  2. 图生视频场景 — 当源图片输入到视频模型时,仅描述动作即可,模型可以看到图片内容,不要描述图片本身的内容。
    • 正面示例:
      "gentle breathing motion, camera slowly pushes in, atmospheric lighting shifts"
    • 反面示例:
      "Two cats on a lavender background breathing softly"
      (描述了图片内容)
  3. 空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"
  4. 非空Prompt(适配模板) — 保留原有结构和风格,仅替换内容匹配用户需求,保持Prompt字面准确、约束清晰。

Aspect ratio rules

宽高比规则

Three cases, no exceptions:
  1. User specifies a ratio → use it:
    --aspect-ratio 16:9
  2. User doesn't mention ratio → explicitly set
    --aspect-ratio 9:16
    for social content (UGC, TikTok, Reels, Stories). Portrait is the default for any social/marketing video.
  3. Editing existing media → use
    --aspect-ratio auto
    to preserve source dimensions
UGC and social content is ALWAYS portrait (9:16). If someone asks for a TikTok, Reel, Story, or UGC video, always use
--aspect-ratio 9:16
. Landscape is only for YouTube, presentations, or when explicitly requested.
Square (1:1) is supported by all Kling models and some image models — use for Instagram feed posts when requested.
三种情况,无例外:
  1. 用户指定了比例 → 直接使用:
    --aspect-ratio 16:9
  2. 用户没有提到比例 → 社交内容(UGC、TikTok、Reels、Stories)明确设置为
    --aspect-ratio 9:16
    ,竖屏是所有社交/营销视频的默认比例。
  3. 编辑现有媒体 → 使用
    --aspect-ratio auto
    保留源文件的尺寸。
UGC和社交内容始终使用竖屏(9:16)。 如果用户需要TikTok、Reel、Story或者UGC视频,一律使用
--aspect-ratio 9:16
。横屏仅用于YouTube、演示文稿,或者用户明确要求的场景。
正方形(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
wonda generate video --model seedance-2 --prompt "camera slowly pushes in, product rotates"
--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
undefined
wonda generate video --model kling_3_pro --prompt "the person turns and smiles"
--attach $MEDIA --duration 5 --wait -o person.mp4
undefined

Replace audio on a video (TTS voiceover or music)

替换视频的音频(TTS配音或背景音乐)

bash
undefined
bash
undefined

Generate 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)
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)

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

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

仅当你需要替换视频音频时使用这个方法,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.mp4
Font sizing guide:
  • Static overlays:
    sizePercent: 66
    ,
    fontSizeScale: 0.5
    ,
    strokeWidth: 4.5
  • Animated captions:
    sizePercent: 80
    ,
    fontSizeScale: 0.8
    ,
    strokeWidth: 2.5
    ,
    highlightColor: rgb(252, 61, 61)
  • Font:
    TikTok Sans SemiCondensed
    for both
静态叠加层(梗图文字、“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.5
    strokeWidth: 4.5
  • 动态字幕:
    sizePercent: 80
    fontSizeScale: 0.8
    strokeWidth: 2.5
    highlightColor: rgb(252, 61, 61)
  • 字体:两者都使用
    TikTok Sans SemiCondensed

Add animated captions (word-by-word with timing)

添加动态字幕(逐词带时间轴)

The
animatedCaptions
operation extracts audio, transcribes, and renders animated word-by-word captions — all in one step.
bash
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
For quick static captions (no timing, just text on screen), use
textOverlay
with
--prompt-text
:
bash
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.mp4
animatedCaptions
操作可以一步完成提取音频、转录、渲染逐词动态字幕的全流程。
bash
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-text
bash
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.mp4

Add 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.mp4
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.mp4

Merge multiple clips

合并多个片段

bash
wonda edit video --operation merge --media $CLIP1,$CLIP2,$CLIP3 --wait -o merged.mp4
Media 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
undefined

Keep 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
wonda edit video --operation splitScenes --media $VID_MEDIA
--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
wonda edit video --operation splitScenes --media $VID_MEDIA
--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.png
When editing an existing image, always use
--aspect-ratio auto
to preserve dimensions. The prompt should describe ONLY the edit, not the full image.
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.png
编辑现有图片时,始终使用
--aspect-ratio auto
保留原有尺寸,Prompt仅需要描述要修改的部分,不要描述整张图片。

Background removal

背景移除

bash
undefined
bash
undefined

Image → 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.mp4
bash
wonda generate video --model sync-lipsync-v2-pro --attach $VIDEO_MEDIA,$AUDIO_MEDIA --wait -o synced.mp4

Video upscale

视频超分

bash
wonda generate video --model topaz-video-upscale --attach $VIDEO_MEDIA \
  --params '{"upscaleFactor":2}' --wait -o upscaled.mp4
bash
wonda generate video --model topaz-video-upscale --attach $VIDEO_MEDIA \
  --params '{"upscaleFactor":2}' --wait -o upscaled.mp4

Editor operations reference

编辑器操作参考

OperationInputsKey Params
animatedCaptions
video_0fontFamily, position, sizePercent, fontSizeScale, strokeWidth, highlightColor
textOverlay
video_0 + promptfontFamily, position, sizePercent, fontSizeScale, strokeWidth
editAudio
video_0 + audio_0videoVolume (0-100), audioVolume (0-100)
merge
video_0..video_4Handle order = playback order
overlay
video_0 (bg) + video_1 (fg)position, resizePercent
splitScreen
video_0 + video_1targetAspectRatio (16:9 or 9:16)
trim
video_0trimStartMs, trimEndMs (milliseconds)
splitScenes
video_0mode (split/omit), threshold, outputSelection
speed
video_0speed (multiplier: 2 = 2x faster)
extractAudio
video_0Extracts audio track
reverseVideo
video_0Plays backwards
skipSilence
video_0maxSilenceDuration (default 0.3), padding (default 0.03)
imageCrop
video_0aspectRatio
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
操作名输入核心参数
animatedCaptions
video_0fontFamily, position, sizePercent, fontSizeScale, strokeWidth, highlightColor
textOverlay
video_0 + promptfontFamily, position, sizePercent, fontSizeScale, strokeWidth
editAudio
video_0 + audio_0videoVolume (0-100), audioVolume (0-100)
merge
video_0..video_4媒体顺序 = 播放顺序
overlay
video_0(背景) + video_1(前景)position, resizePercent
splitScreen
video_0 + video_1targetAspectRatio (16:9 or 9:16)
trim
video_0trimStartMs, trimEndMs(毫秒)
splitScenes
video_0mode (split/omit), threshold, outputSelection
speed
video_0speed(倍速:2代表2倍快)
extractAudio
video_0提取音轨
reverseVideo
video_0倒序播放
skipSilence
video_0maxSilenceDuration(默认0.3秒), padding(默认0.03秒)
imageCrop
video_0aspectRatio
支持的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
undefined
bash
undefined

Connected 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
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> # 获取广告搜索结果

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>
undefined
wonda media list --kind image --limit 20 wonda media info <mediaId>
undefined

X/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
undefined

Auth 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>`。

LinkedIn

LinkedIn

Cookie-based auth against LinkedIn's Voyager API. Supports search, profiles, companies, messaging, and engagement.
bash
undefined
基于Cookie的LinkedIn Voyager API授权,支持搜索、profile、企业页、消息和互动操作。
bash
undefined

Auth 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>`。

Reddit

Reddit

Cookie-based auth (optional — many reads work unauthenticated). Supports search, feeds, users, posts, trending, and chat/DMs.
bash
undefined
基于Cookie的授权(可选 — 很多读取操作无需授权即可使用),支持搜索、信息流、用户、帖子、热门趋势和聊天/私信。
bash
undefined

Auth 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
undefined

Auth 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
undefined

Analyze 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 completion
bash
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
undefined
bash
undefined

Edit 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
undefined
wonda edit image --operation imageCrop --media <id>
--params '{"aspectRatio":"9:16"}' --wait -o cropped.png
undefined

Alignment (timestamp extraction)

对齐(时间轴提取)

bash
wonda alignment extract-timestamps --model <model> --attach <mediaId> --wait
bash
wonda alignment extract-timestamps --model <model> --attach <mediaId> --wait

Quality tiers

质量等级

TierImage ModelResolutionVideo ModelWhen
Standard
nano-banana-2
1K
seedance-2
(high, 5s)
Default. High quality, good for iteration.
High
nano-banana-pro
1K
seedance-2
(high, 15s)
Longer duration. Also offer
sora2pro
for different style.
Max
nano-banana-pro
4K
seedance-2
(high, 15s)
Best possible. Also offer
sora2pro
(1080p). Use
--params '{"resolution":"4K"}'
for images.
等级图片模型分辨率视频模型适用场景
标准
nano-banana-2
1K
seedance-2
(high, 5s)
默认选项,高质量,适合迭代。
nano-banana-pro
1K
seedance-2
(high, 15s)
需要更长时长的场景,也可以提供
sora2pro
实现不同风格。
最高
nano-banana-pro
4K
seedance-2
(high, 15s)
最优质量,也可以提供
sora2pro
(1080p)。图片生成使用
--params '{"resolution":"4K"}'
参数。

Troubleshooting

问题排查

SymptomLikely CauseFix
Sora rejected imagePerson in imageSwitch to
kling_3_pro
Video adds objects not in sourceMotion prompt describes elements not in imageSimplify to camera movement and atmosphere only
Text unreadable in videoAI tried to render text in generationRemove text from video prompt, use textOverlay instead
Hands look wrongComplex hand actions in promptSimplify to passive positions or frame to exclude
Style inconsistent across seriesNo shared anchorUse same reference image via
--attach
Changes to step A not in step BStale renderRe-run all downstream steps
现象可能原因修复方案
Sora 拒绝处理图片图片中有人物切换到
kling_3_pro
视频中出现了源素材没有的对象动作Prompt描述了图片中不存在的元素简化Prompt,仅保留相机移动和氛围描述
视频中的文字无法阅读AI在生成时尝试渲染文字从视频Prompt中移除文字描述,改用textOverlay添加
手部看起来怪异Prompt中有复杂的手部动作简化为被动姿势,或者裁剪画面排除手部
系列内容风格不一致没有共享锚点通过
--attach
使用相同的参考图片
步骤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:
    export WONDERCAT_API_KEY=sk_...
    or
    wonda config set api-key sk_...
  • Job failed:
    wonda jobs get inference <id>
    for error details
  • Bad params:
    wonda models info <slug>
    for valid params
  • Timeout:
    wonda jobs wait inference <id> --timeout 20m
  • Insufficient credits (402):
    wonda topup --amount 10
    to add credits via Stripe
  • 未知模型:执行
    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):执行
    wonda topup --amount 10
    通过Stripe充值点数