Command Reference

Reference for all commands available in the Webflow CLI

Global Options

Global options can be used with any command.

OptionDescription
-v, --versionDisplay the installed version of the Webflow CLI.
-h, --helpDisplay help information for any command.
--no-inputDisable all interactive prompts. Use in CI/CD pipelines.
--manifest <path>Path to a webflow.json file or directory containing one. Defaults to ./webflow.json.
--skip-update-checkSkip checking for @webflow package updates.

Authentication

auth login

Authenticates the CLI with your Webflow account and saves credentials to a .env file.

Usage

$webflow auth login [options]

Options

OptionDescription
-f, --forceForce reauthentication even if credentials already exist.

Example

$# Open browser OAuth flow to authenticate
$webflow auth login
$
$# Re-authenticate even if a token is already saved
$webflow auth login --force

For more details, see the authentication documentation.


auth status

Shows the currently authenticated user and active OAuth scopes.

Usage

$webflow auth status

Example

$webflow auth status
$# ✔ Logged in as Jane Smith (jane@example.com)
$# Scopes: assets:read, assets:write, cms:read, ...
$# Session: ~/.config/webflow/auth.json

auth logout

Removes the stored session and logs out of the CLI.

Usage

$webflow auth logout

Example

$webflow auth logout
$# ✔ Logged out. Session file removed.

auth telemetry

Manages telemetry settings for all Webflow CLI commands.

Usage

$webflow auth telemetry [options]

Options

OptionDescription
--enableEnable telemetry for all commands.
--disableDisable telemetry for all commands.
--statusShow current telemetry status.

Example

$# Check current telemetry status
$webflow auth telemetry --status
$
$# Disable telemetry (useful in CI/CD)
$webflow auth telemetry --disable
$
$# Enable telemetry
$webflow auth telemetry --enable

Sites

sites list

Lists all sites in your Webflow workspace.

Usage

$webflow sites list [options]

Options

OptionDescriptionDefault
--fields <fields>Comma-separated columns to display. Valid fields: id, displayName, shortName, timeZone, createdOn, lastUpdated, lastPublished.id,displayName,lastPublished
--jsonOutput as JSON.false

Example

$webflow sites list
$webflow sites list --fields id,displayName,shortName --json

sites get

Gets details for a specific site.

Usage

$webflow sites get <siteId> [options]

Arguments

ArgumentDescription
siteIdThe ID of the site to retrieve.

Options

OptionDescription
--jsonOutput as JSON.

Example

$webflow sites get 6258612d1ee792848f805dcf

sites domains

Lists the custom domains configured for a site.

Usage

$webflow sites domains --site <siteId> [options]

Options

OptionDescription
--site <siteId>(Required) Site ID.
--jsonOutput as JSON.

Example

$webflow sites domains --site 6258612d1ee792848f805dcf

sites publish

Publishes a site to the Webflow subdomain or to specific custom domains.

Usage

$webflow sites publish --site <siteId> [options]

Options

OptionDescription
--site <siteId>(Required) Site ID to publish.
--domains <domainIds>Comma-separated custom domain IDs to publish to. Defaults to the Webflow subdomain.
--page <pageId>Publish a single page instead of the full site.
--dry-runPreview what would be published without triggering a build.
--jsonOutput as JSON.

Example

$# Publish to the Webflow subdomain
$webflow sites publish --site 6258612d1ee792848f805dcf
$
$# Publish a single page
$webflow sites publish --site 6258612d1ee792848f805dcf --page 5f43a0dfe6f3b800161c19b3
$
$# Preview without publishing
$webflow sites publish --site 6258612d1ee792848f805dcf --dry-run

CMS

cms collections list

Lists all CMS collections for a site.

Usage

$webflow cms collections list [options]

Options

OptionDescriptionDefault
--site <siteId>Site ID. Falls back to webflow.json or an interactive prompt.
--fields <fields>Comma-separated columns to display. Valid fields: id, displayName, singularName, slug, lastUpdated.id,displayName,slug
--sort-by <field>Sort by: displayName, slug, lastUpdated.displayName
--order <dir>Sort direction: asc or desc.asc
--jsonOutput as JSON.false

Example

$webflow cms collections list --site 6258612d1ee792848f805dcf --sort-by lastUpdated --order desc

