disableAllHooks: true does not suppress Claude Preview builtin plugin Stop callback

Status Closed — duplicate
Maintainer reply None cached
Activity 4 comments · opened Mar 21, 2026 · closed Mar 25, 2026

Bug Description

The Claude Preview builtin plugin's Stop callback fires on every session stop, even when all hooks are explicitly disabled via settings.

Environment

  • OS: Windows 11 Pro 10.0.26100
  • Model: claude-sonnet-4-6

Configuration Applied (all of the following set simultaneously)

~/.claude/settings.json:

{
  "disableAllHooks": true,
  "hooks": {
    "Stop": [],
    "PostToolUse": [],
    "PreToolUse": []
  },
  "enabledPlugins": {
    "Claude Preview@builtin": false
  }
}

.claude/settings.local.json (project level):

{
  "disableAllHooks": true,
  "hooks": {
    "Stop": []
  }
}

Actual Behavior

Every time Claude stops, one of these appears as "Stop hook feedback":

  • [Verification Required] Code was edited while a preview server is running. Follow <verification_workflow> to verify the changes.
  • [Preview Required] Code was edited but no dev server is running. Install dependencies if needed, call preview_start, then follow <verification_workflow>.

Expected Behavior

With disableAllHooks: true and "Claude Preview@builtin": false both set, no Stop hook output should appear.

Notes

The message appears to originate from a binary-level callback in the Claude Preview builtin plugin that bypasses the normal hooks mechanism entirely. No settings file configuration has been able to suppress it.

View original on GitHub ↗

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