Publishing (wizard + CLI)
Two paths into the moderation queue — the in-portal wizard and the CLI/SDK — plus versioning and deprecation.
Two ways to submit a listing — same endpoints, same moderation queue underneath. Pick whichever fits how you work.
In-portal wizard (recommended for first-time authors)
Sign in with GitHub at the top of any page, then open the Publish
wizard. It walks you through the three steps in the UI —
no npm install, no token to manage, no CLI to learn. Best for
one-off authors and for getting your first listing live.
CLI / SDK (recommended for repeatable releases + CI)
Use @enclaw/marketplace-sdk when you want a manifest checked into
source control and republished from a CI pipeline. See
Authoring for the SDK install and the
validate/test commands.
enclaw-mp validate ./manifest.json
enclaw-mp test ./manifest.json --input '{"x":"…"}' # skills only
enclaw-mp publish ./manifest.json --api $ENCLAW_API_URL --token $ENCLAW_TOKEN
About
ENCLAW_API_URLandENCLAW_TOKEN: despite the names,--apishould point at the marketplace origin (https://marketplace.enclaw.com), not the customer Enclaw API. The SDK calls the marketplace's own publish endpoints.--tokenis the marketplace JWT issued by GitHub sign-in — grab it from themp_tokencookie in your browser dev-tools after signing in, or bake a CI service-account flow on top of GitHub OAuth.
After submission
- Status flips to
pending_review. Track it under My Listings. - A platform operator approves or rejects from the marketplace's own
admin queue at
/admin— see Reviewing submissions for the full rubric. - On approve → status flips to
approvedand the listing appears in the public catalog. Reviewer notes (if any) are visible to you on the My Listings page.
Versioning
Subsequent releases:
# Bump version in manifest.json, edit changelogMd, then:
enclaw-mp publish ./manifest.json
The new version goes to pending and only becomes the "latest"
once an operator approves. Old approved versions remain installable —
tenants on an old version don't break when you ship a new one. See
Updates + uninstall for what installers see.
Deprecation
If you want to retire a listing (it shouldn't get new installs but existing installs keep working), the publisher (or a platform admin) can hit:
POST /api/marketplace/listings/{id}/deprecate
Existing installs are unaffected; the listing disappears from search.
Worked examples
Real listings already in the marketplace ship with full readmes and payloads — open one to see its rendered metadata:
- CSV → Markdown Table — skill, single JS file with one
runfunction. - Sprint Planner — agent template that pairs with the Linear integration.
- Weekly Product Update — workflow template, cron-triggered, Slack-posting.
- Marketing Launch Crew — squad template, three roles with serial handoff.
Use the Kind dropdown on the catalog landing page to filter to one type, then open any listing to see its manifest fields + readme side-by-side.