General
Plugin catalog
Install plugins from the ccpp.dev catalog, or publish your own versions.
The catalog at ccpp.dev/plugins serves Claude Code marketplaces from the ccpp API. Each namespace has one marketplace; each plugin entry points to an immutable ZIP archive pinned by its SHA-256.
Install
Archive sources need Claude Code 2.1.224 or later. Older versions keep using the Git marketplace
(claude plugin marketplace add CCPP-dev/CCPP).
claude plugin marketplace add https://api.ccpp.dev/v1/marketplaces/ccpp/marketplace.json
claude plugin install cpo@ccpp
claude plugin update cpo@ccppA namespace other than ccpp gives a marketplace named ccpp-<namespace>. Claude Code updates a plugin when the
version of its entry changes; the archive does not pin a version of its own.
The archives hold no ccpp binary, so one archive fits every platform. The plugin's bin/ccpp launcher runs the
ccpp found on PATH: install ccpp first.
Publish
Namespaces belong to an account, not to a username, and an account owns at most three. The ccpp namespace is
reserved for official plugins, published by CI with a service token.
ccpp account login --email you@example.com
curl -X POST https://api.ccpp.dev/v1/namespaces \
-H "authorization: Bearer $(jq -r .token ~/.ccpp/account.json)" \
-H "content-type: application/json" -d '{"slug":"your-name"}'
ccpp marketplace publish --plugin-dir ./my-plugin --namespace your-name --plugin-version 1.0.0The plugin directory holds .claude-plugin/plugin.json whose name is the plugin's slug; leave version out of
it. The API refuses an archive with absolute paths, .., links, encrypted entries, more than 5,000 entries,
more than 50 MiB compressed or 200 MiB unpacked.
A published version never changes: uploading it again answers 409, and so does a concurrent upload of the same
version. Publish a new version instead.
Withdraw a version
curl -X POST https://api.ccpp.dev/v1/plugins/your-name/my-plugin/versions/1.0.0/yank \
-H "authorization: Bearer …" -H "content-type: application/json" -d '{"reason":"leaked token"}'The version stays listed with its reason, its download answers 410, and the marketplace falls back to the highest
remaining version.