Agent skill

Pp Framer

by mvanhorn in mvanhorn/printing-press-library

Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other...

Apache-2.0Auto-check: notesWriting & Content

Install Pp Framer

skills CLI
$ npx skills add mvanhorn/printing-press-library --skill pp-framer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mvanhorn/printing-press-library pp-framer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-framer .claude/skills/pp-framer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pp-framer
GitHub stars
2.1k
Token cost
~5.2k tokens
SKILL.md length
2,273 words
Files
1
Skills in repo
505
Repo updated
First seen
Licence
Apache-2.0

At a glance

Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other...

  • Works in 3 steps: Install via the Printing Press… → Verify: framer-pp-cli --version → Ensure the reported install directory is…
  • Phrases: sync CMS content to Framer
  • SKILL.md covers Prerequisites: Install the CLI, How It Works (Architecture), Environment Variables and When to Use This CLI, plus 14 more sections
  • Calls go, claude and npx; reaches old-site.com and framer.com; needs FRAMER_API_KEY

What it does

Pp Framer is an agent skill from mvanhorn/printing-press-library. Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other... Trigger phrases: sync CMS content to Framer, import blog posts into Framer, publish my Framer site, migrate site to Framer, upload assets to Framer, check Framer project status.

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Blog and article writing. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.

When your agent uses it

  • Phrases: sync CMS content to Framer
  • Import blog posts into Framer
  • Publish my Framer site
  • Migrate site to Framer

Example prompts

  • “/pp-framer”

Requirements

  • Node.js
  • A credential in FRAMER_API_KEY
  • Pre-approved tools (allowed-tools): Read, Bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and…
  2. Verify: framer-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

What it can do on your machine

Read from SKILL.md and the folder at commit 0fdcc7a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • claude
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • old-site.com
    • framer.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • FRAMER_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pp Framer loads about 5.2k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 2,273 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mvanhorn/printing-press-library at commit 0fdcc7a, republished under its Apache-2.0 licence (© mvanhorn). 2,273 words, ~5,216 tokens.

Download SKILL.mdSave it as .claude/skills/pp-framer/SKILL.md (or your agent's skills folder).
name
pp-framer
description
Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other... Trigger phrases: `sync CMS content to Framer`, `import blog posts into Framer`, `publish my Framer site`, `migrate site to Framer`, `upload assets to Framer`, `check Framer project status`.
allowed-tools
Read, Bash
author
ioncom
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/developer-tools/framer/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

Framer — Printing Press CLI

Prerequisites: Install the CLI

This skill drives the framer-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    bash
    npx -y @mvanhorn/printing-press-library install framer --cli-only
  2. Verify: framer-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer). This installs into $GOPATH/bin (default $HOME/go/bin), so add that directory to $PATH instead:

bash
go install github.com/mvanhorn/printing-press-library/library/developer-tools/framer/cmd/framer-pp-cli@latest

If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.

Framer's Server API is powerful but locked behind a JavaScript SDK with no CLI. framer-pp-cli wraps every API method with offline search, dry-run previews, multi-project management, and migration automation that turns site porting from days into hours.

How It Works (Architecture)

framer-pp-cli is a Go binary that orchestrates a Node.js framer-api subprocess — the bridge (bridge/framer-bridge.mjs) — which speaks Framer's Server API over WebSocket. Any live command (anything that touches the project: publish, changes, pages, nodes, assets, code, redirects, sync, doctor, components, collections, items, project) shells out to this bridge, so Node.js 18+ must be present at runtime. The Go-only install path (go install …) still needs Node at runtime for these live commands — only the local-store commands (snapshot, diff, dashboard, search, cms-sync, cms-validate, cms-schema-diff, styles-import, code-pull, code-push, migrate-scrape, i18n-push, redirects-generate) work fully offline against the local SQLite store.

Run framer-pp-cli doctor to verify Node, the framer-api bridge, and live connectivity in one step.

Environment Variables

Every live / bridge command reads its connection details from the environment. Set these before any command that talks to Framer, or the bridge errors out immediately.

