Skip to documentation
Design StudioAIDocumentation
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.3.0/bestagentkits-design-studio-ai-0.3.0.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
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.
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 get IDNo required optionsRead document and saved revision.
projects create--name NAME required; --description TEXT --kind KIND --template ID --theme ID --file FILE --input-format auto|json|yamlCreate a persisted project. Choose --file (JSON or YAML) 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 document get ID--output FILERead the canonical document.
projects document put ID--file FILE --revision N required; --input-format auto|json|yamlSave a complete validated document (JSON or YAML file) with atomic concurrency protection.
projects document patch ID--file FILE --revision N required; --input-format auto|json|yamlApply a targeted operation array (JSON or YAML file) 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 NAME; --input-format auto|json|yamlCreate a new project from a canonical document in JSON or YAML.
projects export ID--format FORMAT required; --output FILE / --out FILE --page INDEX --revision NDownload real server bytes, including react ZIP, glb and gltf. Binary formats require a file; glTF is JSON text.
render--file FILE --format json|html|svg required; --input-format auto|json|yaml --output FILE --page INDEX --time SECONDSRender a JSON or YAML document 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 FILEGenerate 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.

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