# Bring your own hook: a 5-line PostToolUse template calling sonar analyze agentic

DevFeed: [Bring your own hook: a 5-line PostToolUse template calling sonar analyze agentic](<https://devfeed.tech/articles/bring-your-own-hook-a-5-line-posttooluse-template-calling-sonar-analyze-agentic-50223.md>)

Original publisher: [Read original article](<https://www.sonarsource.com/blog/bring-your-own-hook/>)

Author: Prasenjit Sarkar

Published: 2026-08-24T13:00:00Z

Content type: tutorial

Language: en

Sources: [Sonar Blog](<https://devfeed.tech/sources/sonar-blog.md>)

Topics: [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Code](<https://devfeed.tech/topics/code.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ci](<https://devfeed.tech/topics/ci.md>), [hooks](<https://devfeed.tech/topics/hooks.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding-agents](<https://devfeed.tech/tags/ai-coding-agents.md>), [ai-generated-code](<https://devfeed.tech/tags/ai-generated-code.md>), [bash](<https://devfeed.tech/tags/bash.md>), [bash-hook-script](<https://devfeed.tech/tags/bash-hook-script.md>), [ci](<https://devfeed.tech/tags/ci.md>), [ci-grade-feedback](<https://devfeed.tech/tags/ci-grade-feedback.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [claude-code-hooks](<https://devfeed.tech/tags/claude-code-hooks.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [code-verification](<https://devfeed.tech/tags/code-verification.md>), [developer-guide](<https://devfeed.tech/tags/developer-guide.md>), [exit-code-51](<https://devfeed.tech/tags/exit-code-51.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [json](<https://devfeed.tech/tags/json.md>), [posttooluse-hook](<https://devfeed.tech/tags/posttooluse-hook.md>), [sonar-analyze-agentic](<https://devfeed.tech/tags/sonar-analyze-agentic.md>), [sonar-vortex](<https://devfeed.tech/tags/sonar-vortex.md>), [sonarqube](<https://devfeed.tech/tags/sonarqube.md>), [sonarqube-agentic-analysis](<https://devfeed.tech/tags/sonarqube-agentic-analysis.md>), [sql-injection](<https://devfeed.tech/tags/sql-injection.md>), [static-analysis](<https://devfeed.tech/tags/static-analysis.md>), [taint-analysis](<https://devfeed.tech/tags/taint-analysis.md>)

## AI overview

A tutorial for configuring a minimal Claude Code PostToolUse hook that runs SonarQube Agentic Analysis on files after they are edited. It explains the required SonarQube setup, JSON input, exit-code behavior, and analysis depth.

## Source excerpt

Set up a minimal SonarQube Agentic Analysis hook in Claude Code with five lines of Bash and understand how exit codes control feedback.