Wonda CLI
概述
使用 Wonda CLI 在终端中生成图像、视频、音乐和音频,并支持 LinkedIn、Reddit 和 X/Twitter 的自动化与研究。
工作流
name: wonda-cli description: 使用 Wonda CLI 在终端中生成图像、视频、音乐和音频,并支持 LinkedIn、Reddit 和 X/Twitter 的自动化与研究。
Wonda CLI
Wonda CLI 是一个面向终端代理的内容创建工具包。使用它来生成图像、视频、音乐和音频;编辑和合成媒体;发布到社交平台;并在 LinkedIn、Reddit 和 X/Twitter 上进行研究和自动化。
安装
如果系统中找不到 wonda,请先安装它:
# npm
npm i -g @degausai/wonda
# Homebrew
brew tap degausai/tap && brew install wonda
设置
- 认证:
wonda auth login(推荐,会打开浏览器)或设置WONDA_API_KEY环境变量 - 验证:
wonda auth check
OAuth 连接器认证
Claude Web 和 Cowork 连接器使用 Wonda 的 OAuth 2.1 流程,而不是 CLI 的 API 密钥字段。连接器通过浏览器在 Wonda 中登录,授予所请求的账户访问权限,并接收绑定到 Wonda API 资源的 OAuth 令牌。服务器将那些令牌仅在 Wonda 内部交换为账户的内部 API 密钥,因此代理和连接器主机永远不会看到 sk_... 密钥。对于 CLI 和本地 stdio MCP 路径,继续使用 wonda auth login 或 WONDA_API_KEY。
Claude Cowork 本地中继
Claude Cowork(桌面应用)在主机上运行本地 MCP 服务器,因此可以直接加载 .mcpb 包或本地 stdio wonda-mcp 配置(包括 WAB 写入,已验证于 2026-07-07)。Claude Web 则不行。Wonda 本地中继是另一种路径:它允许 REMOTE 连接器(Web 或 Cowork)在用户自己的 Mac 和住宅 IP 上执行操作,而无需任何本地 MCP 配置:
- 在登录状态下打开
https://wonda.sh/download并安装经过公证的 Mac 包。 - 使用
wonda relay pair或首次运行的浏览器交接来配对中继。这使用现有的cli-auth流程,并将在 macOS 钥匙串中存储一个中继作用域的wrelay_...凭据。不要要求用户粘贴 API 密钥或设备代码。 - 打开
https://wonda.sh/setup,通过全功能本地 WAB 连接 LinkedIn、X 和 Reddit,然后在 Claude 中批准 Wonda 连接器。
引擎策略是 auto | my_machine | cloud。auto 在本地中继在线时使用它,否则使用云。my_machine 不得静默回退:如果中继离线,则询问是否切换到云。
组织与消费上下文
Wondercat 组织是共享钱包,拥有自己的席位和计费。成员可以通过切换上下文从组织钱包(而不是个人信用额度)消费:
wonda organizations list(别名:wonda orgs list,wonda org list)——查看你所属的每个组织及其角色和席位计划。wonda use --org <slug>——此机器的粘性组织上下文。在每个请求上设置X-Wonda-Org;扣费、收费和wonda balance都通过组织钱包路由。wonda use --personal——返回个人模式。wonda usage——仅消费的使用情况摘要(按总计 + 每个模型 + 每个项目细分),适用于某个时间段(--month 2026-05,或--from/--to;默认为当前月,UTC)。--project <name>将报告限制为一个项目。在组织上下文中,它会报告组织范围的使用情况,包括每个成员的细分——需要管理员/所有者角色。管理员还可以从组织的网页页面下载完整的 Excel 报告。
项目(消费标记)
项目将消费归因于一个命名的工作流,以便进行监控。代理应在任务开始时检查当前项目(wonda use 会打印它),并在操作员按项目监控消费时为每个任务设置一个项目:
wonda use --project <name>——粘性:后续每次收费都会携带该项目(在wonda usage、API 和组织 Excel 报告中)。wonda use --no-project停止标记;切换组织/个人上下文会自动清除项目(项目是每个作用域的)。- 任何命令上的
--project <name>——该调用的单次覆盖。 wonda project list|create|delete——管理当前作用域中的注册表。组织项目仅由组织管理员/所有者创建;个人项目是自助服务的。针对不存在的名称进行标记会失败并返回unknown_project(没有静默的新存储桶,因此拼写错误不会拆分监控数据)。
wonda topup 总是为你的个人钱包充值,无论上下文如何。为组织钱包充值(以及配置自动充值)是管理员独有的操作,发生在网页的 /organizations/<slug> 页面。如果成员用完了组织信用额度,错误会告诉他们要求管理员或切换回个人模式——他们无法从 CLI 为组织钱包充值。
组织内的角色与席位计划是分开的:
- 所有者:原始创建者。不能被降级或移除。可以从组织页面将所有权转让给另一个成员(很少见)。
- 管理员:可以邀请(单个或批量粘贴)、移除、更改角色、更改席位、充值、配置自动充值、更改每月限制。
- 用户:只能在组织钱包内消费(如果管理员设置了每月限制,则受限于每个成员的每月限制)。
付费组织席位(WONDA / WONDA_PREMIUM)授予与个人付费计划相同的付费功能访问权限(技能等),但仅在组织上下文中有效。wonda use --personal 回退到用户的个人账户计划。
访问层级
Wonda 是纯付费服务:每个产品表面(生成、媒体、发布、抓取、分析、技能、云孪生)都需要付费计划。新账户没有信用额度,也没有任何产品访问权限,直到他们订阅。
| 层级 | 访问权限 |
|---|---|
| 匿名(临时账户,未登录) | 无产品访问权限。CLI 在首次运行时创建一个临时账户,但只能访问下面的本地命令以及认证/计费端点。运行 wonda auth login,然后订阅。 |
| 免费(已登录,无付费计划) | 无产品访问权限。在 https://wonda.sh/account 订阅以使用产品。 |
WONDA($19.99/月,“Pro”) | 除云孪生外的一切:生成(image/generate, video/generate, ...)、媒体上传/下载、发布、抓取、分析、视频分析、技能(wonda skill install/list/get)、转场、剪辑、电子邮件、reddit/linkedin 账户创建、样式、品牌。 |
WONDA_PREMIUM($49.99/月,“Premium”) | WONDA 中的一切,外加云孪生(wonda twin:配置、定时运行、流式登录)和反检测/影子禁令保护、无上限、美国账户创建。 |
| 标记(每个账户的 PostHog 开关) | 包含在付费计划中,但仍可通过每个账户的标志进行门控:wonda reddit signup(redditAccountCreationEnabled)、wonda email(emailServerApiEnabled)、公开的 LinkedIn 资料丰富(linkedinProfileEnrichmentEnabled)。 |
| 本地(无 API 调用、无信用额度、无计划) | 完全在机器上运行,因此无需计划即可工作:wonda brand extract <url>(无 --save)、wonda compose motion/wonda compose text、wonda wab record <url>、wonda edit ... 本地文件上的 ffmpeg 基本转换、wonda doctor。基于 Chromium 的命令需要一次性安装 wonda wab install。 |
如果命令返回 403(paid_plan_required),请在 https://wonda.sh/account 订阅。
语音克隆
从 10 秒以上的音频片段克隆语音并在 TTS 中使用。硬限制:每个账户 20 个克隆语音。费用:每个克隆 $1.50。
# 从本地文件克隆(首先自动上传到媒体库)
wonda voice create "Andu" --file ./sample.mp3 --description "我的声音"
# 从现有的 wonda 媒体克隆
wonda voice create "Brand" --media-id <uuid>
# 可选的源音频预处理
wonda voice create "Clean" --file ./raw.wav --noise-reduction --normalize-volume
# 列出克隆的语音(每行报告 isExpired 和 expiresInDays)
wonda voice list
# 获取单个语音
wonda voice get <voice-id>
# 重命名/重新描述(仅本地,不调用提供商)
wonda voice update <voice-id> --name "新名称" --description "..."
# 删除
wonda voice delete <voice-id>
在 TTS 中使用克隆的语音,将 voice get 返回的 providerVoiceId 作为 voiceId 传递给 /audio/speech:
wonda audio speech "你好世界" \
--model minimax-speech-2-8-hd \
--params '{"voiceId":"<providerVoiceId>"}'
7 天过期:如果在 7 天内未在 TTS 中使用,克隆的语音将自动过期。使用克隆的语音运行 TTS 会自动刷新其过期时间。闲置的语音过期后必须重新克隆(再次花费 $1.50)。
凭证保险库
持久保存在外部平台(Instagram、TikTok、Twitter 等)上创建的登录信息,以便在下次运行时重用。密码使用服务器端密钥进行 AES-256-GCM 加密,仅在 get 时解密。
# 创建
wonda credentials create --website instagram.com --username myhandle \
--email [email protected] --password-stdin <<< "hunter2" \
--metadata '{"signup_source":"wonda-email"}'
# 列出(密码已省略)
wonda credentials list --website instagram.com
# 获取完整记录,包括解密后的密码
wonda credentials get <id>
# 更新任何字段(使用 --password-stdin 轮换;使用 --username "" 清除)
wonda credentials update <id> --username newhandle
# 删除
wonda credentials delete <id>
# 在一个调用中获取并记录使用原因——POST,不是 GET,因为它会写入一个带有原因的 'used' 事件。只要你能说明原因,就优先使用此命令而不是 `get`。
wonda credentials use <id> --reason "instagram 注册流程"
# 查看最近的事件(创建/使用/轮换/更新)以进行审计
wonda credentials events <id>
字段:website(必需——像 insta 这样的输入会被规范化为 instagram.com)、username、email、password(必需)、metadata(任意 JSON)。至少 username / email 中的一个必须存在。允许每个 (website, username) 有多条记录——如果需要,可以在你这边进行去重。
事件日志:每次 credentials get/use、create、密码轮换和其他更新都作为事件记录在凭据上(操作者:cli | web | system)。使用 credentials events <id> 或 Web UI 的历史图标进行审计。事件日志是仅追加的,并在凭据删除时级联删除。
全局输出标志
所有命令都支持以下输出控制标志:
--json——强制 JSON 输出(当标准输出被管道化时自动启用)--quiet——仅输出主要标识符(作业 ID、媒体 ID 等)——非常适合脚本编写-o <path>——将输出下载到文件(隐式启用--wait)--fields status,outputs——选择特定的 JSON 字段--jq '.outputs[0].media.url'——使用 jq 表达式过滤 JSON 输出
CLI 公告与弃用警告
在每个命令上,CLI 轮询 GET /api/v1/updates(匿名,在 ~/.wonda/state.json 中缓存 1 小时)以获取活跃公告:弃用通知、事件提醒、升级提示。消息仅打印到标准错误,因此标准输出/JSON 保持干净以便管道化处理。
每个请求的弃用提示以标准的 Warning: 299 - "<message>" HTTP 标头形式到达,并由 CLI 的 HTTP 客户端作为 [deprecated METHOD /path] <message> 显示到标准错误。
通过 WONDA_QUIET=1(环境变量)或 --quiet(标志)静默这两个通道。仅用 WONDA_NO_UPDATE_CHECK=1 禁用网络检查。
WAB / Wonda 自动化浏览器 (wonda wab)
Wonda 自动化浏览器(WAB)是一个高级的隐身反检测浏览器,经过强化,平台无法将其识别为自动化工具。wonda wab 是用于反检测 Chromium 栈(一个未被识别的 Playwright 分支)的统一命令。它有两个方面:
- 认证会话。 每个角色一个持久的全功能 Chromium,持有 LinkedIn、X、Reddit 等的登录会话。CLI 按需生成它,让它空闲退出,并在任何时候命令通过
--via wab运行时,通过它路由平台读取/写入。Cookie 存在于角色的 Chromium 配置文件中,而不是在~/.wonda/config.json中。 - 匿名捕获。
wonda wab record <url>(以及wonda brand extract)驱动一个临时的 Chromium,具有全新的指纹,没有角色,没有 Cookie。请参阅下面的record部分。
思维模型:你有账户(每个平台一个身份)。每个平台命令通过平面 JSON 存储(--via cookies,快速,无需 Chromium)或账户的角色(--via wab,实时反检测 Chromium)路由到该账户的 Cookie。角色是可以包含多个账户的 Chromium 信封,所有这些账户都共享一个指纹。在几乎所有情况下,角色是自动管理的。