Workbranch › Handleidingen

Handleiding

Hooks gebruiken in Claude Code

Je wilt dat iets elke keer gebeurt, zoals een bestand opmaken nadat Claude het heeft bewerkt of een seintje als Claude op je wacht, zonder te hopen dat Claude het onthoudt. Hooks doen precies dat. Deze handleiding legt uit wat ze zijn, loopt een eerste hook met je door en laat zien waar je ze neerzet.

Bijgewerkt 30 oktober 2026

Kort antwoord: een hook is een shellcommando dat Claude Code automatisch op een vast moment uitvoert, bijvoorbeeld voordat een tool draait, nadat een bestand is bewerkt of als Claude je input nodig heeft. Je voegt hooks toe onder een sleutel hooks in een instellingenbestand zoals ~/.claude/settings.json (alle projecten) of .claude/settings.json (één project), en typt daarna /hooks om te controleren of Claude Code ze ziet.

De namen van events, bestandslocaties en het gedrag hieronder komen uit de documentatie van Anthropic over Claude Code van oktober 2026. Claude Code wordt vaak bijgewerkt, dus voer claude update uit als er iets ontbreekt.

Wat hooks zijn en waarom ze helpen

Instructies in een prompt of een CLAUDE.md-bestand zijn suggesties: Claude volgt ze meestal, maar beslist zelf. Een hook is anders. Claude Code voert je commando zelf uit zodra het event plaatsvindt, dus de actie is deterministisch. Typische toepassingen uit de handleiding van Anthropic:

Enkele van de meestgebruikte events zijn SessionStart (een sessie begint of wordt hervat), UserPromptSubmit (je verstuurt een prompt), PreToolUse (vóór een toolaanroep; kan die blokkeren), PostToolUse (nadat een toolaanroep is gelukt), Notification, Stop (Claude is klaar met antwoorden), PreCompact en SessionEnd. De volledige lijst in de hooks-referentie is veel langer.

Je eerste hook instellen: een melding op je bureaublad

Dit voorbeeld, gebaseerd op het stappenplan van Anthropic, waarschuwt je op macOS zodra Claude Code je aandacht nodig heeft.

  1. Open ~/.claude/settings.json in een teksteditor. Maak het bestand aan als het niet bestaat.
  2. Voeg een object hooks toe met een vermelding Notification. Daarin komt een lijst met matchergroepen; elke groep heeft een matcher (laat die als lege tekenreeks staan om bij elke melding af te gaan) en een lijst hooks met één item van "type": "command".
  3. Stel het commando in op osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'. Op Linux gebruikt het voorbeeld van Anthropic in plaats daarvan notify-send. Vergeet niet de binnenste dubbele aanhalingstekens in JSON te escapen.
  4. Heeft het bestand al een sleutel hooks, voeg Notification dan toe naast de bestaande events in plaats van het hele object te vervangen.
  5. Typ in Claude Code /hooks. De hooks-browser zou je nieuwe hook onder Notification moeten tonen. Druk op Esc om terug te gaan.
  6. Vraag Claude om iets waarvoor toestemming nodig is en ga naar een ander venster. Er zou een melding moeten verschijnen.

Wil je dat de hook alleen bij sommige meldingen afgaat, stel de matcher dan in op een type zoals permission_prompt (een toestemmingsvraag wacht al zo'n zes seconden) of idle_prompt (Claude is klaar en je hebt ongeveer een minuut niets getypt).

Een tweede voorbeeld: bestanden opmaken na bewerkingen

Voor een projecthook zet je de configuratie in .claude/settings.json in de hoofdmap van het project. Gebruik het event PostToolUse met de matcher Edit|Write, zodat hij alleen draait na tools die bestanden bewerken. Het voorbeeldcommando van Anthropic leest het bewerkte pad uit de JSON die Claude Code via standaardinvoer doorgeeft en geeft het aan Prettier: jq -r '.tool_input.file_path' | xargs npx prettier --write. Daarvoor moet jq geïnstalleerd zijn. Een geslaagde hook toont niets in het gesprek; je ziet alleen dat het bestand opnieuw is opgemaakt.

Waar hooks worden ingesteld

LocatieGeldt voorGedeeld?
~/.claude/settings.jsonAl je projectenNee, alleen je eigen computer
.claude/settings.jsonEén projectJa, kan worden gecommit
.claude/settings.local.jsonEén projectNee, blijft buiten git
Beheerde beleidsinstellingenDe hele organisatieIngesteld door beheerders
De hooks/hooks.json van een pluginZolang de plugin aanstaatMeegeleverd met de plugin
Frontmatter van een skillDe rest van de sessie nadat de skill is aangeroepenIn het skillbestand
Frontmatter van een subagentZolang die subagent draaitIn het subagentbestand

Wil je hooks uitschakelen, zet dan "disableAllHooks": true in een instellingenbestand. Hooks uit beheerde instellingen blijven draaien, tenzij het daar ook is ingesteld.

Hoe een hook antwoordt

Als een event plaatsvindt, stuurt Claude Code de details ervan als JSON naar de standaardinvoer van je commando. Je commando antwoordt met zijn exitcode:

Voor fijnere controle eindig je met exit 0 en schrijf je in plaats daarvan een JSON-object. Kies per hook één aanpak.

Goed om te weten

Als het niet werkt

Houd bij wat elke sessie openlaat

De Workbranch-plugin voor Claude Code gebruikt een samenvatting bij de start van een sessie: in een map die aan een Workbranch-project is gekoppeld, laat hij zien wat er nog openstaat als een sessie begint, en als je "save this to Workbranch" zegt, legt hij de taken, beslissingen en open vragen van de sessie vast in dat project. Zie Workbranch voor Claude. Nieuw bij Claude Code? Begin met aan de slag met Claude Code.

Bronnen

Veelgestelde vragen

Kan Claude een hook voor me schrijven?

Ja. Volgens de handleiding van Anthropic kun je de hook die je wilt beschrijven in de prompt van Claude Code en Claude vragen hem aan je instellingen toe te voegen. Controleer het resultaat daarna met /hooks.

Kan een hook Claude ook in bypass mode tegenhouden?

Een PreToolUse-hook die een deny-beslissing teruggeeft, blokkeert de tool in elke permissiemodus, ook in bypassPermissions. Daardoor zijn hooks handig voor regels die mensen niet kunnen uitschakelen door van modus te wisselen.

Zijn er hooks die een model gebruiken in plaats van een script?

Ja. Naast shellcommando's kan een hook een HTTP-verzoek zijn, een aanroep van een MCP-tool, één prompt die door een Claude-model wordt beoordeeld, of een experimentele agent-hook met toegang tot tools.