{"locator":"npm:create-mercato-module","path":"create-mercato-module","npm":"create-mercato-module","github":"open-mercato/create-mercato-module","repoPath":null,"kind":"tool","type":"official","enterprise":false,"title":"create-mercato-module","summary":"CLI that turns one module of your app into an npm package and a GitHub repository, and installs or links modules.","whenToUse":"Use when a module built inside your app should be published for other apps, or you install a module from GitHub.","whenNotToUse":null,"category":"devtools","tags":["cli","publishing","scaffold"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.5.1","preview":null,"publishedAt":"2026-10-14","integrity":"sha512-GxfzZdbYoMaW/tsdRg9GUIqxjLRur2R40cqTc3SioKdZAZFZb6rdqpTt5GUl7VC0O0VLxXFCJ+vws+rzVTATZQ==","installableFrom":"2026-10-14","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.5.1","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.5.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-14","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"}},"install":{"cli":"npx create-mercato-module@0.5.1","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":646,"stars":null},"sigil":{"glyph":"0000000","phase":295,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/create-mercato-module","md":"https://modules.openmercato.com/m/create-mercato-module.md","json":"https://modules.openmercato.com/m/create-mercato-module.json","facts":"https://modules.openmercato.com/m/create-mercato-module/v/0.5.1/facts.json","npm":"https://www.npmjs.com/package/create-mercato-module","repo":"https://github.com/open-mercato/create-mercato-module","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.5.1","0.8":"0.5.1","next":"0.5.1"}},"facts":{"factsVersion":1,"extractor":{"engine":"@open-mercato/cli@0.9.0 extractModuleFacts","factsContractVersion":2,"catalog":"om-modules rentgen 1","durationMs":1},"package":{"locator":"npm:create-mercato-module","name":"create-mercato-module","version":"0.5.1","integrity":"sha512-GxfzZdbYoMaW/tsdRg9GUIqxjLRur2R40cqTc3SioKdZAZFZb6rdqpTt5GUl7VC0O0VLxXFCJ+vws+rzVTATZQ==","source":"npm-tarball","gitRef":null},"gate":{"installable":false,"needsModuleFlag":false,"reason":"Package has no src/ in the tarball.","modules":[]},"kind":"tool","license":{"value":"MIT","kind":"osi","mismatch":false,"sources":{"packageJson":"MIT","licenseFile":"MIT","moduleInfo":null,"integrationTs":null}},"omPeers":{},"dependencies":{"typescript":"6.0.3"},"agentsMd":false,"readmeExcerpt":"<p align=\"center\"><img src=\"https://raw.githubusercontent.com/open-mercato/create-mercato-module/main/.github/readme/open-mercato.svg\" alt=\"Open Mercato logo\" width=\"72\" /></p>\n\n<h1 align=\"center\">Create Mercato Module</h1>\n\n<p align=\"center\"><strong>Build in your app. Publish or install one module.</strong></p>\n\n<p align=\"center\">Turn a custom Open Mercato module into an npm package and a dedicated GitHub repository.<br />One CLI for creating, publishing, installing, and linking modules.</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/create-mercato-module\"><img src=\"https://img.shields.io/npm/v/create-mercato-module?color=b4f372&amp;label=npm\" alt=\"npm version\" /></a>\n  <a href=\"https://nodejs.org/\"><img src=\"https://img.shields.io/badge/node-%E2%89%A524-1b1b1b\" alt=\"Node.js 24 or newer\" /></a>\n  <a href=\"https://github.com/open-mercato/create-mercato-module/actions/workflows/test.yml\"><img src=\"https://github.com/open-mercato/create-mercato-module/actions/workflows/test.yml/badge.svg\" alt=\"Tests\" /></a>\n  <a href=\"https://github.com/open-mercato/create-mercato-module/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-bc9aff\" alt=\"MIT license\" /></a>\n</p>\n\n```bash\nnpx create-mercato-module init visits\n# Build your feature in src/modules/visits.\nnpx create-mercato-module publish visits\n```\n\nYour application is the development workspace. This tool creates a portable package from **one selected module**, including its sources, compiled code, translations, and migrations. Publish it to npm, optionally give it a dedicated GitHub repository, and install it in another Open Mercato app.\n\n**Already built the module?** Skip `init` and go straight to [`publish`](#publish-an-existing-module).\n\n<p align=\"center\"><a href=\"#quick-start\">Quick start</a> · <a href=\"#publish-an-existing-module\">Existing modules</a> · <a href=\"#in-an-open-mercato-cloud-sandbox\">Cloud sandboxes</a> · <a href=\"#preview-before-you-publish\">Dry run</a> · <a href=\"docs/guide.md#command-reference\">Commands</a> · <a href=\"https://docs.openmercato.com/\">Docs</a> · <a href=\"https://discord.gg/f4qwPtJ3qA\">Discord</a></p>\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/open-mercato/create-mercato-module/main/.github/readme/module-flow.svg\" alt=\"Develop visits in your Open Mercato app, package only that module, then publish to npm and an optional dedicated GitHub repository.\" width=\"100%\" /></p>\n\n## Quick start\n\nYou need **Node.js 24+, Yarn 4, and Docker**. On Windows, use WSL2. Already inside an installed app or Cloud sandbox? Skip step 1.\n\n### 1. Create an Open Mercato app\n\n```bash\nnpx create-mercato-app@develop my-app --preset empty\ncd my-app\ncp .env.example .env\ndocker compose up -d\nyarn install\n```\n\nFollow the scaffold prompts to choose your AI coding tools. The `develop` channel provides the framework version used for this tool's standalone installation checks. See the [Open Mercato installation guide](https://docs.openmercato.com/installation) for setup details.\n\n### 2. Create and build your module\n\n```bash\nnpx create-mercato-module init visits\nyarn setup\n```\n\n`init` creates `src/modules/visits`, registers it as `@app`, and runs generation. `yarn setup` initializes your new app and starts its development server; leave it running. Open `/backend/visits` using the app credentials printed in the terminal, then build your feature in `src/modules/visits`.\n\nThe scaffold is a starting point: one page and its translations. From here you will probably want a coding agent to build the module out. The app already carries agent instructions (`AGENTS.md`) for the tools you chose in step 1, so open the app in your agent once `yarn setup` is running and describe the feature, for example: \"In `src/modules/visits`, add a Visit entity with a list page and a create form.\" Keep the dev server running so you can check each change at `/backend/visits`.\n\nIf your app is already initialized and running, use only `init` and continue with it","modules":[],"coverage":{"routesAuthResolved":1,"integrationTs":"absent"},"diagnostics":["No src/ in the tarball: anatomy is not available."]},"receipts":[],"rules":[{"id":"LST-1","pass":true,"detail":"Descriptor is valid."},{"id":"LST-2","pass":true,"detail":"Stable version exists and is not deprecated."},{"id":"LST-3","pass":true,"detail":"Kind tool read from package.json."},{"id":"LST-4","pass":true,"detail":"License: MIT."},{"id":"LST-5","pass":true,"detail":"No known malware or open critical advisory."},{"id":"LST-6","pass":true,"detail":"Name reviewed at merge."},{"id":"VER-1","pass":false,"detail":"Receipt on 0.9: skipped."},{"id":"VER-2","pass":true,"detail":"Fits statically on 0.9: ok."},{"id":"VER-3","pass":true,"detail":"Supply chain: ok."},{"id":"VER-4","pass":true,"detail":"No lint errors."},{"id":"VER-5","pass":true,"detail":"Tarball repository.url matches the descriptor."}],"maintainers":["piotrkarwatka"]}
