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 , or an existing WONDA PREMIUM seat) 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, and relay operation. Before any product command does work, the CLI performs a live entitlement check against Wonda. The check fails closed when access cannot be verified. If that entitlement GET receives HTTP 429, the CLI waits once for a valid Retry After (seconds or HTTP date), or 60 seconds when absent/invalid, then retries only the entitlement GET. Automatic waiting is capped at 60 seconds: a longer server delay fails closed immediately and reports its earliest suggested next attempt. Cancellation, a terminal deny/error, or an unconfirmed response blocks product work. A terminal 429 reports the exhausted retry and earliest suggested next attempt, not a guaranteed reset time. Successful access is never cached, and product mutations are never replayed by this recovery. 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 ( $49.99/mo , "Pro") The one plan. New subscribers pay $49.99/mo ; existing subscribers keep the price they signed up at. Generation ( image/generate , video/generate , ...) is billed per use from the credit balance: the plan includes no generation credits. Also 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 ("Premium", parked) No longer sold. Existing Premium subscribers keep their plan and cloud twin ( wonda twin ) access; cloud twins are not offered to anyone else. 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 " HTT