Skip to documentation
Design Studio AI
DocumentationCLI commands
REFERENCE

CLI commands

A stateless, scriptable interface built for your agent workflow.

dsa is a standalone Node 24+ CLI with bundled validation, templates, and static rendering. It prints JSON by default and writes actionable errors to stderr. It stores no configuration, login session, or credentials.

Install the released packageshell
npm install -g https://github.com/bestagentkits/design-studio-ai/releases/download/v0.4.3/bestagentkits-design-studio-ai-0.4.3.tgz
dsa --help
dsa projects export --help
dsa media generate --help

Command reference

All commands below begin with dsa. Options without “required” are optional. Use command --help for the installed version. Document/operation input accepts --file - for stdin; prompt input accepts --prompt-file -.

CommandOptionsBehavior
community schemaNo optionsDiscover every Community command and canonical request shape.
community taxonomy No optionsDiscover Community categories, formats and limits
community search --q TEXT --kind KIND --tags TAGS --format FORMAT --period PERIOD --creator HANDLE --collection ID --sort SORT --cursor CURSOR --limit NSearch live community designs with category, tags, formats, sort and cursor filters
community get IDNo optionsRead a live design and its download files
community creator HANDLENo optionsRead a public creator profile
community collections No optionsList curated Community collections
community collection IDNo optionsRead a curated Community collection
community preview ID VERSION--out FILEGet sandboxed HTML preview of a retained live version
community download ID VERSION FILEID--out FILEDownload real ready file bytes; first eligible download contributes to creator impact
community preflight --file request.jsonReview the public projection, disclosures, formats and digest before publishing
community generate-metadata --file request.jsonDraft a listing title, description and tags using an owned saved project revision and configured text provider. Sends bounded visible text/structure plus entered fields/instructions, incurs provider usage, and never saves or publishes. Defaults to the first configured text connection. Review the suggestion and run preflight with the approved fields before publication.
community publish --file request.jsonExplicitly confirm CC-BY-4.0 and public disclosure to publish the reviewed revision; reuse exact operation ID and payload on retry
community release ID--file request.jsonPublish a new immutable release at the reviewed project and listing revisions
community unlist ID--file request.jsonRevoke public access to all listing versions at the observed listing revision
community job OPERATIONIDNo optionsRead your durable Community operation status and result
community job-preview OPERATIONID--out FILERead your private staged publication preview
community job-file OPERATIONID FILEID--out FILEDownload your private staged file
community remix ID--file request.jsonCreate an independent private project with owned assets and attribution from a pinned public version
community import --file design.zip --operation-id IDImport a portable ZIP into an independent private project; operationId makes exact retries safe
community my-listings No optionsList your publications including private management states
community bookmarks No optionsList your private saved Community designs
community impact No optionsRead server-confirmed creator impact and milestone badges
community profile No optionsRead your opt-in Community profile and revision
community set-profile --file request.jsonCreate or update your public profile at its observed revision
community generate-profile --file request.jsonUse your configured text provider to suggest a public display name, handle and bio. Incurs provider usage; sends only supplied fields/instructions, defaults to your first configured text connection, and never saves or publishes. Review before set-profile; handle availability is checked again when saving.
community save IDNo optionsIdempotently save a live design to your private bookmarks
community unsave IDNo optionsIdempotently remove a private bookmark
community report ID--file request.jsonReport a pinned design version with a reason and exact-retry operation ID
community reports No optionsOperator session/API key only: list private reports
community moderation-collections No optionsOperator only: list collections including unavailable reviewed items
community report-detail IDNo optionsOperator only: inspect a pinned report and content availability
community report-preview ID--out FILEOperator only: preview retained reported content
community report-file ID FILEID--out FILEOperator only: download retained evidence bound to the report
community resolve-report ID--file request.jsonOperator only: hide, restore or dismiss with observed report/listing revisions and a reason
community create-collection --file request.jsonOperator only: curate explicitly reviewed listing versions
community update-collection ID--file request.jsonOperator only: update ordered curation at the observed collection revision
scene schemaNo optionsDiscover bounded mesh, rig, pose, animation and UV commands.
scene inspect PROJECT--page PAGE --time SECONDSInspect saved 3D topology and sampled pose.
scene command PROJECT--page PAGE --revision N --file command.json [--apply]Preview by default; --apply saves against the observed revision.
observability summary--scope owner|all --days N --project-id ID --actor-id ID --channel NAME --kind NAME --status NAME --action ACTIONRead activity/usage/coverage. All-account scope requires configured operator; actor filter only in all scope.
observability eventsSummary filters plus --limit N --cursor CURSORRead safe paginated activity events.
observability trace ID--scope owner|all --days NRead correlated request steps within 1–30 days; default7.
health · configNo required optionsRead public health/configuration; never persist credentials.
schema--operationsPrint document JSON Schema or targeted-operation schema.
motion PROJECT_ID--character ID --node ID --time SECONDSInspect reusable rigs and sample an instance pose without a provider call.
catalogNo optionsList bundled themes, templates, and blocks.
themes list · get IDNo required optionsInspect design tokens and palettes.
templates list · get IDlist: --kind KINDInspect supported starters.
templates instantiate ID--name NAME --theme ID --output FILECreate a local document with fresh IDs; no server write.
blocks list · get IDget: --offset PIXELSInspect reusable node groups.
design-systems schema · listNo required optionsDiscover the shared definition schema or your saved libraries.
design-systems get ID--system-version NRead the latest or an immutable saved version.
design-systems versions IDNo required optionsList saved library versions.
design-systems create--file FILE requiredCreate a library from a validated definition; accepts stdin with --file -.
design-systems update ID--system-version N --file FILE requiredAppend a version using the version of the definition actually read; conflicts require reconciliation.
design-systems apply ID PROJECT_ID--revision N required; --system-version NApply saved tokens/system to an owned project and pin the selected library version.
design-systems insert ID PROJECT_ID--revision N --page PAGE_ID --item ITEM_ID required; --system-version NInsert a saved component or composition into a project.
design-systems remove IDNo required optionsDelete the library and history; existing project designs remain intact.
fonts--query TEXTSearch Google font families/categories; inspect source for live/cache/fallback provenance.
providers models ID--query TEXTSearch the saved connection model catalog; custom endpoints retain manual IDs and labeled suggestions.
projects list--query TEXT --kind KIND --sort updated|created|nameSearch persisted owned projects.
projects check IDNo required optionsInspect saved design bounds, text fit, estimated contrast, media, and export limitations; never an accessibility certification.
projects inspect ID--output FILE required; --mode page|overview --page INDEX or --page-id ID --revision N --time SECONDS --offset N --limit N --columns N --tile-size PX --max-dimension PXWrite one saved-page PNG or project contact sheet, plus JSON metadata without base64. Page selectors require page mode; default overview returns six pages. Follow nextOffset.
projects overview--output-dir DIR required; --offset N --limit N --time SECONDS --tile-size PXWrite owner-workspace first-page covers and JSON metadata. Default six projects in ID order; follow nextOffset. Empty results write no files.
projects get IDNo required optionsRead document and saved revision.
projects create--name NAME required; --description TEXT --kind KIND --template ID --theme ID --file FILECreate a persisted project. Choose --file or --template.
projects rename ID NAME--revision N requiredRename with an explicit observed revision.
projects clone ID--name NAMECreate an independent project, copying owned media bytes.
projects delete IDNo required optionsDelete project, assets, and publications.
brief get IDNo required optionsRead the persisted interview, answers, scope, and independent brief revision.
brief put ID--revision N --file FILE requiredSave request/interview/answers/scope; revision 0 creates. Input file excludes expectedRevision. Invalidates approval.
brief interview ID--revision N --provider ID required; --model IDGenerate and persist contextual questions/scope using configured BYOK; charges may apply.
brief approve ID--revision N requiredRecord explicit human approval of the current answered scope. Does not generate or publish.
projects paint ID--file FILE requiredRender a stroke/fill with the paintingCommand revision, generation and operationId guards.
projects document get ID--output FILERead the canonical document.
projects document put ID--file FILE --revision N required; --brief-revision N for proposalsSave a complete validated document with atomic concurrency protection.
projects document patch ID--file FILE --revision N requiredApply a targeted operation array and save atomically.
projects document merge ID--file FILE requiredMerge JSON {base, document, baseRevision} against the exact document/revision originally read; overlapping edits require reconciliation. Accepts - for stdin.
projects document changes ID--since N (default 0)Read the current saved revision and project when changed, or unchanged: true at the observed revision. N must be nonnegative.
projects import--file FILE required; --name NAMECreate a new project from canonical JSON.
projects thumbnail ID--output FILE required; --revision NDownload a persisted private PNG cover. A busy request returns rendering status and retryAfterSeconds; retry before claiming a file exists.
projects export ID--format FORMAT required; --output FILE / --out FILE --page INDEX --revision N --start SECONDS --end SECONDS --fps FPS --review-samples COUNT --node IDDownload real server bytes. scene-angles uses end/review-samples (2–25); editable-scene uses node for canonical JSON. REST/MCP fields are reviewSamples and nodeId. Binary formats require a file.
render--file FILE --format json|html|svg required; --output FILE --page INDEX --time SECONDSRender offline; preserves references without fetching private media.
assets list PROJECT_IDNo required optionsList stored assets.
assets upload PROJECT_ID--file FILE required; --mime TYPEUpload media; placing it is a separate edit.
assets download ASSET_ID--output FILE requiredDownload authenticated bytes to a file.
generate PROJECT_ID--provider ID --revision N required; --prompt TEXT or --prompt-file FILE; --model ID --output FILE --mode document|motionGenerate a proposal without saving; BYOK charges may apply.
providers list · remove IDNo required optionsRead masked configurations or remove a connection.
providers set ID--key-env VARIABLE or --key-stdin or --keep-key; --base-url URL --model ID; custom: --name NAME --protocol FORMAT --auth-method METHOD --auth-header HEADEROtherwise reads PROVIDER_API_KEY, e.g. OPENAI_API_KEY.
tokens list · revoke IDNo required optionsList metadata or revoke access.
tokens create--name NAME requiredReturns the newly created secret once.
publish · unpublish PROJECT_IDNo required optionsCreate a public snapshot or remove all project snapshots.
preview · unpreview PROJECT_IDNo required optionsCreate a public preview link or remove all project snapshots.
share · unshare PROJECT_IDNo required optionsCreate a public share link or remove all project snapshots.
media generate PROJECT_ID--kind KIND --provider ID required; --prompt TEXT or --prompt-file FILE; --model ID --voice ID --source-asset ID --duration SECONDS --strength NUMBERGenerate/edit image, video, speech, music, or effects using compatible modes.
media status PROJECT_ID JOB_IDNo required optionsPoll queued fal media or Leonardo images.
google-slides PROJECT_ID--key-env VARIABLE or --key-stdinDefaults to GOOGLE_ACCESS_TOKEN; creates a real supported presentation.
api METHOD /api/path--file FILESame-origin REST escape hatch; no JSON body for GET/HEAD.

