The mm CLI (memorymarket) is a superset of the upstream @arkzero/amp CLI. It ships the same keygen, sign, verify, install, uninstall, and inspect commands from the protocol, plus MM-specific commands: publish, login, register-key, search, and update. See AMP protocol docs for the protocol-level commands.
The fastest way to publish or install packs is to let your agent drive the CLI through two bundled skills, /mm-publish and /mm-add. The CLI ships them inside the npm package; install them once, then call them from your agent.
/mm-publish handles auth, key setup, scanning your memory files, building a valid pack directory, signing, and publishing — but the draft itself is always created on the web (memorymarket.co/sell/new). The skill takes the pack-id as input. /mm-add walks the install side: pick a pack, choose project or user scope, run mm install, and optionally weave the pack into your knowledge wiki.
The raw CLI reference below is the manual fallback — useful for CI, scripting, or if you prefer to drive each step yourself.
The upstream @arkzero/amp CLI handles the pack format, signing contract, and local install mechanics. memorymarket layers the MemoryMarket registry on top: authentication, key registration, server-side credential scanning, publishing, and update tracking. If you only need to install or verify packs locally, @arkzero/amp is sufficient. If you want to publish to the registry or install from it, use memorymarket. See the protocol docs for the full AMP command reference.
The mm CLI (npm install -g memorymarket, Node.js 18+) covers both registry operations and protocol-level pack work. For the underlying protocol, see the AMP protocol docs.
Authenticate with MemoryMarket. Opens a browser window to complete the flow.
Sign out of MemoryMarket. Revokes the bearer token server-side and deletes the local credentials file at ~/.config/memorymarket/credentials.json. Idempotent — calling it without an active session is a no-op.
Show the currently authenticated user.
Search packs on the registry.
Install a pack from the registry or a local directory. Registry installs require authentication and enforce all signature gates. --agent accepts: claude-code, codex, cursor, windsurf, openclaw. Auto-detected from project markers if omitted.
Pull the latest version of an installed pack from the registry.
Show metadata and tamper status of an installed pack.
Remove an installed pack. Cleans the managed block and deletes the pack directory.
Generate an Ed25519 signing keypair. Stored at ~/.memorymarket/keys/signing.key and ~/.memorymarket/keys/signing.pub by default.
Sign a pack with your private key. Writes signed: true and signature into manifest.json.
Verify a pack's signature. Exits 0 if valid, 1 if tampered or missing.
Link your public key to your MemoryMarket account. Required before your first publish.
Publish a signed pack from the current directory. The registry runs a server-side credential scan before accepting.
You need at minimum a manifest.json, an agents.md routing table, and at least one capability file. Use exactly this manifest shape — the version field must be an object with a number key, and title and agents are required:
Note: "signed" and "signature" are placeholders — mm sign fills them in automatically.
See the AMP protocol docs for how to write agents.md and capability files using the four primitives.
One-time setup. Run mm keygen to create your Ed25519 signing keypair. Your private key stays on your machine — only the public key is registered with MemoryMarket.
One-time setup. mm register-key links your ~/.memorymarket/keys/signing.key.pub to your MemoryMarket account. This is required before your first publish — mm publish will error if no key is registered.
Signs every file with Ed25519 and writes signed: true and the signature into manifest.json. Tampered packs are rejected by the registry on install.
Run mm loginto open a browser window and authenticate. Skip this step if you're already logged in.
Run mm publish from your pack directory. The registry runs a server-side credential scan before accepting the pack.
The pack URL follows the pattern memorymarket.co/pack/you/my-pack (note the /pack/ prefix).
The AMP protocol's 5 validation gates apply on every install. MemoryMarket adds these additional gates before a pack is accepted into the registry:
mm register-key)For quick uploads, use the web wizard at /sell/new. Upload up to 20 files (200KB total — markdown, YAML, JSON, or plain text). Signing is handled server-side.
Free packs publish immediately. Paid packs require a Stripe Express account connected at Settings → Payouts.
Registry install — requires auth, signature verified, all registry gates enforced:
Local install — skips auth and signature check. Use for development and testing:
Your pack is live at memorymarket.co/pack/you/my-pack. Install it with:
Buyers can run mm update to pull the latest version. To release an update, bump version.number in manifest.json, re-sign with mm sign, and re-publish with mm publish.
Beta: 0% platform fee. Volume phase: 2%. GA: 15%. Promotions between phases are announced in advance. During beta, 100% of each sale (minus Stripe's processing fee) goes to the creator.