marketplaces MCP tool, so an agent connected to Moxn can do it directly, and the same operations exist in the Moxn web app and the context CLI.
1. Create a marketplace
A marketplace exists before it has anywhere to publish to — creating and connecting are separate acts.2. Connect a GitHub repository
You need the Moxn GitHub App installed on the account or org that owns the repo.installations tells you what’s reachable:
An empty repository is fine, and is the normal starting point. Connect returns successfully with no baseline, and the next step fills it.
3. Scaffold, if the repo is empty
.claude-plugin/marketplace.json cannot be parsed — a manifest we cannot read might list plugins, and scaffolding would overwrite it.
The example plugin’s directory defaults to example — pass pluginSlug to name it something else:
4. Read what’s there
tree always reflects current GitHub state — there is no separate sync step.
read_file returns the latest text: live working state first (what someone has open and unsaved, plus any pending suggestions flattened to their accepted text), falling back to committed GitHub content.
5. Edit
Send the full new text of each file. The diff against the current text is computed for you.
Read
notes on every result — that is where anything that did not land is reported.
Nothing here reaches GitHub. Edits are drafts until you commit.
6. Commit — which is publishing
writes, commit publishes whatever is currently drafted — which is what you want after edit.
Every commit flattens pending suggestions to their accepted text and strips comment markers, so published files never contain review markup. The Codex and Cursor manifests are regenerated in the same commit.
Working on a branch
ref: "translations" to edit and commit, and point the dev loop at it with --ref translations.
When it’s ready, open a pull request and merge it — both from Moxn:
pre_merge_report is advisory and gates nothing: unresolved comment threads, any review markup that reached committed bytes, stale vendor manifests, and whether Codex consumers will actually see the change. Review itself stays on GitHub — Moxn has no approvals or required checks.
ref and branch are the same parameter and are interchangeable on every action.Comments stay in Moxn
Comments are margin notes on a draft. They are scoped to the branch they were written on, they do not travel to another branch, and they are never published — committing strips every marker from the bytes on every branch.orphaned when the text it was anchored to is edited away — it is kept and flagged, never dropped.
Component types
Author the Claude layout. The
.codex-plugin/ and .cursor-plugin/ equivalents are generated on every publish — hand-editing them means the next commit overwrites your changes.
Once content is committed you can preview it locally with the dev loop, or see Publish & install for how consumers get it.