MainSDK
Search⌘K
How-to

Publish a driver to the marketplace

Run conformance for every contract version your driver claims, submit it, and see how builders find it by interface, region and capability.

Planned for 1.2

Status Status is where the work is: Planned (in a milestone, not started), Building (tickets in progress), Preview (usable, may change), then the stability it ships at.

Stability The promise an interface ships with.

  • Stable Follows semantic versioning; breaking changes need a new major, 12 months of overlap and a codemod.
  • Beta Usable in production; may change before it becomes stable.
  • Experimental May change or go away; needs an explicit opt-in in main.yaml.
Stability levels
Updated 2026-10-28

You will publish a driver and see what builders see. Listing and installing are free, and every listed driver stays open source (Apache-2.0). It takes about 20 minutes.

You need

1. Publish

bash
npx mainsdk driver publish ./acme-mail --implements email@^1.2

It runs the conformance suite for email 1.2, 1.3 and 1.4. A version with a failing test is shown as not listed; the passing ones are listed. If every version fails, nothing is listed (MAIN-DRIVER-0002). The submission is written to .mainsdk/marketplace/submission.json. MainSDK reruns the reference harness in the US, EU and India before it lists the driver, and the numbers you see on the page come from those runs, never from your claim.

2. What builders see

bash
npx mainsdk driver search email --region in --capability attachments
npx mainsdk driver info acme-mail

A listing shows conformance per contract version, p50 and p99 per region, overhead, the capability profile, the publisher level and ratings. A latency 20 percent worse than the previous release is flagged on the page. The publisher level follows the verified developer level and drops when a record expires or an advisory stays open more than 14 days.

3. Ratings and revocation

Only verified developers whose project runs the driver can rate it, and each rating shows the version used. A revoked driver is delivered as a signed TUF update and npx mainsdk check warns in every app that uses it, naming the driver and the advisory (MAIN-DRIVER-0006).

Check it worked

Run npx mainsdk driver info <your driver> once the marketplace lists it. Until then driver publish --json shows each contract version and whether it passed.

Was this page helpful?

↑↓ moveEnter openEsc close

Not decided yet