Studio
vclaw studio is the human-friendly planning front door for VideoClaw.
It does not replace the low-level CLI. It builds a production plan from a goal, then shows the exact commands and artifacts that will be used.
Start With A Dry Run
vclaw studio --dry-run --goal create-video --project demo --intent "Create a 30 second product ad"The Phase 1 Studio command is plan-only. It does not call providers, run FFmpeg, or spend credits.
Goals
Original video from a brief.
create-videoAdapt a reference video or ad.
copy-referenceBunty, Nex, Davendra, or generic presenter episode.
presenter-videoMulti-shot cinematic or music video planning.
music-videoIdentity-locked character ad or episode (locked Go Bananas / Flow character).
character-videoBelief-driven UGC campaign.
ugc-campaignBrand DNA from a website URL, seed the brief, plan an on-brand campaign.
brand-campaignContinue a project and get next actions.
existing-projectReview, reroll, or approve scenes.
review-regenerateBuild and publish a portal.
publish-deliverbrand-campaign (aliases: brand, website) takes the site URL via --input; its plan chains brand-extract → brief --from-brand-dna → storyboard → readiness.
Examples
vclaw studio --dry-run --goal presenter-video --project demo --input deck.pdf --client "Acme"
vclaw studio --dry-run --goal music-video --project dhuaan --duration 60
vclaw studio --dry-run --goal existing-project --project demo
vclaw studio --dry-run --goal publish-deliver --project demo --client "Acme"
vclaw studio --dry-run --goal brand-campaign --project demo --input https://acme.comUse --write-session to persist the planned handoff under the project:
vclaw studio --dry-run --goal presenter-video --project demo --input deck.pdf --write-sessionThis writes projects/<slug>/artifacts/studio-session.json.
Execution (--execute)
By default Studio is plan-only — it prints the commands but runs nothing. Add --execute to run the emitted plan step-by-step. Studio does not re-implement any orchestration; it shells out to the same vclaw video … commands the plan already lists, so the plan stays the source of truth.
vclaw studio --execute --goal existing-project --project demoThree modes (you choose at run time)
| Command | What runs | Credits |
|---|---|---|
--execute | Dry. Free steps + spend steps with --dry-run. Pauses at the real director storyboard gate (surfaced as a blocked step). | none |
--execute --confirm-spend | Real render, human-gated. Promotes the dry spend steps to real (strips --dry-run). The render still needs the storyboard approved out-of-band — the runner does not auto-approve. | spends on approval |
--execute --confirm-spend --auto-approve-storyboard | Unattended render. Also sets VIDEOCLAW_APPROVE_STORYBOARD, so a single command runs the whole pipeline through the real render with no human checkpoint. | spends unattended |
Credit-safety guarantees:
- The default
--executeis provably dry — a spend subcommand (execute/produce/seedance-register-assets/batch-submit/publish-preview/publish-portal-index) lacking--dry-runis refused (blocked-spend), and the dry steps keep--dry-run. - Real spend requires the explicit
--confirm-spend; unattended real spend requires both--confirm-spendand--auto-approve-storyboard(never accidental). - Without
--auto-approve-storyboardthe runner stripsVIDEOCLAW_APPROVE_STORYBOARDfrom the child env, so the director gate keeps blocking a real render. - Fails fast — a blocked or failed step stops the run with no partial spend.
--from-step <id>resumes after you have approved the storyboard out-of-band.
The result is reported under an execution block in the JSON output: the mode (dry / confirm-spend / auto-render), per-step status (ran / blocked-spend / blocked / failed / skipped-before-resume), the stopReason, a hint (in dry mode) on how to render for real, and any surfaced storyboard markdownPath.
Agent Contract
When stdout is piped, Studio outputs JSON. Progress and warnings stay out of stdout. The plan-only default performs no provider work; --execute runs only dry-run/free steps and pauses at approval/spend points (see above).
