wonda-cli
Using the Wonda CLI to generate images, videos, music, and audio from the terminal — plus LinkedIn, Reddit, and X/Twitter research and automation
By degausai · 74,605 installs
npx skills add degausai/wonda --skill wonda-cli
Source repository · Upstream listing
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.
Install
If wonda is not found on PATH, install it first. The recommended installs are the signed desktop installers (CLI + tray icon + always on relay, zero extra steps): macOS brew install cask degausai/tap/wonda app (or the wonda macos.pkg from releases), Windows winget/wonda windows setup.exe. The CLI only channels below work everywhere and can add the desktop app later with wonda app install :
Setup
Auth : wonda auth login (opens browser, recommended) or set WONDA API KEY env var
Verify : wonda auth check
OAuth connector auth
Claude web and Cowork connectors use Wonda's OAuth 2.1 flow instead of a CLI
API key field. The connector signs in through Wonda in the browser, grants the
requested account access, and receives OAuth tokens bound to the Wonda API
resource. The server swaps those tokens to the account's internal API key only
inside Wonda, so agents and connector hosts never see the sk ... key. For the
CLI and local stdio MCP path, keep using wonda auth login or
WONDA API KEY .
Claude Cowork local relay
Claude Cowork (the desktop app) runs local MCP servers on the host, so it can
load the .mcpb bundle or a local stdio wonda mcp config directly, WAB
writes included (verified 2026 07 07). Claude web cannot. The Wonda local
relay is the alternative path: it lets the REMOTE connector (web or Cowork)
run actions on the user's own Mac and residential IP without any local MCP
config:
1. Open https://wonda.sh/download while signed in and install the notarized
Mac package.
2. Pair the relay with wonda relay pair or the first run browser handoff. This
uses the existing cli auth flow with a relay scoped wrelay ...
credential stored in the macOS Keychain. Do not ask the user to paste an API
key or device code.
3. Open https://wonda.sh/setup , connect LinkedIn, X, and Reddit through the
headful local WAB, then approve the Wonda connector once in Claude.
The engine policy is auto my machine cloud . auto uses the local relay
when it is online and cloud otherwise. my machine must not silently fall back:
if the relay is offline, ask whether to switch to cloud.
Organizations & spend context
Wondercat orgs are shared wallets with their own seats and billing.
Members can spend from the org wallet (instead of their personal credits)
by switching context:
wonda organizations list (aliases: wonda orgs list , wonda org list ) — see every org you belong to with your role and seat plan in each.
wonda use org <slug — sticky org context for this machine. Sets
X Wonda Org on every request; holds, charges, and wonda balance
route through the org wallet.
wonda use personal — back to personal.
wonda usage — spend only usage summary (total + per model + per project
breakdown) for a period ( month 2026 05 , or from / to ; defaults
to the current month, UTC). project <name restricts the report to one
project. In org context it reports org wide usage including a per member
breakdown — admin/owner role required. Admins can also download a full
Excel report from the org page on the web.
Projects (spend tagging)
Projects attribute spend to a named workstream for monitoring. Agents
should check the active project at task start ( wonda use prints it) and
set one per task when the operator monitors spend by project:
wonda use project <name — sticky: every subsequent charge carries
the project (in wonda usage , the API, and the org Excel report).
wonda use no project stops tagging; switching org/personal context
clears the project automatically (projects are per scope).
project <name on any command — one off override for that invocation.
wonda project list create delete — manage the registry in the active
scope. Org projects are created by org admins/owners only; personal
projects are self service. Tagging against a name that doesn't exist
fails with unknown project (no silent new buckets, so typos can't
split the monitoring data).
wonda topup always tops up your personal wallet, regardless of
context. Topping up the org wallet (and configuring auto top up) is
admin only and happens on the web at /organizations/<slug . If a
member runs out of org credits, the error tells them to ask an admin or
switch back to personal — they cannot top up the org wallet from CLI.
Roles inside an org are separate from the seat plan:
Owner : the original creator. Cannot be demoted or kicked. Can transfer ownership to another member from the org page (rare).
Admin : can invite (single or bulk via paste), kick, change roles, change seats, top up, configure auto top up, change monthly limits.
User : can only spend within the org wallet (subject to a per member monthly limit if the admin set one).
A paid org seat ( WONDA / WONDA PREMIUM ) grants the same paid feature access (skills, etc.) as a personal paid plan, but only while in org context. wonda use personal falls back to the user's personal account plan.
Access tiers
Wonda is paid only: every product surface requires a paid plan, including API calls, local platform reads, browser automation, media composition, file editing, diagnostics, generation, publishing, scraping, analysis, skills, relay operation, and cloud twin. Before any product command does work, the CLI performs a live entitlement check against Wonda. The check fails closed when access cannot be verified. New accounts get no product access until they subscribe, and a positive credit balance does not substitute for a plan.
Tier Access
Anonymous (no login) No product access. Authentication, config, pricing, organization discovery/selection, shell completion, and local shutdown commands remain available so the user can subscribe, recover, or stop background services. Run wonda auth login , then subscribe.
Free (logged in, no paid plan) No product access. Subscribe at https://wonda.sh/account to use the product.
WONDA ( $19.99/mo , "Pro") Everything except cloud twin: generation ( image/generate , video/generate , ...), media upload/download, publishing, scraping, analytics, video analysis, skills ( wonda skill install/list/get ), transitions, clipping, email, reddit/linkedin account creation, styles, brand.
WONDA PREMIUM ( $49.99/mo , "Premium") Everything in WONDA, plus cloud twin ( wonda twin : provisioning, scheduled runs, streamed login) with antidetect / shadowban protection, no caps, and US account creation.
Flagged (per account PostHog kill switches) Included in the paid plan but still gateable by a per account flag: wonda reddit signup (redditAccountCreationEnabled), wonda email (emailServerApiEnabled), public LinkedIn profile enrichment (linkedinProfileEnrichmentEnabled).
If a command returns a 403 ( paid plan required ), subscribe at https://wonda.sh/account.
This applies to the local stdio MCP path too because MCP executes the same CLI. Platform cookies and data remain on device, but the command must first receive a successful paid access decision from GET /api/v1/auth/access . A relay only installation may use its scoped wrelay ... credential for that entitlement probe. The scoped credential still cannot call ordinary account APIs.
Voice cloning
Clone a voice from a 10s+ audio clip and use it in TTS. Hard limit: 20 cloned voices per account. Cost: $1.50 per clone.
Use a cloned voice in TTS by passing the providerVoiceId from voice get as voiceId to /audio/speech :
7 day expiry : cloned voices that haven't been used in TTS within 7 days are automatically expired. Running TTS with a cloned voice automatically refreshes its expiry. Idle voices that lapse must be re cloned ($1.50 again).
Credentials vault
Persist logins created on external platforms (Instagram, TikTok, Twitter, etc.) so they can be reused on the next run. Passwords are AES 256 GCM encrypted with a server side key and only decrypted on get .
Fields: website (required — typed input like insta is canonicalized to instagram.com ), username , email , password (required), metadata (arbitrary JSON). At least one of username / email must be present. Multiple records per (website, username) are allowed — dedupe on your side if you need to.
Event log : every credentials get / use , create , password rotate, and other updates are recorded as events on the credential (actor: cli web system ). Use credentials events <id or the web UI's history icon to audit. The event log is append only and cascades on credential delete.
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
CLI announcements & deprecation warnings
On every command the CLI polls GET /api/v1/updates (anonymous, 1h cache in ~/.wonda/state.json ) for active announcements: deprecation notices, incident heads ups, upgrade prompts. Messages are printed to stderr only, so stdout/JSON stays clean for piping.
Per request deprecation hints arrive as the standard Warning: 299 "<message " HTTP header and are surfaced to stderr by the CLI's HTTP client as [deprecated METHOD /path] <message .
Silence both channels with WONDA QUIET=1 (env var) or quiet (flag). Disable just the network checks with WONDA NO UPDATE CHECK=1 .
WAB / Wonda Automation Browser ( wonda wab )
The Wonda Automation Browser (WAB) is a premium stealth antidetect browser, hardened so platforms cannot fingerprint it as automation. wonda wab is the one command for the antidetect Chromium stack (an undetected Playwright fork). It has two faces:
Authenticated sessions. One persistent headful Chromium per persona that holds signed in sessions for LinkedIn, X, Reddit, and friends. The CLI spawns it on demand, lets it idle out, and routes platform reads/writes through it whenever a command runs via wab . Cookies live in the persona's Chromium profile, not in ~/.wonda/config.json .
Anonymous capture. wonda wab screenshot <url , wonda wab record <url , and wonda brand extract drive an ephemeral Chromium with a fresh fingerprint, no persona, and no cookies. Screenshot supports responsive single, batch, and manifest capture. See the screenshot and record blocks below.
The mental model: you have accounts (one identity per platform). Each platform command routes to that account's cookies via either the flat JSON store ( via cookies , fast, no Chromium) or the account's persona ( via wab , live antidetect Chromium). A persona is the Chromium envelope that can hold multiple accounts under one fingerprint. In almost every case the persona is auto created on fir