For developers
Publish an extension
Extensions are published from the CLI with a user token. The registry validates the version, refuses to overwrite history, and serves the archive to anyone entitled to it.
What your package must contain
These fields drive everything a visitor sees on the marketplace — name, summary, category, price and whether the extension is part of Premium.
| Field | Required | Used for |
|---|---|---|
| appId | Required | Unique id in the registry and in every install command |
| appName | Required | The name shown on the card and detail page |
| version | Required | Semantic version — must be higher than the latest on the tag |
| description | Required | The long description, taken from README.md |
| changelog | Required | The release history, taken from CHANGELOG.md |
| category | Required | Which category the extension is filed under |
| appTags | Optional | Filter chips; falls back to keywords |
| price | Optional | Price in USDT for paid extensions |
| forSale | Optional | Whether the extension is sold at all |
| isAvailableBySubscription | Optional | Include the extension in the Premium collection |
| icon | Optional | Card and detail icon — icon.svg in the root wins over this |
| appSupport | Optional | Issue tracker link shown in the Support block |
| mmDependencies | Optional | Other registry extensions this one needs |
Publishing rules
-
1
Versions are semantic and final
-
2
Each tag only moves forward
-
3
main is the default channel
How users install your builds
- Stable — the default
msc install --appId=your-extension- Staging, falling back to stable
msc install --appId=your-extension --channel=staging- Highest version across every channel
msc install --appId=your-extension --channel=any- An exact version
msc install --appId=your-extension --version=1.4.2
Free, paid, or part of Premium
Two flags in your package.json decide how your extension is sold. They are not exclusive — an extension can be sold outright and belong to Premium at the same time.
No license needed
One-time purchase
Included in the subscription
Get a publisher token
Publishing needs a user token tied to your account. Write to us with the appId you want to claim and what the extension does.