See the saved design

Visual inspection returns private rendered PNGs with project/page identity, saved revision, dimensions, sampled time, image index and pixel bounds. It does not publish, call an AI provider, or change the document or brief. Save and verify local browser changes first.

Inspect a project, a page, and workspace coversshell
dsa projects inspect PROJECT_ID --revision OBSERVED_REVISION --output pages.png
dsa projects inspect PROJECT_ID --mode page --page 0 --revision OBSERVED_REVISION --output page.png
dsa projects overview --output-dir review

Project inspection defaults to a six-page contact sheet; workspace overview returns first-page covers of six owned projects in ID order. Follow non-null nextOffset with --offset to cover the rest. Use page mode for text and detail, selecting either --page or --page-id. Add --time to sample motion. A workspace result carries individual project revisions, not an atomic workspace snapshot.

Open the returned PNG files with an image viewer before claiming visual review. CLI stdout contains metadata and images[].path/bytes, never raw base64. Workspace files use workspace-OFFSET-IMAGE_INDEX.png; repeating the same output replaces them. Failed API requests create no image files; empty results write none. A still image does not prove responsive behavior, playback, sound, or browser compatibility.

Discover current limits through command help and visualInspection/workspaceInspection schemas. Renderer asset and resource limits apply; failures are explicit. REST returns PNG base64; MCP and WebMCP return real image blocks. The agent review workflow explains coverage and evidence.

Files and exit codes

JSON is the default for metadata. Document/template/export content sent to stdout is raw. --output writes the file and returns metadata; binary exports require a filename. Exit codes: 0 success, 1 input/API/conflict, 2 authentication/authorization, 3 network/invalid response, 4 local file/runtime error.

Media editing and musicshell
dsa providers set openai --key-env OPENAI_API_KEY
dsa media generate PROJECT_ID --kind image --provider openai \
  --source-asset ASSET_ID --prompt-file edit.txt

dsa providers set fal --key-env FAL_API_KEY
dsa media generate PROJECT_ID --kind audio --provider fal \
  --duration 30 --prompt-file music.txt
dsa media status PROJECT_ID JOB_ID

Source type selects a compatible default model. --strength is for fal image/audio transformations, --voice for OpenAI speech. All fal modes and Leonardo images queue real jobs; poll to completion before claiming an asset exists. The package is distributed through GitHub Releases, not the npm registry.

Command implementation