@vitra/cli
v1.0.0-rc.9
Published
Vitra Image Creator CLI — brand-kit-aware image generation, editing, translation, resize, and campaign orchestration from the terminal. Wraps @vitra/image-creator-node's agent surface with interactive prompts for clarification gates. See docs/superpowers/
Readme
@vitra/cli — vitra
CLI for the Vitra Image Creator. Same backend, same tool surface, and same
credential as the MCP server (@vitra/image-creator-mcp) and the SKILL.md
drop-in. Use the CLI for headless scripting, CI, or just-the-terminal.
Spec: docs/superpowers/specs/2026-05-12-animoca-skill-pack-v4-canonical.md.
Install
npm i -g @vitra/cli
vitra login # paste your vitra_sk_live_* secret
vitra doctor # verify credential, channel, manifestCommands
vitra login | logout
vitra config get | set <key> [value] [--push|--pull]
vitra doctor [--managed-equivalent]
vitra brand-kit create --url URL
vitra brand-kit list
vitra brand-kit get ID
vitra brand-kit update ID [--name "..."] [--voice "..."] [...]
vitra brand-kit delete ID
vitra brand-kit versions ID
vitra image generate [--brief "..."] [--headline "..."] [--cta "..."] [--channel ID] [--enrich | --no-enrich]
vitra image edit --asset-id ID --instruction "..."
vitra image translate --asset-id ID --locale BCP47
vitra image resize --asset-id ID [--channel ID | --width PX --height PX | --aspect-ratio W:H]
vitra webhooks register URL --events LIST
vitra webhooks list | delete IDaudit and dev (sandbox) are on the v1 plan.
Brief enrichment — --enrich
vitra image generate --enrich runs an optional pre-generate step that
expands a sparse brief into a structured, provider-tuned prompt — without
deviating from intent. Numbers, percentages, prices, dates, and quoted /
--headline / --cta text are reproduced verbatim; enrichment only adds
composition, lighting, camera, and style. It costs one extra cheap
text-model call (~$0.0004, +1–3s). After the render the CLI prints a
plain-text "why this prompt" receipt — locked items vs. what was added; on
failure it falls through to the raw brief (generation never blocks).
Requires the tenant's brief_enrichment feature (enabled in the admin
panel). --no-enrich forces it off for one call; omit both flags to use
the account default.
Credential
~/.vitra/credentials.json (mode 0600). Env override: VITRA_HMAC_SECRET.
vitra config syncs ~/.vitra/config.json with the server-side config
store at GET /api/skill/config — --push writes local → server,
--pull writes server → local. This is how a tenant admin can set
auto_approve_when policies once and have every developer's CLI/MCP
pick them up.
--json flag
Every command supports --json for scripting:
vitra brand-kit list --json | jq '.data[] | select(.name == "Animoca Core")'When --json is set, the CLI does NOT prompt interactively — it returns
the needs_clarification envelope as JSON and exits. Useful for shell
pipelines and CI.
Interactive prompts
Without --json, the CLI handles needs_clarification envelopes via the
prompts library: numbered select,
multi-checkbox, text input with validation, etc. Render contracts per
each of the 10 clarification kinds land in MR-2 and MR-4.
License
(TBD — set during MR-12 GA cutover.)
