productivity
Webflow CLI for AI Agents
Use the Webflow CLI from KosmoKrator to call Webflow tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Webflow CLI Setup
Webflow can be configured headlessly with `kosmokrator integrations:configure webflow`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure webflow --set access_token="$WEBFLOW_ACCESS_TOKEN" --enable --read allow --write ask --json
kosmokrator integrations:doctor webflow --json
kosmokrator integrations:status --json Credentials
Authentication type: Manual OAuth token oauth2_manual_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | WEBFLOW_ACCESS_TOKEN | Secret secret | yes | Access Token |
url | WEBFLOW_URL | URL url | no | API Base URL |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call webflow.webflow_list_sites '{}' --json kosmo integrations:webflow webflow_list_sites '{}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs webflow --json
kosmo integrations:docs webflow.webflow_list_sites --json
kosmo integrations:schema webflow.webflow_list_sites --json
kosmo integrations:search "Webflow" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
webflow.webflow_list_sites
List all Webflow sites the authenticated user has access to. Returns site IDs, names, and domains needed for further CMS operations.
read - Parameters
- none
kosmo integrations:call webflow.webflow_list_sites '{}' --json kosmo integrations:webflow webflow_list_sites '{}' --json webflow.webflow_get_site
Get details for a specific Webflow site by its ID. Returns site name, domain, publishing status, and other metadata.
read - Parameters
- id
kosmo integrations:call webflow.webflow_get_site '{"id":"example_id"}' --json kosmo integrations:webflow webflow_get_site '{"id":"example_id"}' --json webflow.webflow_list_collections
List CMS collections for a Webflow site. Collections are content models (e.g., "Blog Posts", "Team Members") that hold structured items.
read - Parameters
- site_id, limit, offset
kosmo integrations:call webflow.webflow_list_collections '{"site_id":"example_site_id","limit":1,"offset":1}' --json kosmo integrations:webflow webflow_list_collections '{"site_id":"example_site_id","limit":1,"offset":1}' --json webflow.webflow_list_items
List items in a Webflow CMS collection. Returns paginated results with item IDs, field data, and draft/publish status.
read - Parameters
- collection_id, limit, offset
kosmo integrations:call webflow.webflow_list_items '{"collection_id":"example_collection_id","limit":1,"offset":1}' --json kosmo integrations:webflow webflow_list_items '{"collection_id":"example_collection_id","limit":1,"offset":1}' --json webflow.webflow_get_item
Get a single CMS item from a Webflow collection by its ID. Returns full field data including rich text, images, and references.
read - Parameters
- collection_id, id
kosmo integrations:call webflow.webflow_get_item '{"collection_id":"example_collection_id","id":"example_id"}' --json kosmo integrations:webflow webflow_get_item '{"collection_id":"example_collection_id","id":"example_id"}' --json webflow.webflow_create_item
Create a new item in a Webflow CMS collection. Pass field data as key-value pairs matching the collection's schema. Set live to true to publish immediately.
write - Parameters
- collection_id, fields, live
kosmo integrations:call webflow.webflow_create_item '{"collection_id":"example_collection_id","fields":"example_fields","live":true}' --json kosmo integrations:webflow webflow_create_item '{"collection_id":"example_collection_id","fields":"example_fields","live":true}' --json webflow.webflow_get_current_user
Get the currently authenticated Webflow user. Returns user profile including name, email, and account details.
read - Parameters
- none
kosmo integrations:call webflow.webflow_get_current_user '{}' --json kosmo integrations:webflow webflow_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
webflow.webflow_list_sites 0 parameters
kosmo integrations:schema webflow.webflow_list_sites --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
webflow.webflow_get_site 1 parameters
kosmo integrations:schema webflow.webflow_get_site --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique identifier of the Webflow site (e.g., "641d84b8f0bca14670785897"). |
webflow.webflow_list_collections 3 parameters
kosmo integrations:schema webflow.webflow_list_collections --json | Parameter | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | The unique identifier of the Webflow site. |
limit | integer | no | Maximum number of collections to return (default: 100). |
offset | integer | no | Number of collections to skip for pagination (default: 0). |
webflow.webflow_list_items 3 parameters
kosmo integrations:schema webflow.webflow_list_items --json | Parameter | Type | Required | Description |
|---|---|---|---|
collection_id | string | yes | The unique identifier of the CMS collection. |
limit | integer | no | Maximum number of items to return (default: 100). |
offset | integer | no | Number of items to skip for pagination (default: 0). |
webflow.webflow_get_item 2 parameters
kosmo integrations:schema webflow.webflow_get_item --json | Parameter | Type | Required | Description |
|---|---|---|---|
collection_id | string | yes | The unique identifier of the CMS collection the item belongs to. |
id | string | yes | The unique identifier of the CMS item. |
webflow.webflow_create_item 3 parameters
kosmo integrations:schema webflow.webflow_create_item --json | Parameter | Type | Required | Description |
|---|---|---|---|
collection_id | string | yes | The unique identifier of the CMS collection to add the item to. |
fields | object | yes | Field data as key-value pairs matching the collection schema. Common fields: name, slug, _archived, _draft. |
live | boolean | no | Whether to publish the item immediately (default: false). Set to true to make the item live on the site. |
webflow.webflow_get_current_user 0 parameters
kosmo integrations:schema webflow.webflow_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.