Illustration til: Claude Code hooks: automatiser handlinger i dit udviklingsmiljø

Claude Code hooks: automatiser handlinger i dit udviklingsmiljø

Hooks er en af de mest kraftfulde og mindst kendte funktioner i Claude Code. De lader dig automatisk udløse egne scripts og kommandoer, når Claude Code udfører bestemte handlinger — og giver dig fuld kontrol over dit udviklingsmiljø.

Hvad er hooks?

En hook er et shell-script eller en kommando, der kører automatisk når en bestemt hændelse finder sted i Claude Code. Forestil dig det som begivenheds-lyttere for dit udviklingsworkflow: Claude redigerer en fil → din linter kører automatisk. Claude stopper → du får en notifikation.

Hooks giver dig mulighed for at automatisere kvalitetstjek, notifikationer og workflow-skridt uden at du behøver huske at gøre dem manuelt.

De fire hook-typer

Claude Code understøtter fire typer hooks:

  • PreToolUse: kører inden Claude udfører en handling (f.eks. inden den skriver til en fil)
  • PostToolUse: kører efter Claude har udført en handling
  • Notification: kører når Claude sender en notifikation til brugeren
  • Stop: kører når Claude afslutter sin opgave og stopper

Konfiguration i settings.json

Hooks konfigureres i din .claude/settings.json-fil (projektspecifik) eller i ~/.claude/settings.json (global). Strukturen ser sådan ud:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npm run lint --silent"
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification "Claude er færdig" with title "Claude Code"'"
          }
        ]
      }
    ]
  }
}

Konkrete eksempler

Kør tests efter fil-redigering

Sørg for at dit test-suite kører automatisk, når Claude ændrer filer:

{
  "PostToolUse": [
    {
      "matcher": "Write|Edit|MultiEdit",
      "hooks": [{ "type": "command", "command": "npm test -- --passWithNoTests" }]
    }
  ]
}

Send notifikation når Claude stopper

Nyttigt når du sætter Claude til at arbejde og skifter til en anden opgave:

{
  "Stop": [
    {
      "hooks": [{ "type": "command", "command": "say 'Claude er færdig med opgaven'" }]
    }
  ]
}

Log alle tool-kald

Giv dig selv et audit trail af hvad Claude har gjort:

{
  "PostToolUse": [
    {
      "matcher": ".*",
      "hooks": [{
        "type": "command",
        "command": "echo "$(date): $CLAUDE_TOOL_NAME" >> ~/claude-log.txt"
      }]
    }
  ]
}

Sikkerhedshensyn

Hooks kører med dine brugerrettigheder — de kan altså gøre alt, hvad du kan gøre på din maskine. Hold dig til disse principper:

  • Brug read-only operationer i hooks, medmindre du er sikker på effekten
  • Test altid nye hooks i et sikkert testprojekt, inden du bruger dem i produktion
  • Undgå at bruge rm, databasekald eller andre destruktive kommandoer i hooks
  • Hold hook-kommandoer korte og fokuserede — fejl i hooks kan afbryde Claude Code

Hooks er et avanceret værktøj, der betaler sig hurtigt i gentagne workflows. Start med ét enkelt hook (f.eks. en Stop-notifikation) og byg din hook-samling gradvist op.


Udgivet

i

af

Kommentarer

Skriv et svar