Workbranch › Guider

Guide

Så använder du hooks i Claude Code

Du vill att något ska hända varje gång, till exempel att en fil formateras efter att Claude har redigerat den eller att du får en signal när Claude väntar på dig, utan att hoppas att Claude kommer ihåg det. Det är precis vad hooks gör. Den här guiden förklarar vad de är, går igenom en första hook och visar var du lägger dem.

Uppdaterad 30 oktober 2026

Snabbt svar: en hook är ett skalkommando som Claude Code kör automatiskt vid en bestämd punkt, till exempel innan ett verktyg körs, efter att en fil har redigerats eller när Claude behöver din input. Du lägger till hooks under nyckeln hooks i en inställningsfil som ~/.claude/settings.json (alla projekt) eller .claude/settings.json (ett projekt), och skriver sedan /hooks för att bekräfta att Claude Code ser dem.

Händelsenamn, filplatser och beteende nedan kommer från Anthropics dokumentation för Claude Code i oktober 2026. Claude Code uppdateras ofta, så kör claude update om något saknas.

Vad hooks är och varför de hjälper

Instruktioner i en prompt eller i en CLAUDE.md-fil är förslag: Claude följer dem oftast, men det är Claude som bestämmer. En hook är något annat. Claude Code kör självt ditt kommando varje gång händelsen inträffar, så åtgärden är deterministisk. Typiska användningar från Anthropics guide:

Några av de mest använda händelserna är SessionStart (en session startar eller återupptas), UserPromptSubmit (du skickar en prompt), PreToolUse (före ett verktygsanrop, och den kan blockera det), PostToolUse (efter att ett verktygsanrop lyckats), Notification, Stop (Claude har svarat klart), PreCompact och SessionEnd. Hela listan i referensen för hooks är mycket längre.

Skapa din första hook: en skrivbordsnotis

Det här exemplet, anpassat från Anthropics genomgång, ger dig en notis i macOS varje gång Claude Code behöver din uppmärksamhet.

  1. Öppna ~/.claude/settings.json i en textredigerare. Skapa filen om den inte finns.
  2. Lägg till ett hooks-objekt med en Notification-post. I den ligger en lista med matcher-grupper; var och en har en matcher (lämna den som en tom sträng för att reagera på alla notiser) och en hooks-lista med ett objekt av typen "type": "command".
  3. Sätt kommandot till osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'. På Linux använder Anthropics exempel i stället notify-send. Kom ihåg att escapa de inre dubbla citattecknen i JSON.
  4. Om filen redan har en hooks-nyckel lägger du till Notification bredvid de befintliga händelserna i stället för att ersätta hela objektet.
  5. Skriv /hooks i Claude Code. Hook-vyn ska lista din nya hook under Notification. Tryck på Esc för att gå tillbaka.
  6. Be Claude om något som kräver godkännande och byt till ett annat fönster. En notis ska dyka upp.

Vill du bara reagera på vissa notiser sätter du matchern till en typ som permission_prompt (en behörighetsfråga har väntat i ungefär sex sekunder) eller idle_prompt (Claude är klar och du har inte skrivit något på ungefär en minut).

Ett andra exempel: formatera filer efter ändringar

För en projekt-hook lägger du konfigurationen i .claude/settings.json i projektets rot. Använd händelsen PostToolUse med matchern Edit|Write, så att den bara körs efter verktyg som redigerar filer. Anthropics exempelkommando läser den redigerade sökvägen från den JSON som Claude Code skickar på standard input och lämnar den till Prettier: jq -r '.tool_input.file_path' | xargs npx prettier --write. Det kräver att jq är installerat. En lyckad hook visar ingenting i konversationen; du ser bara att filen har formaterats om.

Var hooks konfigureras

PlatsGäller förDelas?
~/.claude/settings.jsonAlla dina projektNej, bara din dator
.claude/settings.jsonEtt projektJa, kan committas
.claude/settings.local.jsonEtt projektNej, hålls utanför git
Hanterade policyinställningarHela organisationenSätts av administratörer
Ett plugins hooks/hooks.jsonSå länge pluginet är påslagetFöljer med pluginet
Frontmatter i en skillResten av sessionen efter att skillen har anropatsI skill-filen
Frontmatter i en subagentMedan den subagenten körsI subagent-filen

För att stänga av hooks sätter du "disableAllHooks": true i en inställningsfil. Hooks från hanterade inställningar fortsätter att köras om det inte också sätts där.

Hur en hook svarar

När en händelse inträffar skickar Claude Code detaljer om händelsen som JSON till ditt kommandos standard input. Ditt kommando svarar med sin exit code:

För finare kontroll avslutar du med exit 0 och skriver i stället ut ett JSON-objekt. Välj ett av sätten per hook.

Bra att veta

Om det inte fungerar

Håll koll på vad varje session lämnar öppet

Workbranch-pluginet för Claude Code använder en sammanfattning vid sessionsstart: i en mapp som är kopplad till ett Workbranch-projekt visar det vad som fortfarande är öppet när en session börjar, och säger du ”save this to Workbranch” (spara det här i Workbranch) sorteras sessionens uppgifter, beslut och öppna frågor in i det projektet. Se Workbranch för Claude. Ny i Claude Code? Börja med så kommer du i gång med Claude Code.

Källor

Vanliga frågor

Kan Claude skriva en hook åt mig?

Ja. Enligt Anthropics guide kan du beskriva den hook du vill ha i Claude Codes prompt och be Claude lägga till den i dina inställningar. Kontrollera resultatet med /hooks efteråt.

Kan en hook stoppa Claude även i bypass mode?

En PreToolUse-hook som returnerar beslutet deny blockerar verktyget i alla behörighetslägen, även bypassPermissions. Det är därför hooks är användbara för regler som ingen kan stänga av genom att byta läge.

Finns det hooks som använder en modell i stället för ett skript?

Ja. Förutom skalkommandon kan en hook vara ett HTTP-anrop, ett anrop till ett MCP-verktyg, en enskild prompt som bedöms av en Claude-modell eller en experimentell agent-hook med tillgång till verktyg.