cms collections get

Gets the details and field schema for a CMS collection.

Usage

$webflow cms collections get <collectionId> [options]

Arguments

ArgumentDescription
collectionIdThe ID of the collection to retrieve.

Options

OptionDescription
--jsonOutput as JSON.

Example

$webflow cms collections get 6258612d1ee792848f805dcf

cms collections create

Creates a new CMS collection on a site.

Usage

$webflow cms collections create --name <displayName> [options]

Options

OptionDescription
--site <siteId>Site ID. Falls back to webflow.json or an interactive prompt.
--name <displayName>(Required) Collection display name.
--singular-name <name>Singular display name. Defaults to --name.
--slug <slug>URL slug for the collection. Auto-derived from --name if omitted.
--dry-runPreview the collection that would be created without creating it.
--jsonOutput as JSON.

Example

$webflow cms collections create --site 6258612d1ee792848f805dcf --name "Blog Posts" --slug "blog-posts"
$
$# Preview without creating
$webflow cms collections create --site 6258612d1ee792848f805dcf --name "Blog Posts" --dry-run

cms fields create

Adds a field to a CMS collection.

Usage

$webflow cms fields create --collection <collectionId> --name <name> --type <type> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID to add the field to.
--name <displayName>(Required) Field display name.
--type <type>(Required) Field type. See valid types below.
--requiredMark the field as required.
--dry-runPreview the field that would be created without creating it.
--jsonOutput as JSON.

Valid field types

PlainText, RichText, Number, DateTime, Link, Image, Video, Color, Bool, Option, ItemRef, ItemRefSet

Example

$webflow cms fields create \
> --collection 6258612d1ee792848f805dcf \
> --name "Author" \
> --type PlainText \
> --required

cms items list

Lists items in a CMS collection.

Usage

$webflow cms items list --collection <collectionId> [options]

Options

OptionDescriptionDefault
--collection <collectionId>(Required) Collection ID.
--fields <fields>Comma-separated columns to display. Valid fields: id, isDraft, isArchived, lastUpdated, fieldData.id,isDraft,lastUpdated
--limit <n>Maximum number of items to return.100
--offset <n>Number of items to skip (for pagination).0
--locale <cmsLocaleId>CMS locale ID to filter by.
--jsonOutput as JSON.false

Example

$webflow cms items list --collection 6258612d1ee792848f805dcf --limit 50 --json

cms items get

Gets a single CMS item by ID.

Usage

$webflow cms items get --collection <collectionId> --item <itemId> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID.
--item <itemId>(Required) Item ID.
--locale <cmsLocaleId>CMS locale ID to retrieve content for.
--jsonOutput as JSON.

Example

$webflow cms items get \
> --collection 6258612d1ee792848f805dcf \
> --item 62b720ef280c7a7a3be8cabe

cms items create

Creates a new CMS item.

Usage

$webflow cms items create --collection <collectionId> --data <json> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID.
--data <json>(Required) Item field data as a JSON string.
--draftCreate as a draft (not published).
--dry-runPreview the item that would be created without creating it.
--jsonOutput as JSON.

Example

$webflow cms items create \
> --collection 6258612d1ee792848f805dcf \
> --data '{"name":"Hello World","slug":"hello-world"}'

cms items update

Updates an existing CMS item.

Usage

$webflow cms items update --collection <collectionId> --item <itemId> --data <json> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID.
--item <itemId>(Required) Item ID to update.
--data <json>(Required) Updated field data as a JSON string.
--dry-runPreview the update without applying it.
--jsonOutput as JSON.

Example

$webflow cms items update \
> --collection 6258612d1ee792848f805dcf \
> --item 62b720ef280c7a7a3be8cabe \
> --data '{"name":"Updated Title"}'

cms items delete

Deletes a CMS item.

Usage

$webflow cms items delete --collection <collectionId> --item <itemId> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID.
--item <itemId>(Required) Item ID to delete.
--dry-runPreview the deletion without deleting.

Example

$webflow cms items delete \
> --collection 6258612d1ee792848f805dcf \
> --item 62b720ef280c7a7a3be8cabe

cms items publish

Publishes one or more CMS items.

Usage

