Publish a Pack

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.

Recommended: /mm-publish skill

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.

$ npm install -g memorymarket
# then ask your agent to install the skills:
Install the MemoryMarket skills from the npm package.
# create the draft on the web:
open https://memorymarket.co/sell/new # click + New pack, copy the pack-id
# then in your agent:
$ /mm-publish --pack-id <uuid>

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.

Editing metadata

Metadata edits never need a republish. Two ways:

  • Web — open /sell/<uuid>/edit. Title, description, tags, cover, supported agents, price, README — all editable.
  • CLImm edit <uuid> --title "New title". Pass any combination of --title, --description, --price, --category, --tags, --agents, --cover-quote, --cover-image-url, --readme.

Shipping a new version

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).

Setting price

Price is set at publish time. The CLI prompts you interactively, or you can pass --price <dollars> directly:

$ mm publish --pack-id <uuid> --price 4.99
[verified] Published: @you/your-slug (v1) at $4.99

Already-purchased entitlements are unaffected by post-publish price changes — buyers paid the price recorded on their purchase row at the time of checkout.

Advanced: raw CLI publish

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.

01
CREATE THE PACK DIRECTORY

You need three things at minimum: a manifest.json, an agents.md routing table, and at least one capability file under memory/.

PACK LAYOUT
my-pack/
manifest.json
agents.md
memory/
operating-principles.md
copy-voice.md (optional)

Minimal manifest.json:

manifest.json
{
"name": "my-pack",
"title": "My Memory Pack",
"version": { "number": 1 },
"layout": "semantic-cluster",
"primitive_format": "inline-tag-v0.4",
"agents_file": "agents.md",
"agents": ["claude-code"],
"capability_files": ["operating-principles.md"],
"signed": false,
"signature": ""
}

See AMP Protocol for how to write agents.md and capability files using the four primitives.

02
GENERATE A KEYPAIR

One-time setup. Your private key stays on your machine. The public key is registered with MemoryMarket when you publish.

$ mm keygen
[verified] keypair written to ~/.memorymarket/keys/
03
SIGN THE PACK

Signs every file with Ed25519 and writes signed: true and the signature into manifest.json. Tampered packs are rejected by the registry on install.

$ mm sign ./my-pack
[verified] signed:true written to manifest.json
04
AUTHENTICATE + PUBLISH

Log in if you haven't already, then publish. The registry runs a server-side credential scan before accepting the pack.

$ mm login
$ mm publish
[verified] credential scan passed
[done] live at memorymarket.co/pack/you/my-pack

Stripe + paid packs

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.

Pricing

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.

After publishing

Your pack is live at memorymarket.co/pack/you/my-pack and installable via:

$ mm install @you/my-pack

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.