Plugin hooks (SessionStart) fire even when plugin is disabled in settings
Resolved 💬 2 comments Opened Apr 1, 2026 by owgit Closed May 8, 2026
Bug
Plugins with SessionStart hooks continue to fire even when the plugin is explicitly disabled in ~/.claude/settings.json via enabledPlugins: false.
Steps to reproduce
- Install a plugin that registers a
SessionStarthook (e.g.superpowers@claude-plugins-official) - Disable it in
~/.claude/settings.json:
``json``
"enabledPlugins": {
"superpowers@claude-plugins-official": false
}
- Start a new Claude Code session
- The plugin's
SessionStarthook still executes and injects context
Expected behavior
When a plugin is set to false in enabledPlugins, none of its hooks should execute — including SessionStart.
Actual behavior
The hook runs and injects context as if the plugin were still enabled. The only way to stop it is to uninstall the plugin entirely or manually empty its hooks.json.
Environment
- Claude Code desktop app (macOS)
- Plugin:
superpowers@claude-plugins-officialv5.0.6 - The plugin defines its hook in
hooks/hooks.json→SessionStart
Related
Also reported on the plugin side: https://github.com/obra/superpowers/issues/1022
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