$webflow cms items publish --collection <collectionId> --items <itemIds> [options]

Options

OptionDescription
--collection <collectionId>(Required) Collection ID.
--items <itemIds>(Required) Comma-separated item IDs to publish.
--dry-runPreview which items would be published without publishing.

Example

$webflow cms items publish \
> --collection 6258612d1ee792848f805dcf \
> --items 62b720ef280c7a7a3be8cabe,62b720ef280c7a7a3be8cabf

Forms

forms list

Lists all forms for a site.

Usage

$webflow forms list [options]

Options

OptionDescriptionDefault
--site <siteId>(Required) Site ID. Falls back to webflow.json or an interactive prompt.
--fields <fields>Comma-separated columns to display. Valid fields: id, displayName, name, slug, createdOn, lastUpdated.id,displayName,slug
--jsonOutput as JSON.false

Example

$webflow forms list --site 6258612d1ee792848f805dcf
$webflow forms list --site 6258612d1ee792848f805dcf --fields id,displayName,name,slug --json

forms submissions

Lists submissions for a specific form. Supports JSON output and CSV export.

Usage

$webflow forms submissions [options]

Options

OptionDescriptionDefault
--site <siteId>(Required) Site ID. Falls back to webflow.json or an interactive prompt.
--form <formId>(Required) Form ID.
--output <file>Export submissions to a CSV file at the given path.
--jsonOutput as JSON. Ignored if --output is also provided.false

Example

$webflow forms submissions --site 6258612d1ee792848f805dcf --form 62b720ef280c7a7a3be8cabe
$webflow forms submissions --site 6258612d1ee792848f805dcf --form 62b720ef280c7a7a3be8cabe --output submissions.csv
$webflow forms submissions --site 6258612d1ee792848f805dcf --form 62b720ef280c7a7a3be8cabe --json

Assets

assets list

Lists assets for a site, with optional filtering and sorting.

Usage

$webflow assets list [options]

Options

OptionDescriptionDefault
--site <siteId>Site ID. Falls back to webflow.json or an interactive prompt.
--folder <folderId>Filter assets to a specific folder.
--fields <fields>Comma-separated columns to display. Valid fields: id, displayName, originalFileName, contentType, size, lastUpdated.id,displayName,lastUpdated,size
--sort-by <field>Sort by: displayName, originalFileName, contentType, size, lastUpdated.displayName
--order <dir>Sort direction: asc or desc.asc
--limit <n>Maximum number of assets to return.100
--offset <n>Number of assets to skip (for pagination).0
--jsonOutput as JSON.false

Example

$webflow assets list --site 6258612d1ee792848f805dcf --sort-by size --order desc

assets upload

Uploads a file as a site asset.

Supported file types

  • Images (≤ 4 MB): PNG, JPG, JPEG, GIF, SVG, WEBP, AVIF
  • Documents (≤ 10 MB): PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, ODT, ODS, ODP, JSON, Lottie

Usage

$webflow assets upload <file> [options]

Arguments

ArgumentDescription
filePath to the file to upload.

Options

OptionDescription
--site <siteId>Site ID. Falls back to webflow.json or an interactive prompt.
--name <displayName>Display name for the asset. Defaults to the filename.
--folder <folderId>Upload into a specific folder.
--dry-runPreview the upload without uploading.
--jsonOutput as JSON.

Example

$webflow assets upload ./logo.png --site 6258612d1ee792848f805dcf --name "Company Logo"

assets update

Updates an asset’s metadata.

Usage

$webflow assets update <assetId> [options]

Arguments

ArgumentDescription
assetIdThe ID of the asset to update.

Options

OptionDescription
--display-name <name>New display name for the asset.
--alt-text <text>Alt text for the asset.
--dry-runPreview the update without applying it.
--jsonOutput as JSON.

Example

$webflow assets update 6258612d1ee792848f805dcf --display-name "New Logo" --alt-text "Company logo"

assets folders

Lists asset folders for a site.

Usage

$webflow assets folders --site <siteId> [options]

Options

OptionDescription
--site <siteId>(Required) Site ID.
--jsonOutput as JSON.

Example

$webflow assets folders --site 6258612d1ee792848f805dcf

assets folders create

Creates a new asset folder.

