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

  1. Install the Vercel plugin (official plugin from claude-plugins-official)
  2. Disable it in ~/.claude/settings.json:

``json
"enabledPlugins": {
"vercel@claude-plugins-official": false
}
``

  1. Open a new session or run /clear
  2. Observe that the Vercel plugin's SessionStart hooks still fire:
  • session-start-seen-skills.mjs
  • session-start-profiler.mjs
  • inject-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-reminder context 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-official v0.40.0

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