CLI reference
import { Aside } from ‘@astrojs/starlight/components’;
Install
Section titled “Install”npm install -g @vantageconnections/cliThen either run vantage login to save a token, or set VANTAGE_TOKEN
in your environment.
Quick start — spin up a new site from an empty folder
Section titled “Quick start — spin up a new site from an empty folder”mkdir my-new-site && cd my-new-sitevantage login # one-timevantage websites create --name "Acme Plumbing" --slug acme-plumbingvantage workspace init acme-plumbing # polls + git-clones into cwd# → you're now editing the per-site repo; push to deploySite auto-resolution (new in 0.5.0)
Section titled “Site auto-resolution (new in 0.5.0)”When you're sitting in the repo directory of a Melbora site (i.e. youran `vantage workspace init` earlier), you can omit the websiteIdargument on every per-site command — the CLI reads your cwd's gitremote and resolves the site automatically. Same idea as `git status`knowing which repo you're in. Examples (run from inside the site dir):
vantage websites features --openrouter # toggle the AI assistant on vantage websites deployment # is the build green? vantage websites logs openrouter # service logs — id omitted vantage content get # CMS document for the current site vantage domains add --domain example.com # attach a domain to the current site
You can still pass an explicit id or slug as the first positionalif you want to operate on a different site than the one you're in.vantage login [--token vc_pat_…] [--api-url <host>]vantage logoutvantage whoamivantage selftest Diagnose install + token + APIWorkspace
Section titled “Workspace”vantage workspace detect [--dir <path>] [--git-remote <url>] [--json]vantage workspace init <slug-or-id> [--into <path>] [--ssh] [--no-clone] [--timeout 90]Websites — core ( is optional inside a site repo)
Section titled “Websites — core ( is optional inside a site repo)”vantage websites listvantage websites get [<id>]vantage websites create --name <n> --slug <s> [--client-id <id>]vantage websites delete [<id>] [--yes]vantage websites features [<id>] --openrouter|--no-openrouter --resend|--no-resend …vantage websites repo [<id>]vantage websites services [<id>]Websites — diagnostics
Section titled “Websites — diagnostics”vantage websites deployment [<id>] Latest Vercel deploy + errorMessagevantage websites redeploy [<id>] Force a fresh buildvantage websites logs [<id>] <service> service: github | vercel | openrouter | resend | bookings | seo | cms | stripe | cognito | domainvantage websites jobs [<id>] Provisioning step historyWebsites — ownership
Section titled “Websites — ownership”vantage websites transfer [<id>] --client-id <clientId>vantage websites cancel-transfer [<id>]vantage websites resend-transfer [<id>]vantage websites unassign [<id>] [--yes]vantage websites set-price [<id>] --price <whole USD>vantage websites invite-client [<id>] --email <client@example.com>vantage websites cancel-invite [<id>]vantage websites invitations [<id>]vantage websites invite-collaborator [<id>]Websites — billing
Section titled “Websites — billing”vantage websites invoices [<id>] [--json]vantage websites invoice-one-off [<id>] --amount <usd> --description <text> [--currency usd]vantage websites billing-portal [<id>] Stripe Customer Portal session URLWebsites — client access (Add Client links)
Section titled “Websites — client access (Add Client links)”vantage websites clients list [<id>]vantage websites clients add [<id>] --email <e> --role <viewer|editor>vantage websites clients set-role [<id>] <clientId> <viewer|editor>vantage websites clients remove [<id>] <clientId>vantage websites clients revoke-invitation [<id>] <invitationId>Websites — delivery tracking
Section titled “Websites — delivery tracking”vantage websites delivery get [<id>] Includes per-checkpoint dueAtvantage websites delivery set-eta [<id>] <iso-date>vantage websites delivery set-preview [<id>] <true|false>vantage websites delivery checkpoint [<id>] <checkpointId> [<pending|in_progress|done>] [--due <YYYY-MM-DD|iso|clear>]Websites — project documents
Section titled “Websites — project documents”vantage websites documents list [<id>]vantage websites documents upload [<id>] <filepath>vantage websites documents download [<id>] <documentId> [--out <path>] [--inline] [--open] --inline prints a browser-renderable URL (PDF/image preview) --open launches that URL in your default browservantage websites documents delete [<id>] <documentId>Websites — bulk publishing (async, SQS-backed) (for >25 products; the portal’s bulk action handles ≤25 inline)
Section titled “Websites — bulk publishing (async, SQS-backed) (for >25 products; the portal’s bulk action handles ≤25 inline)”vantage websites publishing bulk-async [<id>] --action <publish|unpublish> --publication-id <pubGID> [--publication-id <pubGID> ...] (--product-id <pGID> [--product-id <pGID> ...] | --product-ids-file <path>) [--wait] Poll every 2s until state="done" (10-min ceiling) On transient 5xx the loop retries up to 3 times before surfacing the error. --product-ids-file: one GID per line; blank lines and `# comments` are ignored; ids deduped across --product-id + file.
vantage websites publishing bulk-job [<id>] <jobId> Print current job state + per-product outcomesWebsites — favicon (Higgsfield) (requires local higgsfield CLI + higgsfield auth login)
Section titled “Websites — favicon (Higgsfield) (requires local higgsfield CLI + higgsfield auth login)”vantage websites generate-favicon [<id>] [--output ./icon.png] [--prompt "…"] Generate a brand-appropriate square icon via Higgsfield (gpt_image_2, 1:1, 1k). Pulls brand name + tagline from the site's CMS to build the prompt; pass --prompt to override. Output: PNG file on disk. Drop it into the client repo at app/icon.png (Next.js auto-uses it as favicon). Note: synth runs on YOUR machine, not the API Lambda — Higgsfield has no REST API today.Clients
Section titled “Clients”vantage clients listvantage clients get <clientId>vantage clients websites <clientId>Content & media
Section titled “Content & media”vantage content get [<id>]vantage content edit [<id>] Open in $EDITOR; save on exitvantage media upload [<id>] --file <path> [--content-type image/png]vantage media delete [<id>] --path public/uploads/…Blueprint
Section titled “Blueprint”vantage blueprint get [<id>]vantage blueprint positions [<id>] < positions.jsonBookings (Cal.com)
Section titled “Bookings (Cal.com)”vantage bookings enable [<id>] --handle <cal-username> [--brand-color #RRGGBB]vantage bookings disable [<id>]SEO / GEO
Section titled “SEO / GEO”vantage seo set-tier [<id>] --tier essentials|growth|premium|premium_plusvantage seo disable [<id>]vantage seo scan [<id>] Force an immediate health scanvantage seo run-cron [<id>] [--force] Run tier-cadence work on-demandvantage seo get [<id>] Full SEO state snapshotvantage seo geo-probe [<id>] --prompt "…"
vantage seo ai-alt-text [<id>] --image "…" [--context "…"]vantage seo ai-meta-description [<id>] --page-title "…" [--page-path /] [--page-body "…"]vantage seo ai-blog-draft [<id>] --topic "…" [--audience "…"] [--length 700]vantage seo ai-local-page [<id>] --city "…" [--focus-service "…"] [--business-summary "…"]vantage seo ai-content-audit [<id>] [--json] Rubric report across 8 content dimensions. Growth+; cache-aware (unchanged content = free).
vantage seo set-competitors [<id>] --url https://… [--url …] (max 10)vantage seo citations [<id>] Directory-listing checklistvantage seo set-citations [<id>] (stdin: JSON array)
vantage seo gsc-connect [<id>] Start Google Search Console OAuthvantage seo gsc-refresh [<id>] Force a metrics pullvantage seo gsc-disconnect [<id>]Newsletter (plug-and-play — enable mints a per-website Resend audience)
Section titled “Newsletter (plug-and-play — enable mints a per-website Resend audience)”vantage newsletter status [<id>] Enabled? Counts? Default sender?vantage newsletter enable [<id>] Mint audience + push env + redeployvantage newsletter disable [<id>] --yes DESTRUCTIVE — drops audience + subs
vantage newsletter subscribers [<id>] [--json]vantage newsletter remove-subscriber [<id>] <contactId-or-email>vantage newsletter resubscribe [<id>] <contactId-or-email> Clear unsubscribed flagvantage newsletter unsubscribe [<id>] <contactId-or-email> Operator-mark unsubscribed
vantage newsletter campaigns [<id>] [--status <drafts|scheduled|sending|sent|cancelled|failed|archived>] [--include-archived] [--json] List campaigns; default hides archived. Friendly filters: drafts (status="draft"), scheduled (queued + scheduledAt), sending (queued|sending), archived (only archived).vantage newsletter campaign [<id>] <campaignId> Show one campaign + statsvantage newsletter compose [<id>] --subject "…" (--body "…" | --body-file <path> | --template <id> --vars '<json>') [--from <addr>] [--schedule-at <iso>] [--send] Compose a draft. Body via Markdown OR template. --send fires it immediately (or schedules). Body also accepted via stdin. Body Markdown supports images:  http(s) only; standalone lines render centered, inline images flow with text. --from defaults to the website's resolved sender (verified email-kind domain if any, else the platform fallback) — leave blank to use it. Template fields can be conditional: e.g. the default template's ctaUrl is only required (and accepted) when ctaText is non-empty in --vars. Multi-line text fields (e.g. signoff) accept literal \n in the JSON string.vantage newsletter update [<id>] <campaignId> [--subject "…"] [--body "…" | --body-file <path>] [--from <addr>] Patch a draft (only drafts).vantage newsletter send [<id>] <campaignId> [--schedule-at <iso>] Send a previously-drafted campaign; add --schedule-at for a future send.vantage newsletter test [<id>] <campaignId> --to <email> Send the rendered campaign to one address (subject prefixed [TEST]).vantage newsletter delete [<id>] <campaignId> --yes Delete a draft (sent can't be deleted).vantage newsletter archive [<id>] <campaignId> Hide a sent campaign from the default list.vantage newsletter unarchive [<id>] <campaignId> Restore an archived campaign.
vantage newsletter templates list [<id>] [--json] Available templates + field schemasvantage newsletter unsubscribe-url [<id>] --email <addr> Mint a test unsubscribe URL for QADomains
Section titled “Domains”vantage domains list [<id>]vantage domains add [<id>] --domain example.com [--kind site|email]vantage domains remove [<id>] <domain>vantage domains verify [<id>] <domain> Re-check DNS propagationvantage domains check <domain> Vercel availability + pricevantage domains buy [<id>] --domain … --years 1 --expected-price <usd> --contact-file <json>Analytics
Section titled “Analytics”vantage analytics traffic [<id>] [--range 7d|30d|90d|all] [--json] Pageviews, sessions, dwell, top pages, referrers, countries, devicesvantage analytics seo [<id>] [--range 7d|30d|90d|all] [--json] Score, GEO citation rate, GSC totals, citations progress, AI quota usageAPI keys (PATs)
Section titled “API keys (PATs)”vantage keys listvantage keys create --name "Adrin Mac CLI"vantage keys revoke <keyId> ⚠ revoking the token you're currently logged in with will lock you outEnvironment variables
Section titled “Environment variables”VANTAGE_TOKEN— Override stored credentials (preferred for CI / MCP)VANTAGE_API_URL— Override the API hostNO_COLOR— Disable color output (set to any non-empty value)
See also
Section titled “See also”- Quickstart — first-time CLI walkthrough
- Reference → SDK — same surface as a TypeScript client
- Reference → MCP — same surface for AI clients