This is an overview of the changes to the Webflow APIs and related tools. To filter the list, select one or more tags.

MCP v1.2.1 - Improved connection reliability and Gemini compatibility

Version 1.2.1 of the Webflow MCP server improves connection reliability and fixes compatibility with Gemini-based AI clients. If you are already using the MCP server, your agents and prompts automatically use this version.

Reliability

  • Fixed connection drops: The MCP server now maintains open connections during idle periods instead of dropping them. Previously, agents could lose their session mid-task and require a full reconnect after a period of inactivity. Sessions now survive idle periods without interruption.

Bug fixes

  • Gemini compatibility: Fixed an HTTP 400 error that prevented Gemini-based AI clients from using the element_builder and component_builder tools. Gemini’s strict OpenAPI 3.0 validation rejected array schemas that were missing an items type definition. Claude-based clients were unaffected.

Resources


v1.21.0: Forms commands

v1.21.0 adds a forms command group for reading form data and exporting submissions.

webflow forms list

Lists all forms on a site with their ID, display name, and slug. Supports --fields to customize columns and --json for machine-readable output.

$webflow forms list --site <siteId>
$webflow forms list --site <siteId> --json

webflow forms submissions

Lists all submissions for a specific form. Submissions can be output as a formatted table, JSON, or exported directly to CSV with --output.

$webflow forms submissions --site <siteId> --form <formId>
$webflow forms submissions --site <siteId> --form <formId> --output submissions.csv

Required OAuth scope: forms:read


v1.20.2: CMS error handling improvements and auth fix

v1.20.2 is a patch release with CMS UX improvements and a small auth output fix.

CMS error handling improvements

  • Cleaner user errors — Invalid collection or item IDs now display a clean message and exit with code 1 instead of throwing a CLI error with a stack trace.
  • Structured API error bodies — When the Webflow API returns an error, the full structured error body from the response is now included in the output, not just the HTTP status code.
  • Next-steps hint after collections create — After successfully creating a collection, the CLI now prints a hint showing how to add fields to it:
    $webflow cms collections create --site <siteId> --name "Blog Posts"
    $# ✔ Collection created: Blog Posts (id: abc123)
    $# → Add fields: webflow cms fields create --collection abc123 --name <name> --type <type>

Fix: duplicate “Credentials saved” output

Running webflow auth login no longer prints the “Credentials saved” line twice. Previously, both ensureAuthenticated and the auth login command handler logged the message independently.


AI-generated code components

The Webflow AI Assistant can now generate and modify code components based on plain-language prompts. You can use the AI Assistant to generate visual and interactive components for your site, like custom sliders, pricing menus, calculators, The AI Assistant can access the styles and CMS collections from the current site and can make changes with further prompts.

For more information, limitations, and example prompts, see Quick start: Generating code components.


v1.20.1: DevLink export integration and JSX extension default

v1.20.1 is a patch release with two improvements.

The webflow cloud init command now scaffolds projects using the new webflow devlink export command. The Astro and Next.js scaffold templates have been updated to take advantage of the latest DevLink features.

The deprecated webflow devlink sync command now defaults to generating component files with a .jsx extension instead of .js. You can still override the extension using the fileExtensions property in your webflow.json manifest file.


v1.19.0: DevLink export

v1.19.0 adds webflow devlink export, a new command that generates a static, self-contained DevLink bundle of your Webflow components as local React code that runs without a build-time connection to Webflow.

$webflow devlink export

Key features

  • Filter exports — Use components and componentGroups regex patterns in webflow.json to control what gets exported.
  • TypeScript or JavaScript — Output language is auto-detected from your project. Override with the ts option in webflow.json.
  • CSS scoping — Optional CSS style isolation via cssScopes to prevent style leakage.
  • Configurable output — Set the output location with rootDir, and rewrite link targets via relativeHrefRoot to fit any project layout.
  • CI-friendly — Authenticate via OAuth interactively, or set WEBFLOW_API_TOKEN / --api-token for non-interactive use. Target a site with --site or via webflow.json.

Also in this release: code library selection in library share is now searchable and sorted alphabetically.


v1.20.0: Global session auth and new auth commands

v1.20.0 introduces global session storage so a single webflow auth login covers all CLI commands, plus two new commands for inspecting and clearing your session.

Global session storage

Running webflow auth login now saves your credentials in two places:

  • Global session file~/.config/webflow/auth.json on macOS/Linux or %APPDATA%\webflow\auth.json on Windows. This is shared across all projects and survives outside any specific project directory.
  • Project .env fileWEBFLOW_API_TOKEN continues to be written for compatibility with existing 1.x workflows.

The WEBFLOW_API_TOKEN environment variable still takes precedence over the session file, so CI/CD pipelines that set it explicitly continue to work without changes.

New auth commands

  • webflow auth status — Shows the currently authenticated user (name and email) and the active OAuth scopes for the stored token.
  • webflow auth logout — Removes the global session file and logs you out of the CLI.

