@quickdesign/cli

Command-line interface for QuickDesign — built so anyone (or any Claude Code agent) can drive the full QuickDesign stack from a terminal:
- Generate AI images (Nano Banana, GPT Image) and videos (Sora 2, Kling, Seedance 2.0 including reference-to-video, UGC) — start, poll, save to disk in one command.
- Smart Ad Creator — turn a product URL into a single concept ad, or fan out 16 concepts in parallel (Advantage+).
- Spy Brands — query the competitor ad library: per-brand ads, cross-brand winners, this-week trends.
- Brand DNA — scrape a website's colors / fonts / logo, or run the full Claude-streamed Brand DNA extraction (voice, audience, offer).
- Designs — list, fetch, download, or archive your saved creatives directly from PostgREST.
- Ship-ready — JSON to stdout, diagnostics to stderr, exit codes for pipelines, optional
--human pretty-print.
Install
There are two ways to install. Pick whichever matches how you use Claude Code today.
Option A — npm (CLI binary + skill bundle, classic)
npm install -g @quickdesign/cli
quickdesign init # one-time bootstrap: doctor + skill + login
This installs the quickdesign binary AND copies the Claude Code skill into ~/.claude/skills/quickdesign/. Best for standalone CLI users + scripted/CI use.
Option B — Claude Code plugin marketplace
# Inside Claude Code:
/plugin marketplace add ottasilver/quickdesign-cli
/plugin install quickdesign@quickdesign
# Still need the binary on PATH for actual generation:
npm install -g @quickdesign/cli
The plugin distributes the skill (SKILL.md + references/ + pipelines/ + models/) under ~/.claude/plugins/quickdesign/. New skill versions reach you whenever you run /plugin marketplace update — no manual quickdesign init --skill-only --force required. The quickdesign binary itself still ships via npm; the plugin keeps distribution lean by not bundling node binaries.
If you already used Option A, you can keep it — the plugin install lives alongside ~/.claude/skills/quickdesign/ without conflict. For a clean switch: rm -rf ~/.claude/skills/quickdesign after the plugin is installed.
Requires Node.js ≥ 18.17 either way.
init does NOT run automatically after npm install. That would break CI/scripted installs and silently mutate ~/.claude/skills/ without consent. You run it once, on purpose, the first time you use the CLI on a machine. After that, every quickdesign … call just works.
quickdesign init does three things, each independently skippable:
- Doctor — checks for
ffmpeg / ffprobe (needed for multi-segment video pipelines). Warns + prints install hints if missing; never blocks.
- Skill install — copies the bundled Claude Code skill into
~/.claude/skills/quickdesign/. Refuses to overwrite existing files unless --force.
- Auth login — opens the browser handshake (or falls back to terminal paste; see Authentication).
quickdesign init # full bootstrap
quickdesign init --skill-only # just install the skill
quickdesign init --no-skill # skip skill, just doctor + login
quickdesign init --no-auth # CI / scripted setups
quickdesign init --no-doctor # skip ffmpeg check
quickdesign init --force # overwrite existing skill files
quickdesign init --skill-dir ~/my/skills/quickdesign # custom target
For one-shot use without a global install:
npx -y @quickdesign/cli init
Quickstart
# After `quickdesign init` you're already logged in. Verify:
quickdesign whoami
# --- Spy Brands ---------------------------------------------------------
quickdesign spy brands --search "Kizik" --human
quickdesign spy brand-ads <brand-id> --status active --sort most_impressions --limit 5
# --- Image: studio shot, save to disk -----------------------------------
quickdesign image generate \
--prompt "studio photo of a silver bracelet on white background" \
--model nano-banana-2 --wait -o ./bracelet.jpg
# --- Video: Seedance 2.0 r2v with two reference images ------------------
quickdesign video generate --provider seedance \
--reference-image https://cdn.example.com/bracelet.jpg \
--reference-image https://cdn.example.com/model.jpg \
--prompt "@Image2 wearing @Image1, slow catwalk" \
--aspect-ratio 9:16 --duration 5 --wait -o ./catwalk.mp4