Expand description
Per-plugin component + marketplace-manifest scan: the fast path
behind the Extensions page. Pure filesystem reads under the config
dir ($CLAUDE_CONFIG_DIR/~/.claude) and its plugins/ subtree,
settings.json included; no CLI call. The plugin registry
(installed_plugins.json) supplies installed-ness, version and the
auto-dependency marker; settings.json’s enabledPlugins the
enabled state; the marketplace manifests the latest version and LSP
server names; each plugin’s own manifest its declared component
paths.
Structs§
- Extension
Scan - One combined disk scan: everything a refresh needs without a CLI spawn - registry-derived installed entries, manifest-derived available entries and marketplace sources, per-plugin component inventories, and per-marketplace health, over one shared manifest load so a failed manifest surfaces the same error on both halves.
Functions§
- plugins_
root - The plugins subtree of the config dir the
claudeCLI itself resolves:$CLAUDE_CONFIG_DIR, else$HOME/.claude. Both env reads are launch-directory-independent;Nonewhen neither resolves. - scan_
extensions - Scan the plugin cache and marketplace manifests into per-plugin
component inventories, one entry per plugin the registry, a
manifest or the cache knows about. Installed plugins scan their
registry
installPath; uninstalled ones their marketplace clone source. A registry entry with no readable install dir - gone, unreadable, or absent from the entry itself - emits a LoadFailed row carrying its reason rather than disappearing, and so does a marketplace whose manifest could not load.