This repository is an operational workspace for connecting Codex to Framer through the official Framer External Agent.
It is not a custom MCP server, application, proxy, or UI. Do not add unofficial Framer MCP packages here.
- Node.js 24 or newer
- npm and npx
- Git
- Codex CLI or Codex Desktop
- Access to the target Framer editor project URL
If Node 24 is installed with Homebrew but is not the default Node, start a shell with:
export PATH="$(brew --prefix node@24)/bin:$PATH"Then verify:
node -v
npm -v
npx --versionRun the workspace diagnostics first:
npm run doctorRun the official Framer External Agent setup:
npm run framer:setupThis script runs:
npx @framer/agent setupAllow the official setup command to create local Codex configuration and skills if prompted. Do not move credentials or generated authentication files into this repository.
Use:
npm run doctorThe doctor checks Node.js version, npm/npx availability, Git availability, required workspace files, and tracked files that look like local secrets or credentials by filename. It does not read or print secret file contents.
- Run
npm run doctor. - Run
npm run framer:setupif the official Framer Agent is not installed or needs repair. - Keep the Framer editor URL out of Git.
- If a local copy of the editor URL is needed, store it only in
.local/framer-project.txt. - Connect to the project with the official Framer External Agent.
- Start in read-only audit mode.
Never commit private project URLs, project IDs, cookies, tokens, OAuth data, API keys, client content, CMS exports, or private audit reports.
The first connection to a real project must only inspect available data. Do not change pages, text, styles, CMS data, components, project settings, domains, redirects, or publication state.
Capture only safe categories:
- authorization status
- project accessibility
- pages and high-level canvas structure
- components
- code components and code files
- CMS collections and field names
- CMS record counts without sensitive record content
- locales
- redirects
- color styles
- text styles
- asset inventory
- publication state
- pending changes
- API limitations encountered
Store any private report only under .local/.
Do not write to Framer without an explicit plan and separate approval.
Do not publish a Framer project without explicit approval for that exact publish action.
Before any write action:
- Explain the intended change list.
- Confirm the affected pages, components, CMS collections, or code files.
- State the validation plan.
- Wait for explicit approval.
Install or activate Node 24. With Homebrew:
brew install node@24
export PATH="$(brew --prefix node@24)/bin:$PATH"Check network access, npm registry access, and the current Node.js version. Re-run:
npx @framer/agent setupIf npm fails with a local issuer certificate error while curl can reach the registry, use the Homebrew CA bundle only for that command:
NODE_EXTRA_CA_CERTS="$(brew --prefix)/etc/ca-certificates/cert.pem" npx @framer/agent setupRe-run the official setup command and restart the Codex session if the installer indicates that newly installed skills require reload.
Complete the Framer browser authorization in the browser. Do not paste tokens or cookies into chat or commit them to Git.
Remove it before committing. Private URLs belong only in .local/framer-project.txt or another ignored file under .local/.