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
- Install a plugin with SessionStart hooks (e.g.,
vercel@claude-plugins-official) - Disable it: set
"vercel@claude-plugins-official": falseinenabledPluginsin~/.claude/settings.json - Confirm it shows
✘ disabledviaclaude plugin list - 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.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