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

  1. Install a plugin that registers a SessionStart hook (e.g. superpowers@claude-plugins-official)
  2. Disable it in ~/.claude/settings.json:

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

  1. Start a new Claude Code session
  2. The plugin's SessionStart hook 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-official v5.0.6
  • The plugin defines its hook in hooks/hooks.jsonSessionStart

Related

Also reported on the plugin side: https://github.com/obra/superpowers/issues/1022

View original on GitHub ↗

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