VariableRequiredPurpose
FRAMER_API_KEYYesPer-project API key from Framer Site Settings → General. Authenticates the bridge to the Server API.
FRAMER_PROJECT_URLYes (all live/bridge commands)Your Framer project URL, copied from the Framer editor's address bar. Without it every bridge command (publish, changes, pages, nodes, sync, doctor, redirects, collections, items, assets, code, components, project) fails with FRAMER_PROJECT_URL not set.
FRAMER_BRIDGE_TIMEOUTNoGo duration string (e.g. 5m; default 120s) capping how long a single bridge subprocess may run before it is killed.
bash
export FRAMER_API_KEY="$(your-secret-source)"
export FRAMER_PROJECT_URL="https://framer.com/projects/<your-project>"   # required for live commands
export FRAMER_BRIDGE_TIMEOUT="5m"                                        # optional

framer-pp-cli doctor   # confirms both vars + Node bridge + connectivity

Local-store commands (snapshot, diff, dashboard, search, etc.) do not require FRAMER_PROJECT_URL once data has been synced, but the initial sync that populates the store does.

When to Use This CLI

Use framer-pp-cli when you need to automate Framer operations from scripts, CI/CD pipelines, or AI agents. Especially valuable for site migrations (importing content, uploading assets, generating redirects), multi-project management, and CMS content pipelines. Not for visual design work — use the Framer editor for that.

Unique Capabilities

These capabilities aren't available in any other tool for this API.

Local state that compounds
  • snapshot — Track your Framer project's evolution over time with full structural snapshots and visual diffs

    When an agent needs to understand what changed in a project between two points in time, this is the only way

    bash
    framer-pp-cli snapshot --label 'before-redesign' && framer-pp-cli diff latest~1 latest --json
  • dashboard — Query across all registered Framer projects at once — stale CMS, unpublished changes, collection health

    When an agent manages multiple client sites and needs a single command to find which projects need attention

    bash
    framer-pp-cli dashboard --json
  • cms-schema-diff — Declare CMS schema in YAML and diff it against the live project — infrastructure-as-code for Framer CMS

    When an agent needs to verify CMS schema matches the expected structure before syncing content

    bash
    framer-pp-cli cms-schema-diff ./schema.yaml --json
  • cms-validate — Find broken collection references, orphan items, and circular refs across your CMS

    When CMS grows past 3-4 collections, broken references become invisible — this surfaces them

    bash
    framer-pp-cli cms-validate --json
Agent-native plumbing
  • cms-sync — Import CMS content from CSV/JSON/Sheets with a preview diff before committing changes

    When an agent needs to bulk-update CMS content safely without risking accidental overwrites or deletions

    bash
    framer-pp-cli cms-sync ./blog-posts.csv --collection Blog --dry-run --json
  • nodes set — Set node attributes through the live Framer bridge

    When an agent needs to update canvas node attributes by ID

    bash
    framer-pp-cli nodes set abc123 --json --dry-run
  • publish — Create a preview deployment, then optionally promote it to production

    When an agent needs a shareable preview URL or an explicit production deploy

    bash
    framer-pp-cli publish --json
  • code-push — Edit TSX components locally in your editor, then push to Framer — eliminates copy-paste workflow

    When a developer needs to edit Framer components in their preferred editor without the copy-paste dance

    bash
    framer-pp-cli code-pull HeroSection -o hero.tsx && vim hero.tsx && framer-pp-cli code-push hero.tsx --name HeroSection
Migration automation
  • migrate-scrape — Planned stub for scraping a site into a Framer migration plan

    Do not use for production migration planning yet; the command reports that this feature is planned

    bash
    framer-pp-cli migrate-scrape https://old-site.com --depth 3 --dry-run --json
  • assets upload — Upload a directory of images and auto-bind them to CMS items by filename-to-slug matching

    When an agent needs to upload dozens of images and link them to the right CMS records in one operation

    bash
    framer-pp-cli assets upload --dry-run --json
  • i18n-push — Planned stub for syncing translations between standard i18n formats and Framer localization

    Do not use for production translation sync yet; the command reports that this feature is planned

    bash
    framer-pp-cli i18n-push translations.csv --format csv --dry-run
  • redirects-generate — Planned stub for generating redirect maps from an old sitemap

    Do not use for production redirect generation yet; the command reports that this feature is planned

    bash
    framer-pp-cli redirects-generate --old-sitemap https://old-site.com/sitemap.xml --json
  • styles-import — Import CSS variables or Tailwind config as Framer color and text styles — no manual recreation

    When porting a site with an existing design system, this eliminates hours of manual style recreation

    bash
    framer-pp-cli styles-import --from tailwind.config.js --json

HTTP Transport

