A memory pack is a signed directory of typed memory files — your operating principles, style rules, product facts, playbooks. Two paths: the /mm-publish skill (recommended — your agent runs every step), or the raw CLI (full manual control). The web is where you create the draft and edit metadata after publish; the actual sign-and-publish always runs from your machine.
Install the CLI, install the bundled skills, create your draft on the web at /sell/new, then run /mm-publish --pack-id <uuid> in your agent. The skill discovers your existing memory files (CLAUDE.md, AGENTS.md, .cursor rules, knowledge-base, etc.), asks which to include, assembles the pack directory, signs, and publishes into the draft you created. You only confirm decisions — the agent runs every command. Drafts are always created on the web; the skill never creates them.
The skill prompts you for any missing manifest fields (title, description, agents, tags, cover quote) and confirms the price before signing — you pick Free / $0.99 / $2.99 / $4.99 / $7.99 / $9.99 (or a custom $10–$999 if you're a verified creator). After publish, the browser tab on /sell/<uuid>automatically detects the publish and switches to a "Live" confirmation with three buttons: Edit metadata (/sell/<uuid>/edit), Ship new version (/sell/<uuid>/versions), Back to dashboard. Slug is the only locked field.
Metadata edits never need a republish. Two ways:
/sell/<uuid>/edit. Title, description, tags, cover, supported agents, price, README — all editable.mm edit <uuid> --title "New title". Pass any combination of --title, --description, --price, --category, --tags, --agents, --cover-quote, --cover-image-url, --readme.When the pack content actually changes (new memory files, edits to existing ones), bump version.number in manifest.json, add a version.changelog, and run /mm-publish --pack-id <uuid> again. The skill auto-detects that the pack is already published and switches to republish mode (asks for the changelog, skips re-prompting price/title/etc unless you say so).
Price is set at publish time. The CLI prompts you interactively, or you can pass --price <dollars> directly:
Already-purchased entitlements are unaffected by post-publish price changes — buyers paid the price recorded on their purchase row at the time of checkout.
The CLI path gives you full control over the pack structure and signing. Use this if you're building a pack from scratch or want to sign it yourself before submitting.
You need three things at minimum: a manifest.json, an agents.md routing table, and at least one capability file under memory/.
Minimal manifest.json:
See AMP Protocol for how to write agents.md and capability files using the four primitives.
One-time setup. Your private key stays on your machine. The public key is registered with MemoryMarket when you publish.
Signs every file with Ed25519 and writes signed: true and the signature into manifest.json. Tampered packs are rejected by the registry on install.
Log in if you haven't already, then publish. The registry runs a server-side credential scan before accepting the pack.
Free packs publish immediately. Paid packs require a connected Stripe Express account. Set that up at Sell → Onboarding. The CLI surfaces a clear error if you try to publish a paid pack without Stripe Connect.
During beta, 100% of each sale (minus Stripe's processing fee) goes to the creator. The platform fee rises to 2% in the volume phase and 15% at GA. Promotions between phases are announced in advance.
Your pack is live at memorymarket.co/pack/you/my-pack and installable via:
For metadata changes (title, description, price, etc.), use /sell → click Edit on the pack row, or run mm edit <uuid> --title "...". To ship a new version of the pack contents, bump the version in manifest.json, add a changelog, re-sign, and re-publish via /mm-publish or mm publish. Buyers can run mm update to pull the latest version.