framer-dalton 0.0.32 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,20 @@
1
- # Framer Agent CLI
1
+ <p>
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://misc.framerstatic.com/framer-local-agents/external-agent-dark.svg">
4
+ <source media="(prefers-color-scheme: light)" srcset="https://misc.framerstatic.com/framer-local-agents/external-agent-light.svg">
5
+ <img alt="Framer Server API" src="https://misc.framerstatic.com/framer-local-agents/external-agent-light.svg" width="264">
6
+ </picture>
7
+ </p>
2
8
 
3
- CLI and agent skills for interacting with Framer projects via the Framer Server API.
9
+ <img alt="outstretched palm with glassy framer logo floating above it" src="https://misc.framerstatic.com/framer-local-agents/agents.png" />
4
10
 
5
- ## Installation
11
+ This package contains skills and a CLI tool to enable your favourite local agent to interact directly with Framer projects. It works with Claude Code, Cursor, Codex, and other AI agents.
12
+
13
+ See [framer.com/agents/external](https://www.framer.com/agents/external/) to learn more.
14
+
15
+ ## Getting Started
16
+
17
+ ### 1. Installation
6
18
 
7
19
  Install or refresh the globally available skills:
8
20
 
@@ -10,21 +22,102 @@ Install or refresh the globally available skills:
10
22
  npx @framer/agent@latest setup
11
23
  ```
12
24
 
13
- That installs skills into `~/.agents/skills` and `~/.claude/skills`.
25
+ This will install skills into `~/.agents/skills` and `~/.claude/skills`.
26
+
27
+ If you're new to node/npm or are struggling with setup, try pasting the following prompt into your agent:
28
+
29
+ <details>
30
+ <summary>Prompt</summary>
31
+
32
+ ```txt
33
+ Goal:
34
+ Ensure Node.js v24 or newer is installed, then run the @framer/agent setup.
35
+
36
+ Check first:
37
+ Run `node --version`.
38
+
39
+ If Node.js is already installed and the major version is 24 or higher:
40
+ Do not install or modify Node.js. Continue to the @framer/agent setup.
41
+
42
+ If Node.js is missing or older than v24:
43
+ Install an official Node.js release with major version 24 or higher.
44
+
45
+ Install policy:
46
+ Use an existing package manager only if it is already installed.
47
+ Do not install Homebrew, winget, Chocolatey, Scoop, nvm, fnm, or another package manager just for this task.
48
+
49
+ Install options:
50
+ macOS:
51
+ - If Homebrew is already installed, use it to install Node.js.
52
+ - Otherwise use the official Node.js `.pkg` installer.
53
+
54
+ Windows:
55
+ - If winget is already installed, use it to install Node.js.
56
+ - Otherwise use the official Node.js `.msi` installer.
57
+
58
+ Linux:
59
+ - If the system package manager can install Node.js v24 or newer, use it.
60
+ - For Debian/Ubuntu or RHEL/Fedora-compatible systems, use the official NodeSource instructions for Node.js 24 or newer.
61
+ - Otherwise use the official Node.js standalone Linux binary for the detected architecture.
62
+
63
+ Official downloads:
64
+ Use the static latest Node.js release directory when downloading installers or binaries:
65
+ https://nodejs.org/download/release/latest/
66
+
67
+ Verify:
68
+ After installing, run `node --version` again.
69
+ Only continue if the major version is 24 or higher.
70
+
71
+ Final step:
72
+ Run `npx @framer/agent@latest setup`.
73
+
74
+ Success message:
75
+ If the setup completes successfully, tell the user they are now set up and what the user should do next:
76
+
77
+ Create a new thread, then copy your Framer project link:
78
+ - Browser: copy the address bar when the project is open.
79
+ - App: right-click the project tab, then choose "Copy Project Link".
80
+ ```
81
+ </details>
82
+
83
+ ### 2. Connect to your projects
84
+
85
+ In your AI agent, simply ask to work on your project, pasting the relevant project URL. You can also manually invoke the `framer` skill. This will connect to your Framer project and ask you to grant access to the project from your browser.
86
+
87
+ ### 3. Write your first prompt
88
+
89
+ Tell your agent what to build, change, or fix. It works directly in your Framer project without the need to have it open.
90
+
91
+ ## Frequently asked questions
92
+
93
+ ### Do I need to set up a Framer MCP server?
94
+
95
+ No. Framer doesn’t require a separate MCP server. If you’re searching for a Framer MCP, the native Framer Agent connection gives Claude Code, Cursor, Codex, Gemini CLI, and other AI tools direct access to your canvas, components, CMS, and project context, without manual MCP setup.
96
+
97
+ ### Which AI agents are supported?
98
+
99
+ Framer Agent works with any local agent harness that can work with Skills and can call local tools, including Claude Code, Codex, Cursor, Gemini CLI, and Windsurf.
100
+
101
+ ### Can the agent edit my live site?
102
+
103
+ No. The agent works on your canvas in the Framer editor, not on your published site. Changes only go live when you choose to publish them yourself or tell the agent.
104
+
105
+ ### Does the agent have access to my CMS?
106
+
107
+ Yes. Once connected, the agent can read and write CMS collections, including creating, updating, and deleting items. You stay in control of what gets published.
108
+
109
+ ### Is it safe to give an agent access to my project?
110
+
111
+ The agent only has access to the projects you explicitly connect it to. It cannot access other projects, your account settings, or billing. You can revoke access at any time.
14
112
 
15
- ## How It Works
113
+ ### What happens if the agent makes a mistake?
16
114
 
17
- The CLI and the installed skills are meant to work together. There are three skills:
115
+ Framer has branching, so every change made by an external agent automatically happens on a branch. You can undo changes, review the branch, and decide when to merge it back into your main branch.
18
116
 
19
- - `framer` - the base meta skill that explains setup, project selection, and session creation.
20
- - `framer-code-components` - explains specific prompts for how to write code components and provides examples.
21
- - `framer-project-<project id>` - a dynamically-created skill for interacting with a specific project.
117
+ ### Will this consume my tokens or Framer tokens?
22
118
 
23
- 1. Running `npx @framer/agent@latest setup` will install the base `framer` and `framer-code-components` skills.
24
- 2. The frontmatter of `framer-code-components` tells agents to always load `framer` and the generated project skill first.
25
- 3. The frontmatter of `framer` tells agents to run `npx @framer/agent@latest setup` BEFORE loading the skill. This command will auto-update the cli and update the skill files.
26
- 4. Creating a new session for a project will create a `framer-project-<project id>` file. This file contains the latest agent system prompt from `framer.agent.getSystemPrompt` and the latest project context from `framer.agent.getContext`. Agents must load this project-specific skill immediately after creating a session before doing any connected-project work.
119
+ Usage will only consume your own agent's tokens.
27
120
 
28
- ## Local Development
121
+ ### Why does this use so many tokens?
29
122
 
30
- See the CONTRIBUTING.md file in this repository for local development instructions.
123
+ Token consumption for Framer Agent can be relatively high. For other work like web development tasks, your agent already has a lot of knowledge baked into its model and so is able to get to work straight away. For Framer Agent, we need to first teach your AI how to interact with Framer projects and provide a lot of context. This requires a certain amount of token usage before being able to undertake the task at hand.
package/dist/cli.js CHANGED
@@ -12,7 +12,7 @@ import net from 'net';
12
12
  import { fileURLToPath } from 'url';
13
13
  import { createTRPCClient, httpLink } from '@trpc/client';
14
14
 
15
- /* @framer/ai CLI v0.0.32 */
15
+ /* @framer/ai CLI v0.0.33 */
16
16
  var __defProp = Object.defineProperty;
17
17
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
18
18
 
@@ -375,7 +375,7 @@ __name(markTelemetryNoticeShown, "markTelemetryNoticeShown");
375
375
  // src/version.ts
376
376
  var VERSION = (
377
377
  // typeof is used to ensure this can be used just via tsx or node etc. without build
378
- "0.0.32"
378
+ "0.0.33"
379
379
  );
380
380
  var trackingEndpoint = "https://events.framer.com/track";
381
381
  var inProgressTrackings = /* @__PURE__ */ new Set();
@@ -14,7 +14,7 @@ import { z } from 'zod';
14
14
  import { createRequire } from 'module';
15
15
  import * as vm from 'vm';
16
16
 
17
- /* @framer/ai relay server v0.0.32 */
17
+ /* @framer/ai relay server v0.0.33 */
18
18
  var __defProp = Object.defineProperty;
19
19
  var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name2);
20
20
  var __typeError = (msg) => {
@@ -199,7 +199,7 @@ __name(debug, "debug");
199
199
  // src/version.ts
200
200
  var VERSION = (
201
201
  // typeof is used to ensure this can be used just via tsx or node etc. without build
202
- "0.0.32"
202
+ "0.0.33"
203
203
  );
204
204
 
205
205
  // src/relay-client.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framer-dalton",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "type": "module",
5
5
  "bin": "./dist/cli.js",
6
6
  "main": "./dist/cli.js",