This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.

Command Reference

The shipped binary exposes a bridge-flattened surface: the primary live operations are single leaf commands (no list/preview/deploy subcommands), while CMS, nodes, and a handful of others keep nested subcommands. Every command below exists in the binary — verify any of them with framer-pp-cli <command> --help.

Live / bridge commands

These talk to the Framer Server API through the Node.js bridge. They require FRAMER_API_KEY and FRAMER_PROJECT_URL.

publish — Create a preview deployment, then optionally promote to production. Single command (no preview/deploy subcommands); pass --yes to auto-deploy.

  • framer-pp-cli publish — Preview, print the URL + deployment ID, prompt to deploy
  • framer-pp-cli publish --yes — Non-interactive: auto-deploy to production

changes — List added, removed, and modified paths since last publish (single command, no subcommands).

  • framer-pp-cli changes — Show changed paths as a table or JSON

pages — List pages from the live project (single command, no subcommands).

  • framer-pp-cli pages — List all pages

nodes — Canvas node operations.

  • framer-pp-cli nodes get <id> — Get a node by ID with all attributes
  • framer-pp-cli nodes children <id> — List children of a node
  • framer-pp-cli nodes set <id> — Set attributes on a node
  • framer-pp-cli nodes move <id> — Move a node to a new parent / reorder by index
  • framer-pp-cli nodes clone <id> — Clone a node
  • framer-pp-cli nodes create-frame — Create a new frame node on the canvas
  • framer-pp-cli nodes remove <id> — Remove a node from the canvas

assets — Image asset upload.

  • framer-pp-cli assets upload — Upload images to Framer and get back asset URLs

code — Code file management (live).

  • framer-pp-cli code list — List all code files in the project
  • framer-pp-cli code get <id> — Get a code file's content

components — Component operations.

  • framer-pp-cli components add — Add a code component instance to the canvas by URL or name

redirects — URL redirect management (live).

  • framer-pp-cli redirects list — List all project redirects
  • framer-pp-cli redirects add --from /old --to /new — Add a redirect

collections — List CMS collections directly from the Framer API (live).

  • framer-pp-cli collections — List collections with fields and item counts

items — List CMS items in a collection (live).

  • framer-pp-cli items — List items in the specified collection

cms-fields — Add, remove, or reorder collection fields.

  • framer-pp-cli cms-fields --collection-id <id> — Manage a collection's fields

fonts — Font management.

  • framer-pp-cli fonts — List all available fonts with weights and styles

project — Framer project management.

  • framer-pp-cli project get — Get project name, ID, and metadata
  • framer-pp-cli project user — Get current authenticated user info

sync — Sync all Framer project data into the local store (single command).

  • framer-pp-cli sync — Pull collections, items, pages, code, etc. into local SQLite

doctor — Verify the live API connection via the Node.js bridge.

  • framer-pp-cli doctor — Check Node, the framer-api bridge, and connectivity
Show full SKILL.md (976 more words)Show less
Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

bash
framer-pp-cli which "<capability in your own words>"

which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.

Hand-written Extensions

These commands are declared by the spec author and require separate hand-written wiring; the generator does not emit Cobra registration for them. They are listed here for discoverability and are intentionally outside ## Command Reference so the verify-skill unknown-command check does not treat them as generator-owned paths.

  • framer-pp-cli dashboard — Multi-project status dashboard showing stale CMS, unpublished changes, and collection health
  • framer-pp-cli snapshot — Take a full structural snapshot of the current project into local SQLite
  • framer-pp-cli diff <snapshot_a> <snapshot_b> — Diff two project snapshots to see structural changes over time
  • framer-pp-cli migrate-scrape <url> — Scrape an existing website to generate a Framer migration manifest (currently a stub)
  • framer-pp-cli cms-sync <source_file> — Sync CMS content from CSV or JSON with dry-run preview
  • framer-pp-cli cms-schema-diff <schema.yaml> — Compare a local CMS schema definition against live Framer collections
  • framer-pp-cli cms-validate — Find broken collection references, orphan items, and circular refs across CMS
  • framer-pp-cli styles-import <file> — Import CSS variables or Tailwind config as Framer color and text styles (local preview/dry-run)
  • framer-pp-cli code-push <file> — Push a local TSX/JS file or preview the change with --dry-run
  • framer-pp-cli code-pull <code_file_id> — Pull a Framer code file from the local store to a local TSX file
  • framer-pp-cli redirects-generate — Planned stub for redirect map generation
  • framer-pp-cli i18n-push <translations_file> — Planned stub for Framer localization sync