Version flag shorthand

The version flag has been changed from -V to -v for convenience.

$webflow -v
$# @webflow/webflow-cli/1.20.0

Updates to DevLink Export

DevLink Export ships a major upgrade. A new webflow devlink export command replaces webflow devlink sync and walks you through setup the first time you run it. Exported components are fully-typed TSX by default, and the generated CSS is now isolated to your DevLink components via CSS @scope so it won’t leak into the rest of your app. Webflow’s native Slot element replaces DevLink Slots (with an in-canvas Convert action), and the new Attributes prop replaces Runtime Props (auto-conversion coming soon).

DevLink Export requires @webflow/webflow-cli v1.19.0 or later, on Node.js v22+.

New export workflow

  • New webflow devlink export command replaces webflow devlink sync. See Quickstart: DevLink Export.
  • The first run walks you through an interactive setup and saves your settings to webflow.json, so subsequent runs — manual or in CI — execute without prompts.
  • New components and componentGroups regex filters in webflow.json let you scope the export to a subset of your library. See Configuration options.
  • The webflow devlink export command now requires the DevLink Export read permission on OAuth and Site API tokens.

TypeScript by default

  • Exported components ship as fully-typed .tsx files with JSDoc comments. Set ts: false in webflow.json to opt out and emit .jsx instead.

Style isolation and CSS structure

  • New cssScopes option (enabled by default) wraps the exported styles in a CSS @scope rule tied to each component’s wrapper, so DevLink styles can’t leak into the rest of your app.
  • Categorized CSS files (normalize, defaults, variables, tags, classes, fonts) are imported from a single global.css you load once at your app root.

New Designer primitives

  • DevLink Export now supports Webflow’s native Slot element — the recommended replacement for DevLink Slots. Existing DevLink Slots continue to work but show a deprecation warning in the Designer; use the in-canvas Convert action to migrate. See Slots.
  • DevLink Export now supports the new Attributes prop — the recommended replacement for Runtime Props. Existing Runtime Props will be automatically converted soon. See Attributes.
  • New supported elements: Iframe, Inline Code, and Code Block. See Supported elements.

Broader component coverage

  • Nested components and any library components they depend on are automatically included in the export.
  • Conditional visibility settings on elements are compiled into the exported React code (Boolean, Enum, Number, Text, and Style Variant conditions).

Defaults and cleanup

  • The default export folder is now webflow/ at the root of the project (was devlink/).
  • The following options are no longer supported: cssModules, skipTagSelectors, envVariables, overwriteModule, fileExtensions.

Migration

Existing DevLink Sync projects can upgrade by following the Migrating to DevLink Export guide. It walks through the CLI bump, .env rename, webflow.json restructure, tsconfig and import-path updates, and the Designer-side migration of Runtime Props and DevLink Slots.


v1.18.0: Sites commands and sort controls

v1.18.0 adds a new sites command group for managing Webflow sites from the CLI, plus --sort-by and --order flags for assets list and cms collections list.

Sites commands

A new webflow sites command group lets you list, inspect, and publish sites without leaving the terminal.

  • sites list — List all sites in your workspace. Supports --fields to choose which columns to display and --json for machine-readable output.
  • sites get <siteId> — Get details for a specific site, including display name, short name, time zone, and publish timestamps.
  • sites domains --site <siteId> — List the custom domains configured for a site.
  • sites publish --site <siteId> — Publish a site to the Webflow subdomain or to specific custom domains. Supports --page <pageId> to publish a single page and --dry-run to preview what would be published without triggering a build.

Sort flags for assets and CMS

assets list and cms collections list now accept --sort-by and --order flags so you can control how results are returned.

  • assets list supports --sort-by displayName | originalFileName | contentType | size | lastUpdated and --order asc | desc (default: asc).
  • cms collections list supports --sort-by displayName | slug | lastUpdated and --order asc | desc (default: asc).
  • The site picker now defaults to alphabetical order by display name.
  • Invalid flag values produce a clear error message listing the valid options.

DevLink global stylesheet moves into the css/ subfolder

When you re-sync your site with DevLink, the global.css stylesheet is now written to the css/ subfolder alongside the other DevLink stylesheets instead of at the root of the export.

What changed

global.css now lives at css/global.css alongside classes.module.css, instead of at the root of <rootDir>.

<rootDir>/ ← Root folder defined in `webflow.json`
├── DevLinkProvider.jsx
├── DevLinkProvider.d.ts
├── css/
│ ├── global.css ← Moved from the root of <rootDir>
│ └── classes.module.css
├── <UserComponent>.jsx
└── webflow_modules/

Action required

Update the path in the file that imports global.css (usually a layout or entry file) to add the css/ segment.

Before:

1import "devlink/global.css";

After:

1import "devlink/css/global.css";

The same change applies if you use a different alias or relative path — add css/ before global.css.

For more information, see What DevLink Exports.