Requires Earlier versions do not have
@moxn/context-cli 0.12.0 or newer.marketplaces at all, and 0.11.x reports unknown command. Versions before 0.9 shipped a different context plugin / context skill dev loop against an API that no longer exists — those commands fail with 404 Not Found regardless of the marketplace you point them at. If you see either symptom, upgrade first; nothing else on this page will work until you do.Loop 1: local, no publishing
context marketplaces dev writes the marketplace’s files at a ref into .moxn/dev/<slug>/ and wires that directory into whichever agents you name.
Re-run the same command to refresh. Each materialization records the head sha it came from inside the directory, which is what makes
--check meaningful — and it exits 3 rather than 1, so a script can tell stale from failed.
It serves drafts
Files come from the same read path an agent uses, which resolves live working state first and falls back to committed content. An uncommitted edit — yours, an agent’s tracked change, or a colleague’s in-progress typing — is materialized like anything else. So you can try a change in a real agent without committing or publishing it.--check compares the committed head the tree was built from. It answers “has the branch moved under me?”, not “has someone edited a draft since?” — different questions, and the first is the one that silently invalidates a test.Each agent is wired the way that agent actually works
These are not three spellings of one mechanism:- Claude Code
- Codex
- Cursor
Adds the directory as a marketplace. Skill bodies are re-read mid-session:No restart needed.
Loop 2: published, tracking a branch
Once a change needs to reach other people or machines, publish it and let the agent track the branch. Point the marketplace at a branch, not just a repo:Why a branch install stays fresh
A scaffolded plugin’splugin.json carries no version, so Claude Code falls back to the git sha as the version key. Every Moxn commit therefore propagates, with no manual version bump.
If you do set a version, you own bumping it. What triggers an update differs by agent enough to matter — see Distribution:
- Claude Code — version ladder, falling back to the git sha
- Codex — the version string only. A content change without a bump is stale forever, which is why Moxn stamps a content-derived cachebuster (
0.0.0+codex.<sha7>) into the generated Codex manifest on every publish - Cursor — the git sha
Which loop when
Local while you are writing: it serves drafts, needs no commit, and turns around in seconds. Published once the change has to leave your machine — a teammate testing it, CI, or another device. It costs a commit and a refresh, and it is the only one that proves what a real consumer gets.Both loops need the CLI authenticated — either
MOXN_API_KEY in the environment or a browser sign-in via context login --workspace <slug>. An API key wins when both are present.