Recipes

Bulk import blog posts from CSV
bash
framer-pp-cli cms-sync ./posts.csv --collection Blog --dry-run && framer-pp-cli cms-sync ./posts.csv --collection Blog

Preview the import diff first, then commit the changes

Port design tokens from Tailwind
bash
framer-pp-cli styles-import --from tailwind.config.js --json --select name,value

Import your entire Tailwind color palette as Framer styles

Edit a component locally
bash
framer-pp-cli code-pull HeroSection --output hero.tsx

Pull a Framer code file to edit locally, then push back with code-push

Preview planned migration redirects
bash
framer-pp-cli redirects-generate --dry-run --json

Show the current planned-stub response for redirect map generation

Create a preview deployment
bash
framer-pp-cli publish --json

Create a preview deployment and get the shareable URL (add --yes to promote to production)

Auth Setup

Framer uses per-project API keys generated in Site Settings → General. Provide the key and project URL via the environment (see Environment Variables): set FRAMER_API_KEY and FRAMER_PROJECT_URL before any live command. Live commands require Node.js 18+ and the framer-api npm package as a runtime bridge.

To reuse the same flag set across invocations (e.g. a scheduled agent), save a named profile and apply it with --profile <name> — see Named Profiles. For status across multiple synced projects at once, use framer-pp-cli dashboard.

Run framer-pp-cli doctor to verify setup (Node + bridge + connectivity + env vars).

Agent Mode

Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.

  • Pipeable — JSON on stdout, errors on stderr

  • Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:

    bash
    framer-pp-cli changes --agent --select id,name,status
  • Previewable — --dry-run shows the request without sending

  • Offline-friendly — sync/search commands can use the local SQLite store when available

  • Non-interactive — never prompts, every input is a flag

  • Explicit retries — use --idempotent only when an already-existing create should count as success, and --ignore-missing only when a missing delete target should count as success

Response envelope

Commands that read from the local store or the API wrap output in a provenance envelope:

json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

framer-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
framer-pp-cli feedback --stdin < notes.txt
framer-pp-cli feedback list --json --limit 10

Entries are stored locally at ~/.framer-pp-cli/feedback.jsonl. They are never POSTed unless FRAMER_FEEDBACK_ENDPOINT is set AND either --send is passed or FRAMER_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.

Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.

Output Delivery

Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:

SinkEffect
stdoutDefault; write to stdout only
file:<path>Atomically write output to <path> (tmp + rename)
webhook:<url>POST the output body to the URL (application/json or application/x-ndjson when --compact)

Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

framer-pp-cli profile save briefing --json
framer-pp-cli --profile briefing changes
framer-pp-cli profile list --json
framer-pp-cli profile show briefing
framer-pp-cli profile delete briefing --yes

Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
4Authentication required
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show framer-pp-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

  1. Install the MCP server:
    bash
    go install github.com/mvanhorn/printing-press-library/library/developer-tools/framer/cmd/framer-pp-mcp@latest
  2. Register with Claude Code:
    bash
    claude mcp add framer-pp-mcp -- framer-pp-mcp
  3. Verify: claude mcp list

Direct Use

  1. Check if installed: which framer-pp-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the --agent flag:
    bash
    framer-pp-cli <command> [subcommand] [args] --agent
  4. If ambiguous, drill into subcommand help: framer-pp-cli <command> --help.

© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in cli-skills/pp-framer of mvanhorn/printing-press-library.

Open the folder on GitHubat commit 0fdcc7a

Compare with similar skills

Pp Framer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pp Framer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pp Framer this skillmvanhorn/printing-press-library2.1k—~5.2kAutomated safety check: NotesApache-2.0
Khazix WeChat Article WriterKKKKhazix/khazix-skills21k2 repos~2.9kAutomated safety check: PassMIT
Figurevectorize-io/hindsight47k—~1.9kAutomated safety check: PassMIT
SepiaNanako0129/sepia3k—~3.6kAutomated safety check: PassMIT
Blog Post Draftingluongnv89/claude-howto42k—~2.1kAutomated safety check: PassMIT
Notion To Blogwasp-lang/wasp19k—~922Automated safety check: PassMIT

