baz.studio API

baz studio

CLI-first Studio workflows for brand evidence, runs, and claim pages

baz studio [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio brand

Manage Studio brand records

baz studio brand [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio brand ensure

Create or update a reusable Studio brand record

baz studio brand ensure [options]
OptionDescription
--url <url>Brand website URL or domain
--name <name>Display name
--brand-markdown <markdown>Optional authored brand.md content
--visibility <visibility>private, unlisted, or public Default: unlisted.
--review-status <status>automated, approved, or rejected Default: approved.
-h, --helpdisplay help for command

baz studio evidence

Manage typed brand evidence and claims

baz studio evidence [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio evidence list

List typed claims for a brand

baz studio evidence list [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--claim-type <type>Filter by claim type
--status <status>Filter by status
--limit <n>Max claims to return Default: 100.
-h, --helpdisplay help for command

baz studio evidence add

Add one or more manual typed claims to a brand

baz studio evidence add [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--file <path>JSON array or object with a claims array
--claim <text>Claim text for single-claim entry
--claim-type <type>Claim type for single-claim entry
--value <value>Numeric/string value for stat or pricing claims
--unit <unit>Unit for the value
--attribution <attribution>self_claim, third_party, or verified Default: self_claim.
--source-url <url>Source URL
--source-type <type>Source type Default: manual.
--quote <quote>Exact source quote
--confidence <confidence>low, medium, or high Default: high.
--status <status>draft, approved, or rejected Default: approved.
-h, --helpdisplay help for command

baz studio evidence review

Update claim review status

baz studio evidence review [options] <claim-id>
OptionDescription
--status <status>draft, approved, or rejected
--confidence <confidence>low, medium, or high
-h, --helpdisplay help for command

baz studio evidence resolve

Resolve a skill input contract against typed brand evidence

baz studio evidence resolve [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--skill <skill>Official skill slug or id Default: charts-data.
--format <format>landscape, portrait, or square
--duration <seconds>Requested duration in seconds
--max-claims <n>Maximum approved claims to inspect Default: 10.
-h, --helpdisplay help for command

baz studio evidence materialize-finance

Dry-run or execute finance evidence seed materialization into Studio claims and chart assets

baz studio evidence materialize-finance [options]
OptionDescription
--seed-jsonl <path>Studio evidence seed JSONL
--source-jsonl <path>Finance source fixture JSONL for sourceId cross-checking
--run-story-jsonl <path>run_story_v0 draft JSONL for exact-quote coverage checking
--source-id <id>Only materialize one sourceId
--executeWrite Studio rows for --source-id or all rows when omitted
--create-evidence-packsCreate completed source_bundle evidence pack snapshots after execute writes
-h, --helpdisplay help for command

baz studio screenshots

Manage typed brand screenshot and image asset purposes

baz studio screenshots [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio screenshots add

Add or adopt a screenshot URL as a typed brand asset

baz studio screenshots add [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--url <url>Screenshot image URL
--purpose <purpose>Screenshot purpose
--source-url <url>Page URL or source URL represented by the screenshot
--name <name>Original/display name for the asset
--viewport <viewport>Viewport label, e.g. desktop or mobile
--width <px>Image width in pixels
--height <px>Image height in pixels
-h, --helpdisplay help for command

baz studio screenshots list

List brand screenshots and typed image assets

baz studio screenshots list [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--purpose <purpose>Filter by screenshot purpose
--no-legacyHide legacy brand_repository.screenshots entries
-h, --helpdisplay help for command

baz studio screenshots update

Set or clear the purpose for a typed brand screenshot asset

baz studio screenshots update [options] <brand-asset-id>
OptionDescription
--purpose <purpose>home_hero, pricing_table, product_dashboard, customer_logos, case_study_metric, docs_ui, chart_source, or social_proof
--clear-purposeClear the current purpose
-h, --helpdisplay help for command

baz studio ingest

Create browser-use/browser-harness ingestion jobs for reusable evidence packs

baz studio ingest [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio ingest start

Create a queued browser ingestion job and evidence-pack contract

baz studio ingest start [options]
OptionDescription
--url <url>Brand website URL or domain
--name <name>Display name
--backend <backend>manual, source_bundle, browser_use, browser_harness, or playwright Default: browser_use.
-h, --helpdisplay help for command

baz studio evidence-pack

Persist and inspect reusable brand evidence packs

baz studio evidence-pack [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio evidence-pack create

Snapshot the current typed brand claims/assets into a durable evidence pack

baz studio evidence-pack create [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--backend <backend>manual, source_bundle, browser_use, browser_harness, or playwright Default: browser_use.
--status <status>queued, running, completed, failed, or needs_review Default: completed.
--notes <notes>Optional operator notes
-h, --helpdisplay help for command

baz studio evidence-pack list

List persisted evidence packs for a brand

baz studio evidence-pack list [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--status <status>Filter by status
--limit <n>Max packs to return Default: 20.
-h, --helpdisplay help for command

baz studio evidence-pack import

Persist a browser-use evidence-pack JSON file and optionally create draft claims

baz studio evidence-pack import [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--file <path>Evidence pack JSON file
--backend <backend>manual, source_bundle, browser_use, browser_harness, or playwright Default: browser_use.
--status <status>queued, running, completed, failed, or needs_review Default: needs_review.
--no-draft-claimsDo not create draft brand_claim rows from evidencePack.claims
-h, --helpdisplay help for command

baz studio evidence-pack import-resource

Convert a baz resource compile spec into approved claims and a Studio evidence pack

baz studio evidence-pack import-resource [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--file <path>resource-video.v1 JSON file from baz resource compile
--backend <backend>manual, source_bundle, browser_use, browser_harness, or playwright Default: source_bundle.
--status <status>queued, running, completed, failed, or needs_review Default: completed.
--claim-status <status>draft, approved, or rejected Default: approved.
--max-claims <n>Maximum claims to materialize from the resource spec Default: 12.
--notes <notes>Optional operator notes
-h, --helpdisplay help for command

baz studio plan

Create and inspect durable Studio production plans

baz studio plan [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio plan create

Create a durable Studio plan and queued source-backed runs

baz studio plan create [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--title <title>Plan title
--skills <skills>Comma-separated official skill slugs or ids Default: charts-data.
--count <n>Total number of planned runs to create Default: 5.
--formats <formats>Comma-separated formats: portrait, landscape, square Default: portrait.
--evidence-pack-id <id>Evidence pack id to pin in sourceInputSnapshot
--duration <seconds>Requested duration in seconds
--max-claims <n>Maximum approved claims to inspect per resolver pass Default: 10.
--allow-missingCreate the plan even if resolver reports missing evidence
--planner-profile <profile>Planner profile label; stored literally for audit/config resolution
--status <status>planning, queued, executing, reviewed, published, or failed Default: queued.
--run-status <status>Initial brand_run status for generated runs Default: queued.
-h, --helpdisplay help for command

baz studio plan import

Import a frozen story plan (run_story_v0 JSONL) into Studio

baz studio plan import [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--jsonl <path>Path to a run_story_v0 JSONL file
--title <title>Plan title
--planner-profile <profile>Planner profile label (e.g. deepseek-v4-flash); stored literally for audit
--source-label <label>Free-form provenance label written into planMetadata.sourceLabel (no path leakage)
--on-unresolved <mode>fail | warn | drop (default fail) Default: fail.
--status <status>Plan status: planning, queued, executing, reviewed, published, failed Default: queued.
--run-status <status>Initial brand_run status for generated runs Default: queued.
--evidence-pack-id <id>Evidence pack id to pin in planMetadata
--limit <n>Cap rows imported (testing aid)
--brand-filter <domain>Only import rows whose brandDomain matches the given string (case-insensitive)
--allow-mismatched-profileContinue when JSONL row models do not match --planner-profile (off by default)
-h, --helpdisplay help for command

baz studio plan list

List durable Studio plans for a brand

baz studio plan list [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--status <status>Filter by plan status
--limit <n>Max plans to return Default: 20.
-h, --helpdisplay help for command

baz studio plan inspect

Inspect a Studio plan and its linked runs

baz studio plan inspect [options] <plan-id>
OptionDescription
-h, --helpdisplay help for command

baz studio runs

Create and inspect persisted Studio brand_run rows

baz studio runs [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio runs create

Create one Studio run and freeze the resolver binding plan into brand_run

baz studio runs create [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--skill <skill>Official skill slug or id Default: charts-data.
--brief <brief>Run brief
--evidence-pack-id <id>Evidence pack id to pin in sourceInputSnapshot
--plan-id <id>Studio brand_plan id to link
--format <format>landscape, portrait, or square
--duration <seconds>Requested duration in seconds
--max-claims <n>Maximum approved claims to inspect Default: 10.
--allow-missingCreate the run even if resolver reports missing evidence
--status <status>Initial brand_run status Default: queued.
-h, --helpdisplay help for command

baz studio runs batch

Create queued Studio runs for one brand across skills and briefs

baz studio runs batch [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--skills <skills>Comma-separated official skill slugs or ids Default: charts-data.
--brief <brief>One brief. Can be repeated by shell aliases via --briefs-file for now
--briefs-file <path>JSON array/object or newline-delimited brief file
--count <n>Number of generic briefs to create when no brief is supplied Default: 1.
--evidence-pack-id <id>Evidence pack id to pin in sourceInputSnapshot
--format <format>landscape, portrait, or square
--duration <seconds>Requested duration in seconds
--max-claims <n>Maximum approved claims to inspect Default: 10.
--allow-missingCreate runs even if resolver reports missing evidence
--status <status>Initial brand_run status Default: queued.
-h, --helpdisplay help for command

baz studio runs list

List Studio runs for a brand

baz studio runs list [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--status <status>Filter by brand_run status
--plan-id <id>Filter by Studio brand_plan id
--limit <n>Max runs to return Default: 20.
-h, --helpdisplay help for command

baz studio runs inspect

Inspect a Studio run including resolved bindings, source input, and output snapshot

baz studio runs inspect [options] <run-id>
OptionDescription
-h, --helpdisplay help for command

baz studio runs review

Review a generated Studio run with deterministic gates, optional LLM judgment, and optional rendered-frame vision review

baz studio runs review [options] <run-id>
OptionDescription
--model <model>Reviewer model id from models.config.ts Default: deepseek-v4-flash.
--worker <worker>Reviewer worker id for audit metadata
--no-llmSkip the LLM pass and run deterministic checks only
--visualRender representative frames and include a vision model review
--visual-reviewer-model <model>Visual reviewer model id from models.config.ts
--frames-per-scene <n>Frames to render per scene for --visual Default: 3.
--max-visual-frames <n>Maximum visual review frames to render/send Default: 24.
--expected-status <status>Require the run to currently have this status
-h, --helpdisplay help for command

baz studio runs claim

Atomically claim one queued Studio run for a worker

baz studio runs claim [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--worker <worker>Worker id, e.g. claude-worker-1
--skill <skill>Filter by official skill slug or id
--scan-limit <n>Max queued candidates to scan Default: 10.
-h, --helpdisplay help for command

baz studio runs work

Claim, execute, and optionally review queued Studio runs in a worker loop

baz studio runs work [options]
OptionDescription
--brand <brand>Brand id, URL, domain, or short domain prefix
--worker <worker>Worker id, e.g. studio-worker-1
--skill <skill>Filter by official skill slug or id
--limit <n>Maximum runs this process should claim before exiting Default: 10.
--until-emptyIgnore --limit and keep claiming until no queued run is available
--scan-limit <n>Max queued candidates to scan per claim attempt Default: 10.
--mode <mode>Generation mode: agent, agent-max, or multi-scene Default: agent.
--model <model>Agent/orchestrator model alias or full model id
--codegen-model <model>Codegen model alias or full model id
--voiceover-provider <provider>TTS provider for voiceover-led Studio runs: gemini or elevenlabs
--voiceover-voice-id <voiceId>Voice id to pass to media.generate_voiceover for voiceover-led Studio runs
--completeMark successful execution completed instead of needs_review
--reviewRun Studio review immediately after successful execution
--review-model <model>Reviewer model id from models.config.ts Default: deepseek-v4-flash.
--visual-reviewWhen reviewing, render representative frames and include a vision model review
--visual-reviewer-model <model>Visual reviewer model id from models.config.ts
--frames-per-scene <n>Frames to render per scene for --visual-review Default: 3.
--max-visual-frames <n>Maximum visual review frames to render/send Default: 24.
--no-llmWhen --review is set, skip the reviewer LLM pass
--stop-on-errorStop the loop after the first failed execution/review
-h, --helpdisplay help for command

baz studio runs execute

Execute one claimed Studio run by creating a Bazaar project from its frozen resolver snapshot

baz studio runs execute [options] <run-id>
OptionDescription
--worker <worker>Worker id for claim/complete/fail metadata Default: studio-cli-worker.
--claim-if-queuedAtomically claim this exact run if it is still queued
--mode <mode>Generation mode: agent, agent-max, or multi-scene Default: agent.
--model <model>Agent/orchestrator model alias or full model id
--codegen-model <model>Codegen model alias or full model id
--voiceover-provider <provider>TTS provider for voiceover-led Studio runs: gemini or elevenlabs
--voiceover-voice-id <voiceId>Voice id to pass to media.generate_voiceover for voiceover-led Studio runs
--completeMark successful execution completed instead of needs_review
-h, --helpdisplay help for command

baz studio runs complete

Mark a running Studio run completed (or needs_review) with output metadata

baz studio runs complete [options] <run-id>
OptionDescription
--worker <worker>Worker id, mirrored into outputSnapshot.completion.worker
--project-id <id>Bazaar project id created by the worker
--export-id <id>Lambda export/render id, if any
--scene-ids <ids>Comma-separated list of generated scene ids
--review-status <status>pending, needs_review, approved, or rejected Default: pending.
--notes <notes>Free-form completion notes for the reviewer
--needs-reviewMark final status as needs_review instead of completed
--output-json <path>JSON file with extra outputSnapshot patch fields
--expected-status <status>Required prior status Default: running.
-h, --helpdisplay help for command

baz studio runs fail

Mark a running Studio run failed with a recorded reason

baz studio runs fail [options] <run-id>
OptionDescription
--reason <reason>Failure reason for outputSnapshot.failure.reason
--worker <worker>Worker id, mirrored into outputSnapshot.failure.worker
--output-json <path>JSON file with extra outputSnapshot patch fields
--expected-status <status>Required prior status Default: running.
-h, --helpdisplay help for command

baz studio batch

Run Studio import, execution, and review pipelines from planner artifacts

baz studio batch [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz studio batch run

Batch import run_story_v0 rows, execute the resulting Studio runs, and optionally review them

baz studio batch run [options]
OptionDescription
--jsonl <path>Path to run_story_v0 JSONL
--brands <brands>Comma-separated brand domains/refs to run from the JSONL
--importImport matching JSONL rows into Studio plans/runs
--executeExecute imported runs after import
--reviewReview successfully executed runs
--visualWhen reviewing, render representative frames and include visual review
--planner-profile <profile>Planner profile label; hard-warned against JSONL model values
--allow-mismatched-profileContinue when --planner-profile is not present in selected JSONL rows
--source-label <label>Free-form provenance label for imported plans
--title-prefix <title>Prefix for imported plan titles Default: Studio batch.
--on-unresolved <mode>fail | warn | drop (default fail) Default: fail.
--status <status>Plan status for imported plans Default: queued.
--run-status <status>Initial run status for imported runs Default: queued.
--evidence-pack-id <id>Evidence pack id to pin in imported plan metadata
--limit <n>Global cap on selected JSONL rows
--limit-per-brand <n>Cap selected JSONL rows per brand
--concurrency <n>Concurrent execution/review workers Default: 1.
--worker <worker>Worker id prefix for execution/review metadata Default: studio-batch.
--mode <mode>Generation mode: agent, agent-max, or multi-scene Default: agent.
--model <model>Agent/orchestrator model alias or full model id
--codegen-model <model>Codegen model alias or full model id
--voiceover-provider <provider>TTS provider for voiceover-led Studio runs: gemini or elevenlabs
--voiceover-voice-id <voiceId>Voice id to pass to media.generate_voiceover for voiceover-led Studio runs
--review-model <model>Reviewer model id from models.config.ts Default: deepseek-v4-flash.
--visual-reviewer-model <model>Visual reviewer model id from models.config.ts
--frames-per-scene <n>Frames to render per scene for --visual Default: 1.
--max-visual-frames <n>Maximum visual review frames to render/send Default: 10.
--no-llmWhen reviewing, skip the text reviewer LLM pass
--stop-on <mode>never | import-fail | execute-fail | review-fail | hard-fail | any-fail Default: never.
--budget-usd <amount>Operator budget label for the batch report; not a hard billing limiter yet
--report-jsonl <path>Write one JSONL report row per selected story/run
-h, --helpdisplay help for command