0 XP
0
G

Klaar om dit echt te oefenen?

De volledige tekst van deze les staat hieronder, gratis voor iedereen. Zie het als de kaart. Een gratis account voegt het begeleide pad toe: praktische oefeningen, opgeslagen voortgang en elke les die verdergaat waar de vorige ophield. Geen creditcard nodig.

Volgende: Hooks en automatisering

Aanmelden met e-mail

Heb je al een account? Inloggen

Hooks en automatisering

Koppel SessionStart-hooks om context automatisch te laden. Gebruik PreToolUse om gevaarlijke commando's te blokkeren. Voer Claude op cron uit met goedkeuringspoorten.

Hooks zijn commando's die Claude Code uitvoert bij specifieke levenscyclusgebeurtenissen. Configureer ze eenmalig in ~/.claude/settings.json; ze worden automatisch geactiveerd. Hooks dwingen discipline af die je anders zou vergeten: STATE.md laden bij elke sessie, controleren op staged .env-bestanden voordat je commit. De installatie kost 10 minuten. De opbrengst is permanent.

SessionStart wordt geactiveerd zodra een sessie wordt geopend; wat het ook afdrukt, wordt context vóór je eerste bericht:

{

"hooks": {

"SessionStart": [

{

"command": "cat ~/notes/STATE.md ~/notes/MEMORY.md 2>/dev/null || true"

}

]

}

}De || true is belangrijk: verbreek de sessiestart niet als bestanden ontbreken. Houd hooks onder de 50 ms en maak geen netwerkoproepen bij het openen van een sessie. Verse API-gegevens nodig? Voer een cron uit die een lokaal bestand schrijft; laad het bestand in de hook.

Nog vier hook-gebeurtenissen:

Stop: wordt geactiveerd wanneer een sessie eindigt. Gebruik voor herinneringen: "Voordat je sluit: update STATE.md."

PreToolUse: wordt geactiveerd voordat Claude een tool aanroept. Je beveiligingslaag: blokkeer gevaarlijke commando's, log oproepen voor audit trails. Exit 0 staat de oproep toe; exit 2 blokkeert deze.

PostToolUse: wordt geactiveerd nadat een tool is teruggekeerd. Voer een linter uit na het schrijven van een bestand, controleer op RLS-beleid na een SQL-migratie.

UserPromptSubmit: wordt geactiveerd wanneer je op enter drukt. Injecteer context of pas prompt-injectieverdedigingen toe voor externe inhoud.

Een PreToolUse-hook die elke Bash-aanroep blokkeert die rm -rf bevat:

{

"hooks": {

"PreToolUse": [

{

"matcher": "Bash",

"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -q 'rm -rf'; then echo 'GEBLOKKEERD: rm -rf niet toegestaan' >&2; exit 2; fi"

}

]

}

}Het veld matcher richt zich op een specifieke tool. Zonder dit wordt de hook geactiveerd bij elke tool-aanroep. Gebruik matchers om hooks snel en gericht te houden.

Als een hook niet wordt geactiveerd, controleer dan in volgorde:

Syntaxis: geldige JSON? Voer cat ~/.claude/settings.json | python3 -m json.tool uit.

Bestandspad: test de hook-opdracht handmatig in je terminal.

Exitcode: ontbreekt || true?

Snelheid: meer dan 3 seconden? Verplaats het trage deel naar een cron.

Twee productiefouten. Stel een expliciet timeout-veld in op elke hook, zodat het gedrag voorspelbaar blijft. En hooks worden uitgevoerd in een gestripte omgeving, niet je volledige shell: als een hook een omgevingsvariabele nodig heeft (zoals een Slack-token), source dan je .env expliciet in de hook-opdracht. Dit is de meest voorkomende oorzaak van hooks die wel werken in je terminal, maar stilzwijgend falen in Claude Code.

Cron-gestuurde Claude Code. Dezelfde agent kan volgens een schema worden uitgevoerd via claude --headless: een ochtendbriefing om 7 uur 's ochtends gepost naar Slack, social media monitoring elke 4 uur, een implementatiegezondheidscontrole elke 30 minuten.

Het kritieke patroon: goedkeuringspoorten. De cron stelt op, jij beoordeelt, het systeem verstuurt. Een autonome agent die uitgaande berichten verstuurt zonder beoordeling, zal uiteindelijk iets verkeerds versturen: verkeerde sjabloon, verkeerd publiek, verkeerde timing. De architectuur: agent ontdekt en stelt op, mens beoordeelt en geeft vrij. Implementatie: de agent schrijft concepten naar een Slack-kanaal; niets gaat naar buiten totdat een mens het goedkeurt. Dit schaalt naar tientallen agenten zonder dat er één op hol slaat.

Bouw het hook-systeem in fasen:

Fase 1 (week 1-2), laad hooks: SessionStart laadt STATE.md en MEMORY.md; Stop herinnert je eraan om te updaten.

Fase 2 (week 3-4), beveiligingshooks: PreToolUse blokkeert hard voor onomkeerbare commando's (force-push naar main, DROP TABLE, rm -rf).

Fase 3 (maand 2+), audit hooks: PostToolUse controleert wat er daadwerkelijk is geschreven: SQL-migraties die RLS-beleid missen, nieuwe API-routes die rate limiting missen, geheimen in elk geschreven bestand.

PostToolUse is sterker dan PreToolUse voor audits, omdat het de geschreven bestandsinhoud leest, de grondwaarheid, niet alleen wat Claude bedoelde. Bouw hooks rond je werkelijke faalmodi: twee hooks die echte problemen oplossen, zijn beter dan tien theoretische.

SessionStart laadt context, Stop herinnert, PreToolUse blokkeert gevaarlijke commando's (exit 2), PostToolUse controleert wat er is geschreven, en cron plus goedkeuringspoorten verandert Claude in een gepland systeem met een mens op de verzendknop. Begin met één hook: cat ~/notes/STATE.md 2>/dev/null || true in SessionStart. Voeg elke maand de volgende fase toe.

Nightschool AI is een onafhankelijk leerplatform en is niet gelieerd aan, onderschreven door of gesponsord door Anthropic. Claude is een handelsmerk van Anthropic, PBC. Op zoek naar de officiële Claude Academy van Anthropic? Die vind je op academy.claude.com.

Hooks en automatisering: De Practitioner-setup | Nightschool AI