Skip to content

Repository files navigation

Reforma plugins

Marketplace plugins for Reforma. Each plugin is a folder with .reforma-plugin/plugin.json. Pack renames .cursor-plugin, .codex-plugin, or .claude-plugin to .reforma-plugin when that folder is missing.

Plugins

namePluginAuthorCategorydescription
bro-modeBro ModeReformaMoodsTurns the agent into a brutally honest bestie who knows the craft, calls out bad ideas, and ships better ones with you.
zen-modeZen ModeReformaMoodsQuiet. Do the work. No status talk — just the outcome.
ship-itShip ItReformaMoodsCuts scope, kills gold-plating, and gets the smallest working change merged.
professorProfessorReformaMoodsGrills the problem first — researches, challenges assumptions, settles every major fork with you — then builds.
founderFounderReformaMoodsRough idea in, MVP out. Picks product, UX, and copy — no workshop. If it flops, it gets deleted.
caveman-modeCavemanReformaMoodsChat like a caveman — savage mouth, real work.
frontend-designFrontend DesignAnthropicPlaybooksGive the UI a visual identity — palette, type, and layout for this product
web-design-guidelinesWeb Design GuidelinesVercelPlaybooksCatch accessibility, form, and focus issues before they ship
react-best-practicesReact Best PracticesVercelPlaybooksKeep the app fast — React and Next.js performance patterns
i18ni18nReformaPlaybooksMultiple languages — translated copy and a language switcher for the app
motion-designMotion DesignLottieFilesPlaybooksTiming, easing, and choreography so motion in the app feels intentional
cosscosscossUIExtra components and particle effects beyond the default shadcn set
flexnativeFlexnativeFlexnativeUIReady-made page blocks and patterns — drop in a section instead of assembling it
magic-uiMagic UIMagic UIUIAnimated marketing pieces — shine, marquee, shimmer, and that kind of polish
tailarkTailarkTailarkUIMarketing landing blocks and pages — heroes, pricing, footers
aceternityAceternityAceternityUIMotion-heavy blocks and visual effects for landing pages
21st21st21stUIA living library of React components, templates, and themes. Add them to the project, or generate new UI.
context7Context7ReformaWorkspaceCurrent docs and examples for the libraries in the project
google-driveGoogle DriveReformaFilesDocs and files in Google Drive — find them, upload drafts, share from the project
notion-workspaceNotionNotion LabsWorkspaceThe team’s Notion — notes, pages, and databases in the project
linearLinearLinearWorkspaceThe issue tracker — bugs, projects, and docs from Linear
dropboxDropboxDropboxFilesFiles in Dropbox — save, share, and pull them into the project
cloudinaryCloudinaryCloudinaryFilesImages and video in the cloud — upload, transform, and deliver them
slackSlackSlackWorkspaceThe team’s Slack — channels, threads, and posts from the project
githubGitHubGitHubWorkspaceGitHub in the project — issues, pull requests, and the repo
clerkClerkClerkAuthDrop-in auth — sign-in, organizations, and user accounts for the app
supabaseSupabaseSupabaseBackendBackend for the app — database, auth, and file storage
stripeStripeStripePaymentsAccept payments, manage customers, and handle subscriptions
higgsfieldHiggsfieldHiggsfield AIMediaAI images and video from one studio
quiverQuiverQuiverAIMediaGenerate SVG and turn pictures into clean vectors
svgatorSVGatorSVGatorMediaAnimated SVG — design the motion and export it into the project
lottiefilesLottieFilesLottieFilesMediaLightweight motion for the app — Lottie animations you can browse and drop in
recraftRecraftRecraftMediaGenerate and edit images with Recraft’s design models
replicateReplicateReplicateMediaImage, video, and audio models — pick one, get the file
heygenHeyGenHeyGenMediaTalking-head videos from a script and an avatar
falfalfalMediaGenerate images, video, and audio from a wide set of models
elevenlabsElevenLabsElevenLabsMediaVoice for the app — generate speech and pick the voice
sentrySentrySentryAnalyticsSee crashes and traces from the live app, then fix them
gsapGSAPGreenSockUITimeline animation, scroll effects, and motion — the GSAP toolkit
motionMotionMotionUIAnimation for the web — springs, gestures, and layout motion
remotionRemotionRemotionUIVideos and motion graphics, written in React
game-creatorGame CreatorOpusGameLabsGamesBrowser games — 2D with Phaser, 3D with Three.js
firebaseFirebaseFirebaseBackendGoogle’s backend — auth, database, and hosting
convexConvexConvexBackendA live backend — the database updates the UI as data changes
neonNeonNeonBackendServerless Postgres — databases, branches, and SQL without running a server
appwriteAppwriteAppwriteBackendAn open-source backend — auth, database, and storage
prismaPrismaPrismaBackendTalk to the database — schema, migrations, and queries in TypeScript
auth0Auth0Auth0AuthSign-in and user accounts, including social login and enterprise identity
workosWorkOSWorkOSAuthSSO and user management for B2B apps — enterprise sign-in without building it
shopifyShopifyShopifyPaymentsThe store in the app — products, orders, and shop data
resendResendResendMessagingSend email from the app — transactional mail and templates
cal-comCal.comCal.comSchedulingLet people book time — event types and a scheduler in the app
calendlyCalendlyCalendlySchedulingScheduling links and a Calendly embed so people book themselves
figmaFigmaFigmaDesignTurn Figma frames into code for the project
google-mapsGoogle MapsGoogleMapsMaps in the app — places, routes, and what’s nearby
mapboxMapboxMapboxMapsCustom maps — your style, search, and location in the app
posthogPostHogPostHogAnalyticsProduct analytics — events, funnels, and session replay
amplitudeAmplitudeAmplitudeAnalyticsProduct analytics — events and charts so you see what people do
sanitySanitySanityCMSStructured content editors can change and the app can render
zapierZapierZapierAutomationConnect the app to thousands of other tools without writing each integration
composioComposioComposioAutomationA hub of app connections — Gmail, Notion, Slack, and the rest of the stack
makeMakeMakeAutomationVisual automations from Make — run scenarios and use the results in the app

