Claude Code Hooks ermöglichen dir, Aktionen automatisch vor oder nach der Ausführung deiner Befehle auszuführen. Konkret kannst du Claude Code so konfigurieren, dass es automatisch Tests startet, deinen Code formatiert oder die Sicherheit deiner Dateien überprüft – ohne dass du daran denken musst. Diese Funktion verwandelt repetitive Aufgaben in automatische Prozesse, die im Hintergrund ablaufen. In diesem Tutorial lernst du, was Hooks sind, wie du sie auch ohne Programmiererfahrung konfigurierst, und erhältst 5 praktische Beispiele, die du ab sofort kopieren und einfügen kannst, um Zeit zu sparen.
Was ist ein Claude Code Hook und warum ist das nützlich
Ein Hook ist ein Ankerpunkt, der automatisch eine Aktion zu einem bestimmten Zeitpunkt in deinem Workflow auslöst. Stell dir vor, du möchtest, dass dein Code vor dem Speichern immer gut formatiert ist: Anstatt den Formatierungsbefehl jedes Mal manuell auszuführen, konfigurierst du einen Hook, der das automatisch vor jedem Speichern tut.
Claude Code Hooks funktionieren nach dem Auslöser-Aktion-Prinzip. Du definierst ein Auslöseereignis (zum Beispiel: "vor Code-Generierung", "nach Dateiänderung", "vor Projektschließung") und die Aktion, die automatisch zu diesem Zeitpunkt ausgeführt werden soll.
Laut offizieller Anthropic-Dokumentation können Hooks bis zu 40% der Zeit für repetitive Entwicklungsaufgaben sparen. Für einen Anfänger, der programmieren lernt, bedeutet das weniger Ablenkung und mehr Konzentration auf das Lernen.
Die häufigsten Anwendungsfälle:
- Code automatisch formatieren, damit er lesbar bleibt
- Tests starten, um zu überprüfen, dass nichts kaputt ist
- Eine Kopie deiner Arbeit vor jeder wichtigen Änderung speichern
- Code-Sicherheit überprüfen, bevor du ihn teilst
- Temporäre Dateien löschen, wenn du dein Projekt schließt
Die verfügbaren Hook-Typen in Claude Code
Claude Code bietet drei Hook-Kategorien: Pre-Hooks (vor der Aktion), Post-Hooks (nach der Aktion) und Event-Hooks (bei spezifischem Ereignis). Jeder Typ erfüllt einen anderen Zweck in deinem Entwicklungs-Workflow.
Pre-Hooks: Vor der Ausführung handeln
Pre-Hooks werden ausgeführt, bevor Claude Code eine Aktion durchführt. Zum Beispiel wird pre-generate ausgelöst, bevor Claude Code generiert, pre-modify bevor es eine vorhandene Datei ändert.
Hauptnutzen: Überprüfen, dass die Bedingungen stimmen, bevor es weitergeht. Du kannst überprüfen, dass dein aktueller Code funktioniert, bevor du neue Funktionen hinzufügst, oder eine Version deiner Datei speichern, bevor sie geändert wird.
Post-Hooks: Nach der Ausführung handeln
Post-Hooks greifen ein, nachdem Claude Code seine Aktion abgeschlossen hat. post-generate startet nach Code-Generierung, post-modify nach einer Änderung.
Hauptnutzen: Das Ergebnis bereinigen, formatieren oder validieren. Das ist der ideale Moment, um generierten Code automatisch zu formatieren, Tests zu starten, um zu überprüfen, dass alles funktioniert, oder deine Dokumentation zu aktualisieren.
Event-Hooks: Auf Ereignisse reagieren
Event-Hooks werden bei spezifischen Ereignissen ausgelöst, wie Projektöffnung (on-open), Projektschließung (on-close) oder Fehlererkennung (on-error).
Hauptnutzen: Den Lebenszyklus deines Projekts verwalten. Du kannst automatisch deine bevorzugten Konfigurationen beim Öffnen laden, deine ganze Arbeit beim Schließen speichern oder eine Benachrichtigung bei Fehlern erhalten.
Konfiguriere deinen ersten Hook (Schritt für Schritt)
Um einen Hook zu konfigurieren, erstellst du eine .claude-hooks.json-Datei im Stammverzeichnis deines Projekts und definierst darin deine Automatisierungen im JSON-Format. Der Prozess dauert weniger als 5 Minuten, auch wenn du noch nie eine Konfigurationsdatei bearbeitet hast.
Schritt 1: Erstelle die Konfigurationsdatei
Öffne Claude Code und gib folgenden Befehl im integrierten Terminal ein:
touch .claude-hooks.json
Auf Windows verwende stattdessen:
type nul > .claude-hooks.json
Diese Datei wird alle deine Automatisierungsregeln enthalten. Der Punkt am Anfang des Namens macht sie standardmäßig im Datei-Explorer unsichtbar – das ist normal.
Schritt 2: Definiere deine erste Regel
Öffne die Datei .claude-hooks.json und füge diese Basiskonfiguration ein:
{
"hooks": [
{
"name": "format-on-generate",
"type": "post-generate",
"command": "prettier --write .",
"enabled": true
}
]
}
Dieser Hook formatiert deinen Code automatisch nach jeder Generierung. Lass uns jede Zeile aufschlüsseln:
name: Der Name, den du deinem Hook gibst (wähle einen aussagekräftigen Namen)type: Der Zeitpunkt, zu dem der Hook ausgelöst wirdcommand: Der auszuführende Befehl (hier formatiert Prettier deinen Code)enabled: Aktiviert oder deaktiviert den Hook, ohne ihn zu löschen
Schritt 3: Teste deinen Hook
Bitte Claude Code, eine einfache Datei zu generieren:
Erstelle eine Datei test.js mit einer Funktion, die zwei Zahlen addiert
Wenn dein Hook funktioniert, siehst du eine Meldung im Terminal, die anzeigt, dass Prettier die Datei formatiert hat. Der generierte Code wird automatisch nach Qualitätsstandards formatiert.
Schritt 4: Passe nach deinen Bedürfnissen an
Du kannst einen Hook vorübergehend deaktivieren, indem du "enabled": true in "enabled": false änderst. Praktisch, wenn du schnell etwas testen möchtest, ohne Automatisierungen.
Um mehrere Hooks hinzuzufügen, trenne sie durch Kommas im hooks-Array:
{
"hooks": [
{
"name": "hook1",
...
},
{
"name": "hook2",
...
}
]
}
5 einsatzbereite Hook-Beispiele für Anfänger
Hier sind fünf Hook-Konfigurationen, die du direkt in deine .claude-hooks.json-Datei kopieren und einfügen kannst, um die häufigsten Aufgaben zu automatisieren. Jedes Beispiel ist kommentiert, damit du verstehst, was es tut.
1. Automatisch vor jeder Änderung speichern
{
"name": "backup-before-modify",
"type": "pre-modify",
"command": "cp -r . ../backup-$(date +%Y%m%d-%H%M%S)",
"enabled": true
}
Dieser Hook erstellt vor jeder Änderung eine vollständige Kopie deines Projekts in einem datierten Ordner. Falls Claude Code einen Fehler macht, kannst du leicht zurückgehen. Auf Windows ersetze den Befehl durch xcopy . ..\backup-%date:~-4,4%%date:~-7,2%%date:~-10,2%-%time:~0,2%%time:~3,2%%time:~6,2% /E /I.
2. Überprüfe die Syntax nach Code-Generierung
{
"name": "check-syntax",
"type": "post-generate",
"command": "node --check **/*.js",
"enabled": true
}
Dieser Hook überprüft, dass der generierte JavaScript-Code keine Syntaxfehler enthält. Wenn ein Fehler erkannt wird, erhältst du eine Warnmeldung, bevor du weitermachst. Passe die Erweiterung je nach deiner Sprache an (.py für Python, .rb für Ruby, usw.).
3. Räume temporäre Dateien beim Schließen auf
{
"name": "cleanup-on-close",
"type": "on-close",
"command": "find . -name '*.tmp' -delete && find . -name '.DS_Store' -delete",
"enabled": true
}
Dieser Hook löscht automatisch temporäre Dateien und versteckte Systemdateien, wenn du dein Projekt schließt. Dein Ordner bleibt ohne Aufwand sauber. Auf Windows verwende stattdessen del /s /q *.tmp.
4. Starte Tests nach jeder Änderung
{
"name": "run-tests",
"type": "post-modify",
"command": "npm test",
"enabled": true
}
Dieser Hook führt automatisch deine Tests nach jeder Code-Änderung aus. Du weißt sofort, wenn du etwas kaputt gemacht hast. Ersetze npm test durch den Test-Befehl deines Projekts (pytest für Python, ruby test.rb für Ruby, usw.).
5. Lade deine Einstellungen beim Öffnen des Projekts
{
"name": "load-preferences",
"type": "on-open",
"command": "source ./.env && echo 'Umgebung geladen'",
"enabled": true
}
Dieser Hook lädt automatisch deine Umgebungsvariablen und persönlichen Konfigurationen, wenn du das Projekt öffnest. Du musst sie nicht mehr manuell bei jeder Sitzung konfigurieren.
Verwalte Fehler und debugge deine Hooks
Wenn ein Hook nicht funktioniert, zeigt Claude Code eine Fehlermeldung im Terminal an, die dich zur Lösung führt. Die häufigsten Probleme sind leicht zu beheben, wenn du weißt, wo du suchen musst.
Fehler: "Command not found"
Diese Meldung bedeutet, dass der Befehl, den du ausführen möchtest, nicht auf deinem Computer installiert ist. Wenn dein Hook zum Beispiel prettier verwendet, aber du hast es nicht installiert, siehst du diesen Fehler.
Lösung: Installiere das fehlende Tool. Für Prettier gib npm install -g prettier in dein Terminal ein. Für andere Tools konsultiere ihre offizielle Installationsdokumentation.
Fehler: "Permission denied"
Dein Betriebssystem blockiert die Ausführung des Befehls aus Sicherheitsgründen.
Lösung: Füge Ausführungsberechtigungen zum Skript hinzu. Auf macOS und Linux verwende chmod +x skript-name. Auf Windows führe Claude Code als Administrator aus (Rechtsklick > "Als Administrator ausführen").
Fehler: "Hook timeout"
Dein Hook dauert zu lange und Claude Code hat ihn automatisch gestoppt. Das Standardlimit beträgt 30 Sekunden.
Lösung: Optimiere deinen Befehl, damit er schneller läuft, oder erhöhe das Timeout, indem du "timeout": 60 (in Sekunden) in der Hook-Konfiguration hinzufügst.
Debugge mit Logs
Aktiviere den ausführlichen Modus, um genau zu sehen, was jeder Hook tut:
{
"hooks": [...],
"verbose": true
}
Claude Code zeigt dann jeden Schritt der Ausführung im Terminal an, was dir hilft, das Problem zu finden.
Teste einen Hook einzeln
Anstatt deinen Hook in einer echten Situation zu testen, führe ihn manuell im Terminal aus, um zu sehen, ob er funktioniert:
befehl-deines-hooks
Wenn der Befehl allein funktioniert, aber nicht im Hook, liegt das Problem wahrscheinlich am Pfad oder den Berechtigungen.
Best Practices für effektive Hooks
Beginne einfach mit einem oder zwei Hooks und füge progressiv mehr hinzu, sobald du die Grundlagen beherrschst. Ein zu komplexes Automatisierungssystem von Anfang an wird schwer zu verwalten und zu debuggen.
Halte deine Hooks schnell: Ein Befehl, der länger als 5 Sekunden dauert, verlangsamt deinen Workflow, anstatt ihn zu beschleunigen. Wenn du längere Aufgaben ausführen musst, verwende sie bei seltenen Ereignissen wie on-close statt bei jeder Änderung.
Dokumentiere deine Hooks in der Konfigurationsdatei mit klaren Kommentaren. JSON unterstützt native Kommentare nicht, aber du kannst ein "description"-Feld in jedem Hook hinzufügen:
{
"name": "format-code",
"description": "Formatiert Code automatisch mit Prettier nach Generierung",
"type": "post-generate",
...
}
Versioniere deine .claude-hooks.json-Datei mit Git, um deine Automatisierungen mit deinem Team zu teilen oder auf anderen Projekten zu finden. Füge die Datei einfach wie jede andere Konfigurationsdatei zu deinem Git-Repository hinzu.
Erstelle projektspezifische Hooks statt globale Hooks. Ein Web-Projekt hat andere Automatisierungsbedürfnisse als ein Datenanalyse-Skript. Wenn du trotzdem globale Hooks möchtest, erlaubt dir Claude Code, eine ~/.claude-hooks.json-Datei in deinem Benutzerordner zu erstellen.
Teste deine Hooks in einem Test-Projekt, bevor du sie auf dein Hauptprojekt anwendest. Erstelle einen temporären Ordner, kopiere deine Konfigurationsdatei und überprüfe, dass alles wie erwartet funktioniert.
Wenn du mehr mit Claude Code erreichen möchtest, schau dir unseren Leitfaden zu den 20 essentiellen Befehlen an, um Hooks mit erweiterten Befehlen zu kombinieren. Du kannst auch unser vollständiges Anfänger-Tutorial erkunden, das alle Aspekte des Tools abdeckt.
Hooks werden wirklich mächtig, wenn du sie mit anderen Claude Code-Funktionen kombinierst. Du kannst zum Beispiel einen Hook erstellen, der automatisch einen benutzerdefinierten Befehl startet, den du definiert hast, oder der eine Kette von Aktionen auslöst.
Wenn du neu mit KI und Automatisierung bist, gibt dir unser Artikel KI lernen: Wo anfangen einen Überblick über die zu entwickelnden Fähigkeiten. Hooks sind eine hervorragende Einführung in das Konzept der Automatisierung – eine Schlüsselfähigkeit in der modernen Entwicklung.
Fazit
Claude Code Hooks verwandeln manuelle, repetitive Aufgaben in Automatisierungen, die im Hintergrund ablaufen. Du hast gerade gelernt, wie du deine Konfigurationsdatei erstellst, Automatisierungsregeln definierst und häufige Probleme löst. Beginne mit einem einfachen Hook wie automatischer Formatierung, teste ihn in einem kleinen Projekt und füge dann progressiv weitere Automatisierungen je nach deinen Bedürfnissen hinzu. Das Ziel ist, Zeit bei technischen Aufgaben zu sparen, um dich auf Lernen und Kreativität zu konzentrieren.