Add 'FinalStop' hook that fires only once after all processing is complete
Resolved 💬 3 comments Opened Jul 24, 2025 by ras434 Closed Oct 24, 2025
Description:
Currently, the Stop hook can fire multiple times during a single Claude response, presumably when there are multiple processing stages. This makes it difficult to trigger actions that should only run once after Claude has completely finished responding.
Current behavior:
- The
Stophook fires "when the main Claude Code agent has finished responding" - In practice, this can trigger multiple times in a single response
Requested feature:
Add a new hook type (e.g., FinalStop or ResponseComplete) that:
- Fires exactly once per Claude response
- Only triggers after all processing is complete and Claude is waiting for the next user input
- Does not fire on user interrupts (similar to current
Stophook behavior)
Use case:
This would be useful for:
- Playing a notification sound once when Claude finishes
- Running cleanup scripts after complex operations
- Triggering external integrations that should only run once per response
- Logging/analytics that need to capture complete responses
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