Disabled plugins still execute SessionStart hooks
Resolved 💬 3 comments Opened May 15, 2026 by SmartBuild-ai Closed May 19, 2026
Bug Description
When a plugin is set to enabledPlugins: false in ~/.claude/settings.json, its hooks still execute on every session start (startup, resume, clear, compact).
Steps to Reproduce
- Install the Vercel plugin (official plugin from
claude-plugins-official) - Disable it in
~/.claude/settings.json:
``json``
"enabledPlugins": {
"vercel@claude-plugins-official": false
}
- Open a new session or run
/clear - Observe that the Vercel plugin's
SessionStarthooks still fire:
session-start-seen-skills.mjssession-start-profiler.mjsinject-claude-md.mjs
Expected Behavior
When enabledPlugins is set to false for a plugin, all plugin functionality should be disabled, including hooks, skills, commands, and agents.
Actual Behavior
Skills and commands appear to be disabled, but hooks defined in hooks/hooks.json within the plugin cache continue to execute. This means:
- The disabled plugin still injects
system-remindercontext into conversations - The disabled plugin still runs profiler scripts and telemetry (
trackDauActiveToday) - The disabled plugin can override or interfere with other plugins' hooks
Impact
- Unwanted context injection pollutes the conversation (e.g., Vercel "greenfield" guidance in non-Vercel projects)
- Users who disable a plugin expect it to be fully inactive
- Interferes with other SessionStart hooks (e.g., custom hooks that load project-specific plugins)
Environment
- Platform: Windows 10 Pro
- Claude Code: latest
- Plugin:
vercel@claude-plugins-officialv0.40.0
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