executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
framer-install-authInstall and configure Framer SDK/CLI authentication. Use when setting up a new Framer integration, configuring API keys, or initializing Framer in your project. Trigger with phrases like "install framer", "setup framer", "framer auth", "configure framer API key".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: framer-install-auth description: 'Install and configure Framer SDK/CLI authentication.
Use when setting up a new Framer integration, configuring API keys,
or initializing Framer in your project.
Trigger with phrases like "install framer", "setup framer",
"framer auth", "configure framer API key".
' allowed-tools: Read, Write, Edit, Bash(npm:), Bash(npx:), Grep version: 1.5.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Use a scoped staging credential to confirm a read-only project check, record only the scope and redacted outcome, then revoke the test credential and verify access is denied.
Set up the Framer Plugin SDK for building editor plugins, or the framer-api package for Server API access. Framer has two developer surfaces: Plugins (run inside the Framer editor UI) and Server API (run from any Node.js server via WebSocket).
| Type | Package | Use Case |
|---|---|---|
| Plugin | framer-plugin | UI that runs inside Framer editor |
| Server API | framer-api | Headless CMS sync, CI/CD publishing |
| Code Components | React in Framer | Custom components on the canvas |
| Code Overrides | React in Framer | Modify existing component behavior |
# Scaffold a new plugin project
npx create-framer-plugin@latest my-plugin
cd my-plugin
npm install
npm run dev
This creates a Vite + React project with the framer-plugin package pre-configured. The plugin runs inside Framer's editor iframe.
npm install framer-api
// server.ts — Server API connection
import { framer } from 'framer-api';
const client = await framer.connect({
apiKey: process.env.FRAMER_API_KEY!, // From site settings
siteId: process.env.FRAMER_SITE_ID!,
});
// List all CMS collections
const collections = await client.getCollections();
console.log('Collections:', collections.map(c => c.name));
# .env (NEVER commit)
FRAMER_API_KEY=framer_sk_abc123...
FRAMER_SITE_ID=abc123def456
# .gitignore
.env
.env.local
Open Framer, go to your project, click Plugins > Development > select your local plugin. The dev server hot-reloads into the editor.
// Plugin verification — runs inside Framer editor
import { framer } from 'framer-plugin';
export function App() {
const handleTest = async () => {
const selection = await framer.getSelection();
console.log('Selected layers:', selection.length);
framer.notify(`Found ${selection.length} selected layers`);
};
return <button onClick={handleTest}>Test Connection</button>;
}
| Error | Cause | Solution |
|---|---|---|
Plugin not showing | Dev server not running | Run npm run dev and reload Framer |
Invalid API key | Wrong key or site ID | Generate new key in site settings |
WebSocket connection failed | Network/firewall | Allow outbound WSS connections |
framer-plugin not found | Missing dependency | Run npm install framer-plugin |
After setup, proceed to framer-hello-world for your first plugin or component.