Author is plugin.jsonauthor.name when present, else Reforma. Shelf is the parent categories[] entry — plugin.json has no category. description is the marketplace pitch: what the product is for the person installing it. Not MCP verbs, not “needs an API key.”

Repository structure

Root marketplace.json lists plugins under categories[].plugins. source is a path in this repo or a GitHub tree/… URL. "disabled": true skips pack (folder stays) when the hosted MCP only accepts catalog clients (Figma waitlist). OAuth apps you register yourself (Drive, Dropbox, Slack, GitHub) stay enabled — credentials go in IN → OAuth clients, not here.

Local plugins live under marketplace/<category>/<name>/. Origin (first-party vs vendored) is plugin.jsonauthor, not the folder tree. Remote pins stay as GitHub URLs. Optional displayName / description on the listing, plus marketplace/_brand/<name>/logo.* (and logo-small.*), overlay the packed manifest — upstream Cursor plugins often ship repo-slug names and “plugin for Cursor” blurbs.

plugins/
├── marketplace.json # categories + plugin index
├── marketplace/_brand/<name>/ # overlay logos for GitHub pins
├── marketplace/<category>/<name>/
└── scripts/pack/ # snapshot for the API (entry: scripts/pack.ts)

A plugin folder:

marketplace/<category>/<name>/
├── .reforma-plugin/plugin.json
├── assets/logo.svg
├── assets/logo-small.svg # optional 12–14px glyph
└── …convention folders (skills/, rules/, hooks/, …)

interface.brandColor is the hex plate behind the market logo. Optional interface.brandColorDark is the same plate in dark theme. Optional logoSmall is the chip / chat-chrome mark — not the plated card art.

bun install
bun run pack # writes dist/catalog/ and dist/catalog.tar.gz

CI pack (main / dev) uploads logo files to the public CDN and stamps https://cdn-public.reforma.ai/plugins/<sha256>.<ext> into packed plugin.json. Local pack without S3_URL / S3_PUBLIC_URL skips that and is not a source for the API — pull the GitHub catalog-<sha> snapshot instead.

Pack discovers convention folders (skills/, agents/, rules/, hooks/, tools/, mcp.json or .mcp.json) — no path fields needed in source plugin.json. Custom paths are remapped into that layout. If you import a Cursor/vendor plugin, pack also normalizes rules/*.mdc, .cursor/rules/, and instructions/ to plain rules/*.md, renames .mcp.jsonmcp.json, and renames a lone MCP server key to the marketplace plugin name (chatgpt_app_mcpdropbox). HTTP MCP with no tools / resources / resourceTemplates in mcp.json: pack calls initialize, then tools/list, resources/list, and resources/templates/list for whichever are missing. Bodies are not packed. Stdio MCP is not probed. Packed plugin.json keeps hooks: "./hooks/hooks.json" (+ hookOffers) and tools: "./tools.mjs" (+ toolOffers) when those ship. Skills/agents/rules/mcp paths are stripped — catalog and sandbox discover the folders.

Pack bundlestools/*.ts into one tools.mjs (@reforma/plugin-sdk / ai / zod stay external). Export defineTool as the file default; name = filename (Grep.tsGrep); override: true = bare name, shadows.

Push to main or dev publishes a catalog-<7-char-sha> GitHub Release (keeps the newest 10). Reforma API on local/staging tries dev, then main. Prod bakes main.

About

Plugin marketplace for Reforma.ai

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages