ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

framer-cms

Framer CMS management via the Server API — list, create, read, update, and delete CMS collections and items, upload images, publish previews, deploy to production, and manage project assets, all without opening Framer. Use when the user asks to manage Framer CMS content, publish a Framer site, push articles to Framer, update CMS items, upload images to Framer, create collections, sync content, or automate any Framer workflow. Trigger on: "framer", "framer cms", "framer publish", "framer deploy", "framer collection", "framer article", "push to framer", "upload to framer", "framer api", "framer server api", "cms item", "cms collection", "publish site", "deploy site", "framer preview", "framer image", "framer content". Do NOT trigger for: Framer design/layout work, Framer Motion animation library, building Framer plugins.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/berthelol/framer-crm-api
Or

Framer CMS — Server API Skill

Manage Framer CMS content programmatically via the framer-api npm package. Push articles, upload images, create collections, and publish/deploy — all from the terminal, no Framer app needed.

First-time setup (onboarding)

If this is the first time the user uses this skill in a project, run the onboarding flow described in references/onboarding.md.

Quick check: Look for FRAMER_PROJECT_URL and FRAMER_API_KEY in the user's .env file or environment. If missing, onboard.


How it works

This skill uses the Framer Server API (framer-api npm package) which connects to Framer projects via WebSocket using an API key. It provides full CMS CRUD, image uploads, publishing, and deployment.

Important: The framer-api package must be installed in the project. If not present, run:

npm i framer-api

All operations use ES module scripts (.mjs files) with this connection pattern:

import { connect } from "framer-api"

// IMPORTANT: API key is passed as a plain string (2nd argument), NOT as {apiKey: "..."}
const framer = await connect(process.env.FRAMER_PROJECT_URL, process.env.FRAMER_API_KEY)
try {
  // ... operations ...
} finally {
  await framer.disconnect()
}

Available operations

CMS Collections

OperationMethodNotes
List collectionsframer.getCollections()Returns all CMS collections
Get one collectionframer.getCollection(id)By collection ID
Create collectionframer.createCollection(name)Creates empty collection
Get fieldscollection.getFields()Field definitions (name, type, id)
Add fieldscollection.addFields([{type, name}])Add new fields to collection
Remove fieldscollection.removeFields([fieldId])Delete fields by ID
Reorder fieldscollection.setFieldOrder([fieldIds])Set field display order

CMS Items (articles, entries)

OperationMethodNotes
List itemscollection.getItems()All items with field data
Create itemscollection.addItems([{slug, fieldData}])Create new items. Returns undefined — re-fetch with getItems() to get IDs
Update item fieldsitem.setAttributes({ fieldData: { [fieldId]: {type, value} } })MUST wrap in fieldData: — without it, values are silently ignored
Update item slug/draftitem.setAttributes({ slug: "new", draft: false })Slug and draft are set directly (NOT inside fieldData)
Delete itemitem.remove()Single item
Bulk deletecollection.removeItems([itemIds])Multiple items
Reorder itemscollection.setItemOrder([itemIds])Set display order

⚠️ Critical: How to update CMS item fields

The setAttributes method has a non-obvious API design — field values MUST be wrapped in a fieldData key:

Metadata

Author@berthelol
Stars4473
Views0
Updated2026-05-01
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-berthelol-framer-crm-api": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.

Related Skills

scrapping

Use this skill whenever a user wants to get, pull, grab, fetch, or look up public data from social media platforms — profiles, posts, videos, comments, followers, engagement stats, transcripts, trending content, hashtags, or creator info from TikTok, Instagram, YouTube, Twitter/X, LinkedIn, Facebook, Reddit, Threads, Bluesky, Pinterest, Snapchat, Twitch, Kick, Truth Social, or link-in-bio sites (Linktree, Komi, Pillar). Also covers ad library lookups (Meta, Google, LinkedIn, Reddit) and TikTok Shop data. Trigger even when users say "scrape", "monitor", "search", or "check" a platform. Do NOT trigger for building apps, using official platform SDKs/APIs (like PRAW, tweepy, YouTube Data API), analyzing local files, or creating dashboards — only when the user needs to retrieve data directly from a social platform.

berthelol 4473

gleap

Gleap REST API integration for customer support analytics and ticket management. Use when the user asks to fetch support tickets, analyze customer support metrics, track team performance, measure response times, generate support reports, monitor ticket volume, check SLA compliance, analyze busiest hours, export team stats, or interact with Gleap data in any way. Trigger on: "gleap", "support tickets", "support metrics", "support report", "team performance", "response time", "time to close", "ticket analysis", "customer support", "support dashboard", "agent performance", "ticket volume", "SLA", "first response time", "reply time", "busiest hours", "ticket topics", "support trends". Also trigger when a user wants to build a support reporting pipeline, automate support analytics, or connect Gleap to other tools (Notion, Slack, etc.).

berthelol 4473

seo-geo-for-saas

Complete SEO + GEO (Generative Engine Optimization) system for SaaS companies wanting to rank on both Google and AI search engines (ChatGPT, Perplexity, Gemini, Claude). Use this skill whenever the user asks about SEO strategy, keyword research, content planning, writing SEO-optimized articles, auditing their search performance, creating a content calendar, analyzing competitors, or optimizing for AI search visibility. Trigger on: "seo", "keyword research", "content calendar", "rank on google", "search traffic", "write an article", "blog post", "serp", "backlinks", "competitor analysis", "content cluster", "seo audit", "geo optimization", "ai search", "search console", "organic traffic", "content strategy", "publish article", "seo setup", "ranking", "impressions", "ctr", "meta description", "schema markup", "faq schema". Also trigger when a user wants to set up their SaaS blog SEO from scratch, analyze their current rankings, or create a publishing workflow.

berthelol 4473