Similar skills

  • Khazix WeChat Article Writer

    KKKKhazix/khazix-skills

    Writes long-form WeChat official account articles in the personal style of the Khazix account, from briefs, links, PDFs or rough notes, with a topic quality check.

    21k GitHub starsUsed in 2 repos~2.9k tokens
    Writing & ContentAuto-check passed
  • Figure

    vectorize-io/hindsight

    Draw an animated figure (boxes, arrows, moving data) as one self-contained SVG for a GitHub README, PR, issue or blog post.

    47k GitHub stars~1.9k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Sepia

    Nanako0129/sepia

    Make AI-generated writing read as human-written, in fiction and in professional prose.

    3k GitHub stars~3.6k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Blog Post Drafting

    luongnv89/claude-howto

    Guides drafting a blog post from an idea and optional source material: research, brainstorming, outlining and version-tracked drafts, with user approval at each step.

    42k GitHub stars~2.1k tokensUpdated 8 days ago
    Writing & ContentAuto-check passed
  • Notion To Blog

    wasp-lang/wasp

    Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.

    19k GitHub stars~922 tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Blog Post

    nteract/semiotic

    Author a new entry for the Semiotic blog. An agent skill from nteract/semiotic.

    2.7k GitHub stars~3.4k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed

More from mvanhorn/printing-press-library

All 505 skills in this repo
  • Agent Desktop

    mvanhorn/printing-press-library

    Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.

    2.1k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check: notes
  • Gfonts

    mvanhorn/printing-press-library

    Search, browse, and download Google Fonts from the terminal via the gfonts CLI.

    2.1k GitHub stars~574 tokensUpdated yesterday
    Auto-check passed
  • Pp 1688

    mvanhorn/printing-press-library

    The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.

    2.1k GitHub stars~3k tokensUpdated yesterday
    Auto-check: notes
  • Pp Activity Japan

    mvanhorn/printing-press-library

    Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.

    2.1k GitHub stars~2k tokensUpdated yesterday
    Auto-check: notes
  • Pp Adminbyrequest

    mvanhorn/printing-press-library

    Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...

    2.1k GitHub stars~3.3k tokensUpdated yesterday
    Auto-check: notes
  • Pp Agent Capture

    mvanhorn/printing-press-library

    macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.

    2.1k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check: notes

Questions about Pp Framer

What does Pp Framer do?

Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other... Pp Framer is an agent skill from mvanhorn/printing-press-library. Every Framer operation from your terminal — CMS sync, bulk upload, site migration, and a local database no other...

When should I use Pp Framer?

Pp Framer fits situations like: phrases: sync CMS content to Framer; import blog posts into Framer; publish my Framer site; migrate site to Framer.

How do I install Pp Framer in Claude Code?

Run `npx skills add mvanhorn/printing-press-library --skill pp-framer -a claude-code`. Or copy the skill folder (cli-skills/pp-framer in mvanhorn/printing-press-library) into .claude/skills/pp-framer in your project. Claude Code loads it when a task matches its description.

How do I install Pp Framer in Codex?

Run `npx skills add mvanhorn/printing-press-library --skill pp-framer -a codex`. Or copy the skill folder (cli-skills/pp-framer in mvanhorn/printing-press-library) into .agents/skills/pp-framer in your project. Codex loads it when a task matches its description.

Can I use Pp Framer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-framer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-framer, .gemini/skills/pp-framer, .github/skills/pp-framer and .opencode/skills/pp-framer in your project.

What does Pp Framer need to run?

Going by SKILL.md and its folder, Pp Framer needs the command-line tools its instructions call (go, claude and npx) and credentials named FRAMER_API_KEY. Our summary lists: Node.js; A credential in FRAMER_API_KEY. Its frontmatter pre-approves these tools: Read, Bash.

Does Pp Framer access the network?

SKILL.md names 2 domains. In commands or code: old-site.com and framer.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Pp Framer safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Pp Framer use?

Pp Framer is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pp Framer use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pp Framer?

Skills that share tags, products or a category with Pp Framer: Khazix WeChat Article Writer (KKKKhazix/khazix-skills, 21k stars), Figure (vectorize-io/hindsight, 47k stars), Sepia (Nanako0129/sepia, 3k stars) and Blog Post Drafting (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pp Framer?

mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,053 GitHub stars. The repository holds 505 skills in this directory. The repository was last updated on October 7, 2026.

Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.