What
Plugins are add-ons that extend Claude Code, and they are installed from marketplaces (catalogs of plugins). This release adds checks and record-keeping for directory plugins across installing, loading and updating.
- Reserved names: installing a plugin whose ID falls under a reserved marketplace name now fails with "plugin id under the reserved marketplace name".
- Install records: installed-plugin records gain
directoryRepositoryKey. Install passesisDirectoryPluginanddirectoryPin, and now returnsrecordedAtandmanifestVersion. - Version sources: the version is now resolved as either
installedorcatalog({ kind: "catalog", version }). - Check before re-download: when a plugin's cached files are missing and would be downloaded again, a new check can refuse the load and show its own message.
isDirectoryPluginanddirectoryPinare passed to this step as well. - Updates: plugin updates run the same check and fail with
not_foundif it refuses. - npm marketplaces:
plugin updatefor an npm-marketplace plugin that is not installed now fails withnot_installed("is not installed").
Why
The reserved-name check stops a lookalike marketplace from passing its plugins off under a name meant for an official one. The source check means a plugin whose files have gone missing is not quietly downloaded again if it fails that check. If an install or update now fails with one of these messages, the plugin's name or source is what to look at.