baz studio
CLI-first Studio workflows for brand evidence, runs, and claim pages
baz studio [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio brand
Manage Studio brand records
baz studio brand [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio brand ensure
Create or update a reusable Studio brand record
baz studio brand ensure [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio evidence
Manage typed brand evidence and claims
baz studio evidence [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio evidence list
List typed claims for a brand
baz studio evidence list [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio evidence add
Add one or more manual typed claims to a brand
baz studio evidence add [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio evidence review
Update claim review status
baz studio evidence review [options] <claim-id>| Option | Description |
|---|---|
--status <status> | draft, approved, or rejected |
--confidence <confidence> | low, medium, or high |
-h, --help | display help for command |
baz studio evidence resolve
Resolve a skill input contract against typed brand evidence
baz studio evidence resolve [options]| Option | Description |
|---|---|
--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, --help | display 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]| Option | Description |
|---|---|
--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 |
--execute | Write Studio rows for --source-id or all rows when omitted |
--create-evidence-packs | Create completed source_bundle evidence pack snapshots after execute writes |
-h, --help | display help for command |
baz studio screenshots
Manage typed brand screenshot and image asset purposes
baz studio screenshots [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio screenshots add
Add or adopt a screenshot URL as a typed brand asset
baz studio screenshots add [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio screenshots list
List brand screenshots and typed image assets
baz studio screenshots list [options]| Option | Description |
|---|---|
--brand <brand> | Brand id, URL, domain, or short domain prefix |
--purpose <purpose> | Filter by screenshot purpose |
--no-legacy | Hide legacy brand_repository.screenshots entries |
-h, --help | display 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>| Option | Description |
|---|---|
--purpose <purpose> | home_hero, pricing_table, product_dashboard, customer_logos, case_study_metric, docs_ui, chart_source, or social_proof |
--clear-purpose | Clear the current purpose |
-h, --help | display help for command |
baz studio ingest
Create browser-use/browser-harness ingestion jobs for reusable evidence packs
baz studio ingest [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio ingest start
Create a queued browser ingestion job and evidence-pack contract
baz studio ingest start [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio evidence-pack
Persist and inspect reusable brand evidence packs
baz studio evidence-pack [options] [command]| Option | Description |
|---|---|
-h, --help | display 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]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio evidence-pack list
List persisted evidence packs for a brand
baz studio evidence-pack list [options]| Option | Description |
|---|---|
--brand <brand> | Brand id, URL, domain, or short domain prefix |
--status <status> | Filter by status |
--limit <n> | Max packs to return Default: 20. |
-h, --help | display 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]| Option | Description |
|---|---|
--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-claims | Do not create draft brand_claim rows from evidencePack.claims |
-h, --help | display 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]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio plan
Create and inspect durable Studio production plans
baz studio plan [options] [command]| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio plan create
Create a durable Studio plan and queued source-backed runs
baz studio plan create [options]| Option | Description |
|---|---|
--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-missing | Create 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, --help | display help for command |
baz studio plan import
Import a frozen story plan (run_story_v0 JSONL) into Studio
baz studio plan import [options]| Option | Description |
|---|---|
--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-profile | Continue when JSONL row models do not match --planner-profile (off by default) |
-h, --help | display help for command |
baz studio plan list
List durable Studio plans for a brand
baz studio plan list [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio plan inspect
Inspect a Studio plan and its linked runs
baz studio plan inspect [options] <plan-id>| Option | Description |
|---|---|
-h, --help | display help for command |
baz studio runs
Create and inspect persisted Studio brand_run rows
baz studio runs [options] [command]| Option | Description |
|---|---|
-h, --help | display 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]| Option | Description |
|---|---|
--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-missing | Create the run even if resolver reports missing evidence |
--status <status> | Initial brand_run status Default: queued. |
-h, --help | display help for command |
baz studio runs batch
Create queued Studio runs for one brand across skills and briefs
baz studio runs batch [options]| Option | Description |
|---|---|
--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-missing | Create runs even if resolver reports missing evidence |
--status <status> | Initial brand_run status Default: queued. |
-h, --help | display help for command |
baz studio runs list
List Studio runs for a brand
baz studio runs list [options]| Option | Description |
|---|---|
--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, --help | display 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>| Option | Description |
|---|---|
-h, --help | display 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>| Option | Description |
|---|---|
--model <model> | Reviewer model id from models.config.ts Default: deepseek-v4-flash. |
--worker <worker> | Reviewer worker id for audit metadata |
--no-llm | Skip the LLM pass and run deterministic checks only |
--visual | 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 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, --help | display help for command |
baz studio runs claim
Atomically claim one queued Studio run for a worker
baz studio runs claim [options]| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio runs work
Claim, execute, and optionally review queued Studio runs in a worker loop
baz studio runs work [options]| Option | Description |
|---|---|
--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-empty | Ignore --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 |
--complete | Mark successful execution completed instead of needs_review |
--review | Run Studio review immediately after successful execution |
--review-model <model> | Reviewer model id from models.config.ts Default: deepseek-v4-flash. |
--visual-review | When 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-llm | When --review is set, skip the reviewer LLM pass |
--stop-on-error | Stop the loop after the first failed execution/review |
-h, --help | display 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>| Option | Description |
|---|---|
--worker <worker> | Worker id for claim/complete/fail metadata Default: studio-cli-worker. |
--claim-if-queued | Atomically 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 |
--complete | Mark successful execution completed instead of needs_review |
-h, --help | display 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>| Option | Description |
|---|---|
--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-review | Mark 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, --help | display help for command |
baz studio runs fail
Mark a running Studio run failed with a recorded reason
baz studio runs fail [options] <run-id>| Option | Description |
|---|---|
--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, --help | display help for command |
baz studio batch
Run Studio import, execution, and review pipelines from planner artifacts
baz studio batch [options] [command]| Option | Description |
|---|---|
-h, --help | display 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]| Option | Description |
|---|---|
--jsonl <path> | Path to run_story_v0 JSONL |
--brands <brands> | Comma-separated brand domains/refs to run from the JSONL |
--import | Import matching JSONL rows into Studio plans/runs |
--execute | Execute imported runs after import |
--review | Review successfully executed runs |
--visual | When reviewing, render representative frames and include visual review |
--planner-profile <profile> | Planner profile label; hard-warned against JSONL model values |
--allow-mismatched-profile | Continue 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-llm | When 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, --help | display help for command |