PostToolUse hooks never fire from the desktop Code-tab surface

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 28, 2026

\PostToolUse\ hooks configured in \settings.json\ do not fire at all when a session runs in the Claude Code desktop app's Code tab (as opposed to the native CLI).

Confirmed via the session's own JSONL transcript, which logs every hook firing as a structured \hook_success\ attachment (\hookName\/\hookEvent\ fields). Across a session with dozens of \Edit\/\Write\ tool calls, the transcript shows real firing records for \SessionStart:startup\, \SessionStart:compact\, \UserPromptSubmit\, \PreToolUse:Bash\, \PreToolUse:Skill\ -- but zero \PostToolUse:Edit\ or \PostToolUse:Write\ records.

\PreToolUse\ fires normally on the same surface; only \PostToolUse\ is affected. The \PostToolUse\ block in \settings.json\ was checked and is structurally valid JSON, matching the shape of the working \PreToolUse\ block, which rules out a config-schema cause.

This is a distinct bug from the known "exit code 2 / stderr swallowed" \PostToolUse\ issue -- that one still runs the hook and its side effects, just loses the block signal. This one is the hook never running at all, and has only been confirmed on the desktop Code-tab surface (not tested against the native CLI).

Environment: Claude Code desktop app, Windows 11, Code tab surface.

View original on GitHub ↗