No warning when enabledPlugins references a plugin that is not installed
Summary
When a plugin is configured in project settings (enabledPlugins: true) but not actually installed (missing from installed_plugins.json), Claude Code provides zero feedback that the plugin is not loaded. Skills silently don't exist, tab-completion doesn't work, and there is no error or warning anywhere.
Reproduction
- Configure a project
.claude/settings.jsonwithextraKnownMarketplacesandenabledPluginspointing to a valid plugin - Do NOT run
/plugin installfor the plugin - Start a Claude Code session in the project
- Attempt to use a skill from the plugin:
/my-plugin:my-skill - Result:
Unknown skill: my-plugin:my-skill - Check
/pluginErrors tab: no errors shown - No warning at session start that an enabled plugin is not installed
Expected Behavior
At minimum one of:
- A warning at session start: "Plugin 'my-plugin@my-marketplace' is enabled but not installed. Run
/plugin install my-plugin@my-marketplaceto install it." - An entry in the
/pluginErrors tab indicating the plugin is enabled but not installed - The
Unknown skillerror message should suggest checking if the plugin is installed
Impact
This creates a confusing failure mode where everything appears configured correctly (marketplace registered, plugin enabled, cache populated) but nothing works. Users have no diagnostic path to understand why skills aren't loading. The gap between "enabled" and "installed" is not surfaced anywhere in the UI.
Combined with the fact that extraKnownMarketplaces does not prompt installation (see related issue), this means a team can roll out plugin configuration to dozens of repos and have it silently do nothing for every user.
Environment
- Claude Code CLI (latest)
- macOS
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