Usage

$webflow assets folders create --name <name> [options]

Options

OptionDescription
--site <siteId>Site ID. Falls back to webflow.json or an interactive prompt.
--name <name>(Required) Folder display name.
--parent <folderId>Parent folder ID (creates a nested folder).
--jsonOutput as JSON.

Example

$webflow assets folders create --site 6258612d1ee792848f805dcf --name "Marketing"

Code Components

library share

Bundles and shares your Code Component library with a Webflow Workspace.

Usage

$webflow library share [options]

Options

OptionDescriptionDefault
--manifestPath to the webflow.json file.Scans the current directory.
--api-tokenWorkspace API token.Uses WEBFLOW_API_TOKEN from .env.
--no-inputDisables interactive prompts. Useful for CI/CD.false
--forceForces bundling to complete, even with warnings.false
--debug-bundlerDisplays final bundler configuration for debugging.false
--devBundles in development mode.false
--verboseDisplays extra information for debugging.false

Example

$# Share the library and bypass any interactive prompts
$webflow library share --no-input

library bundle

Bundles a library of Code Components locally to a dist directory. This command does not share the library to Webflow.

Usage

$webflow library bundle [options]

Options

OptionDescriptionDefault
--public-path <path>Overrides the public path for the bundle.
--output-path <path>Overrides the output path for the bundle../dist
--forceForces bundling to complete, even with warnings.false
--debug-bundlerDisplays final bundler configuration for debugging.false
--devBundles in development mode.false
--verboseDisplays extra information for debugging.false

Example

$# Bundle the library and output to a 'build' folder
$webflow library bundle --output-path ./build

library log

Displays the directory and path to the latest log file.

Usage

$webflow library log

Webflow Cloud

cloud init

Initializes a new Webflow Cloud project from a template.

Usage

$webflow cloud init [options]

Options

OptionDescription
--framework, -fThe framework to use for the project (e.g., astro).
--mount, -mThe path to mount the project on (e.g., /app).
--site-id, -sThe Webflow site ID to connect to.

Example

$# Initialize a new Astro project mounted at /app on a specific site
$webflow cloud init -f astro -m /app -s 1234567890

cloud list

Lists available project templates for cloud init.

Usage

$webflow cloud list

cloud deploy

Deploys your project to Webflow Cloud.

Usage

$webflow cloud deploy [options]

Options

OptionDescription
--env, -eThe environment name to deploy to.
--mount, -mThe path to mount the project on (e.g. /app).
--project-name, -pProject name (when deploying a new project).
--directory, -dProject directory path if not in the root (for new projects).
--descriptionProject description (when deploying a new project).
--skip-mount-path-checkSkips interactive prompts for mount path configuration.
--auto-publishPublishes the site after deployment.
Configuration for CI/CD pipelines

When used together, --env and --mount enable non-interactive deployments suitable for CI/CD pipelines. You can also use --auto-publish to publish the site after deployment so that your new environment is live.

$webflow cloud deploy -e production -m /app --auto-publish

This will deploy the project to the environment named “production” and mount it at /app, and then publish the site so that your new environment is live.


Exports Webflow components from your site as a static, self-contained local React bundle.

Usage

$webflow devlink export [options]

Options

OptionDescription
--api-token <token>API token, overriding WEBFLOW_API_TOKEN.
-s, --site <site-id>Site ID, overriding webflow.json.

Example

$# Export components using a specific site ID and token
$webflow devlink export --site 1234567890 --api-token <YOUR_TOKEN>

Designer Extensions

extension list

Lists available templates for extension init.

Usage

$webflow extension list

extension init

Initializes a new Designer Extension project from a template.

Usage

$webflow extension init <project-name> <template>

Arguments

ArgumentDescription
project-nameThe name of your new project directory.
templateThe template to use: default, react, or typescript-alt.

Example

$# Initialize a new React-based extension in a 'my-new-extension' folder
$webflow extension init my-new-extension react

extension bundle

Bundles your Designer Extension into a bundle.zip file for upload.

Usage

$webflow extension bundle

extension serve

Serves your Designer Extension on a local development server.

Usage

$webflow extension serve [port]

Arguments

ArgumentDescriptionDefault
portThe port to serve the project on.1337