Disabled plugins still inject context via SessionStart and UserPromptSubmit hooks

Resolved 💬 3 comments Opened Mar 18, 2026 by vvladbyy Closed Mar 21, 2026

Plugins set to "enabledPlugins": false in ~/.claude/settings.json continue to fire their SessionStart and UserPromptSubmit hooks, injecting large amounts of context into the conversation window.

Steps to reproduce

  1. Install a plugin with SessionStart hooks (e.g., vercel@claude-plugins-official)
  2. Disable it: set "vercel@claude-plugins-official": false in enabledPlugins in ~/.claude/settings.json
  3. Confirm it shows ✘ disabled via claude plugin list
  4. Start a new session or run /clear

Observed behavior

  • The plugin's SessionStart hook fires and injects its full context (in the case of vercel, a ~15KB knowledge graph)
  • UserPromptSubmit hooks also fire on every message, matching keywords and demanding skill invocations
  • This fills ~15-20% of the context window before the user says anything

Expected behavior

A disabled plugin should be completely silent — no hook execution, no context injection.

Environment

  • Claude Code (CLI)
  • macOS Darwin 23.0.0
  • Plugin: vercel@claude-plugins-official (version 87b8d0f6bb0a)

Workaround

Full uninstall via claude plugin uninstall <name> — but this forces reinstall when the plugin is needed again, instead of a simple enable/disable toggle.

View original on GitHub ↗

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