feat(plugins): add Cursor plugin manifest + refresh marketplace branding#461
Merged
jrusso1020 merged 4 commits intomainfrom Apr 23, 2026
Merged
feat(plugins): add Cursor plugin manifest + refresh marketplace branding#461jrusso1020 merged 4 commits intomainfrom
jrusso1020 merged 4 commits intomainfrom
Conversation
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.
…Gen" title 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.
miguel-heygen
approved these changes
Apr 23, 2026
Re-rasterize docs/favicon.svg with a white background instead of transparent so the symbol reads the same on every marketplace theme (was transparent, which rendered as whatever page bg the viewer had).
This was referenced Apr 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two coupled changes to how HyperFrames shows up in agent marketplaces:
.cursor-plugin/plugin.jsonat the repo root, alongside the existing.codex-plugin/plugin.json. Both pull from the sameskills/andassets/at the root, so this repo becomes the single source of truth for the Codex plugin AND the Cursor plugin (same pattern the Codex submission already uses).assets/logo.pngfor a 1024×1024 symbol-only icon rasterized fromdocs/favicon.svg(the Mintlify docs favicon at hyperframes.heygen.com), and renames the marketplace display title from "HyperFrames" to "HyperFrames by HeyGen" in both manifests.Why
Codex shipped a HyperFrames plugin via openai/plugins#185 and it surfaced two issues once it went live in the marketplace:
skills/at the repo root, the cleanest shape is to register the Cursor plugin in-repo (Cursor's template explicitly supports "single plugin at root") rather than maintain a standalone mirror. Single source of truth: any skill update flows through to both Codex and Cursor consumers via this repo, no mirror to sync.A parallel PR goes out to openai/plugins with the same asset +
displayNameswap, so both marketplace listings stay visually aligned from the first render.How
Five files changed, +43 / -4 lines:
.cursor-plugin/plugin.json— mirrors the existing.codex-plugin/plugin.jsonminus the Codex-specificinterfaceblock (displayName/defaultPrompt/capabilities/brandColor/etc. — Cursor's plugin.schema.json rejects those withadditionalProperties: false) and withauthor.urlmoved to top-levelhomepage(Cursor's author schema is{name, email}only). Points at the sameskills/,assets/logo.png, andLICENSEthe Codex side uses.assets/logo.png— 1024×308 wordmark → 1024×1024 symbol-only icon, transparent background, rasterized fromdocs/favicon.svgviarsvg-convert.assets/icon.png— 512×512 symbol on solid black → 512×512 symbol with transparent background, same source.displayName—.codex-plugin/plugin.json'sinterface.displayNameand.cursor-plugin/plugin.json'sdisplayNameboth bumped from "HyperFrames" to "HyperFrames by HeyGen".Both PNGs are freshly rasterized from the canonical SVG, so the mark is pixel-perfect at 32 / 64 / 128 / 512 / 1024 and renders cleanly against both light and dark marketplace themes.
Test plan
.cursor-plugin/plugin.jsonparses as JSON and validates againstplugin.schema.json(namematches the kebab-case regex;authoronly has{name, email};skillsis a single string pointing at the existingskills/dir).skills/*/SKILL.mdfiles have valid YAML frontmatter withname:anddescription:(required by Cursor's skill contract — unchanged).cursor/plugin-templateand runnode scripts/validate-template.mjsbefore submitting to the Cursor Marketplace.npx hyperframesshell invocation works inside Cursor's sandbox.Once reviewed + merged, the Cursor submission goes via cursor.com/marketplace/publish (or the
kniparko@anysphere.comemail path per the template README), and the openai/plugins branding PR lands independently on OpenAI's review track.— Jerrai