Skip to content

Hooks

Hva er en hook?

En hook er en kommando som kjører automatisk når en bestemt hendelse inntreffer i Claude Code: før et verktøykall, etter et verktøykall, når agenten vil gi seg eller når en økt starter. Du kobler kommandoen til hendelsen i innstillingene dine, og fra da av kjører den hver gang.

Legg merke til forskjellen fra alt annet du har lært om å styre agenten: en hook er ikke en prompt. Den er kode som kjører utenfor modellen, og modellen kan ikke velge den bort.

Instruksjoner er anbefalinger, hooks er regler

Du husker fra utviklerpraksis at føringer i prompts er myke begrensninger: anbefalinger, ikke krav. Skriver du «kjør alltid linteren etter endringer» i CLAUDE.md, følger modellen det som oftest, men ikke alltid: en lang økt, en full kontekst eller en ivrig agent kan gjøre at instruksen glipper. En hook gjør oppførselen deterministisk. En hook på PostToolUse kjører formateringen etter hver eneste redigering, og en hook på PreToolUse kan blokkere endringer i .env uansett hvor god grunn modellen mener den har.

Agent-løkken med hooks som bommer på pilene: «PreToolUse» før verktøyet kjøres (kan blokkere handlingen), «PostToolUse» etter resultatet (npm run format) og «Stop» på utgangen mot «Ferdig» (kan nekte agenten å gi seg). CLAUDE.md peker inn i modellen med en stiplet pil merket «anbefaling». Instruksjoner er anbefalinger, hooks er regler.

Dette er faste begrensninger: ytre rammer som agenten ikke kan endre på, bygget inn i selve løkken. Når en handling blir blokkert, er det ikke bare et nei: hooken kan sende en begrunnelse tilbake til modellen, som legges i konteksten og veileder neste forsøk. Dette er både regel og tilbakemelding i ett.

Hvordan bruker du hooks?

Hooks defineres i settings.json, koblet til en hendelsestype og eventuelt et mønster for hvilke verktøy de gjelder:

"hooks": {
  "PostToolUse": [
    {
      "matcher": "Edit|Write",
      "hooks": [{ "type": "command", "command": "npm run format" }]
    }
  ]
}

Exit-koden til kommandoen avgjør hva som skjer: 0 betyr fortsett, mens 2 blokkerer handlingen og sender feilmeldingen tilbake til modellen. Du har allerede sett en hook i bruk: stop-hooken fra Ralph loops-siden kjører når agenten vil gi seg, og kan nekte den å stoppe før suksesskriteriet er nådd.

Husk at hooks er kode som kjører med dine tilganger, hver gang, uten spørsmål. Det er hele poenget, men det betyr også at du bør kjenne innholdet i hookene du tar i bruk, ikke minst når de følger med en plugin. Se Anthropics hooks-dokumentasjon for alle hendelsestypene og detaljene.


Hva er en hook i Claude Code?

Hva skiller en hook fra en instruks i CLAUDE.md?

Du vil være helt sikker på at agenten aldri endrer filene i secrets/-mappen. Hva er det tryggeste?