From fb9f11b7c62e4f026e514a462fbf1813ee65c9ef Mon Sep 17 00:00:00 2001 From: James Date: Thu, 23 Apr 2026 20:01:50 +0000 Subject: [PATCH 1/4] feat(plugins): add Cursor plugin manifest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the existing Codex plugin setup (same skills/, same assets/, same LICENSE) for Cursor's marketplace. Drops a .cursor-plugin/plugin.json at the repo root per Cursor's "single plugin at root" convention, and adds a short install note in the README next to the Codex instructions. The Cursor manifest is the Codex one minus the Codex-specific `interface` block (displayName/defaultPrompt/capabilities/etc. — Cursor's plugin.schema.json rejects those with additionalProperties: false) and with `author.url` moved to top-level `homepage` (Cursor's author schema is `{name, email}` only). Single source of truth: any skill update in skills/ flows through to both Codex and Cursor consumers via the same repo, no mirror. --- .cursor-plugin/plugin.json | 37 +++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 .cursor-plugin/plugin.json diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json new file mode 100644 index 00000000..655ae5c2 --- /dev/null +++ b/.cursor-plugin/plugin.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://cursor.com/schemas/cursor-plugin/plugin.json", + "name": "hyperframes", + "displayName": "HyperFrames", + "version": "0.1.0", + "description": "Write HTML, render video. Compositions, GSAP animations, captions, voiceovers, audio-reactive visuals, and website-to-video capture for HyperFrames.", + "author": { + "name": "HeyGen", + "email": "hyperframes@heygen.com" + }, + "publisher": "HeyGen", + "homepage": "https://hyperframes.heygen.com", + "repository": "https://github.com/heygen-com/hyperframes", + "license": "Apache-2.0", + "logo": "assets/logo.png", + "category": "developer-tools", + "keywords": [ + "hyperframes", + "video", + "html", + "gsap", + "animation", + "composition", + "rendering", + "captions", + "tts", + "audio-reactive" + ], + "tags": [ + "video", + "animation", + "design", + "creative", + "workflow" + ], + "skills": "./skills/" +} diff --git a/README.md b/README.md index 63e4f1ce..6ef55cde 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ For Codex specifically, the same skills are also exposed as an [OpenAI Codex plu codex plugin marketplace add heygen-com/hyperframes --sparse .codex-plugin --sparse skills --sparse assets ``` +For Cursor, the same skills are packaged as a [Cursor plugin](./.cursor-plugin/plugin.json) — install from the Cursor Marketplace, or sideload by cloning this repo and pointing **Settings → Plugins → Load unpacked** at the repo root. + #### Try it: example prompts Copy any of these into your agent to get started. The `/hyperframes` prefix loads the skill context explicitly so you get correct output the first time. From fbf1cac425262478e98cf775542ae92268552de4 Mon Sep 17 00:00:00 2001 From: James Russo Date: Thu, 23 Apr 2026 20:10:36 +0000 Subject: [PATCH 2/4] =?UTF-8?q?chore(plugins):=20refresh=20marketplace=20b?= =?UTF-8?q?randing=20=E2=80=94=20favicon=20icon=20+=20"by=20HeyGen"=20titl?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the branding refresh going out to openai/plugins (follow-up to openai/plugins#185) so the Codex sparse-install path and the new Cursor Marketplace submission stay visually aligned. - assets/logo.png: 1024x308 wordmark → 1024x1024 symbol-only icon, rasterized from docs/favicon.svg at 1024 px, transparent background - assets/icon.png: 512x512 symbol on black → 512x512 symbol with transparent background, same source - .codex-plugin/plugin.json: interface.displayName "HyperFrames" → "HyperFrames by HeyGen" - .cursor-plugin/plugin.json: displayName "HyperFrames" → "HyperFrames by HeyGen" No skill content changes; only marketplace-visible branding. --- .codex-plugin/plugin.json | 2 +- .cursor-plugin/plugin.json | 2 +- assets/icon.png | Bin 42811 -> 29328 bytes assets/logo.png | Bin 42018 -> 71177 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 183f278f..c8e705b7 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -24,7 +24,7 @@ ], "skills": "./skills/", "interface": { - "displayName": "HyperFrames", + "displayName": "HyperFrames by HeyGen", "shortDescription": "Write HTML, render video", "longDescription": "Build videos from HTML with HyperFrames. Author compositions with HTML + CSS + GSAP, use the CLI for init/preview/render/transcribe/tts, install reusable registry blocks and components, follow the GSAP animation reference, and turn any website into a video with the 7-step capture-to-video pipeline.", "developerName": "HeyGen", diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index 655ae5c2..94721013 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://cursor.com/schemas/cursor-plugin/plugin.json", "name": "hyperframes", - "displayName": "HyperFrames", + "displayName": "HyperFrames by HeyGen", "version": "0.1.0", "description": "Write HTML, render video. Compositions, GSAP animations, captions, voiceovers, audio-reactive visuals, and website-to-video capture for HyperFrames.", "author": { diff --git a/assets/icon.png b/assets/icon.png index 05a8356a43f5abb76325dcb33be8e23b3356e706..7c60f2a1102e5362173fac39a3be8902c77daf21 100644 GIT binary patch literal 29328 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