Claude Code Hooks meistern: Auto-Formatierung, Auto-Tests und mehr
Erfahren Sie, wie Sie Auto-Formatierung und Auto-Tests mit Claude Code Hooks einrichten. Inklusive praktischer Konfigurationsbeispiele und realer Anwendungsfälle.
Was sind Hooks?
Mit Claude Code Hooks können Sie automatisch benutzerdefinierte Befehle vor oder nach bestimmten Aktionen ausführen. Sie können Auto-Formatierung nach dem Speichern von Dateien, automatische Tests nach Code-Änderungen und vieles mehr einrichten.
Hooks werden in .claude/settings.json definiert und führen Shell-Befehle aus, wenn Claude Code bestimmte Operationen durchführt.
Hook-Typen
Claude Code unterstützt Hooks an folgenden Ereignispunkten:
| Hook-Ereignis | Wann es ausgelöst wird |
|---|---|
PreToolUse | Bevor ein Tool ausgeführt wird |
PostToolUse | Nachdem ein Tool ausgeführt wurde |
Notification | Wenn eine Benachrichtigung gesendet wird |
Stop | Wenn Claude Code mit der Antwort fertig ist |
Grundkonfiguration
Hooks werden im hooks-Feld von .claude/settings.json definiert:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}
]
}
}
Konfigurationsstruktur
- matcher: Ein Regex-Muster, das den Tool-Namen abgleicht, der den Hook auslöst
- command: Der auszuführende Shell-Befehl
Anwendungsfall 1: Auto-Formatierung
Prettier nach jeder Dateibearbeitung automatisch ausführen:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}
]
}
}
Mit dieser Konfiguration formatiert Prettier automatisch jede Datei, die Claude Code erstellt oder bearbeitet. Der Coding-Style Ihres Teams bleibt konsistent, ohne manuellen Aufwand.
Anwendungsfall 2: Auto-Linting
So integrieren Sie ESLint Auto-Fix:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}
]
}
}
Das Suffix || true verhindert, dass Lint-Fehler den Hook zum Fehlschlagen bringen, sodass Claude Code weiterarbeiten kann.
Anwendungsfall 3: Automatische Tests bei Änderungen
Verwandte Tests nach Dateibearbeitungen automatisch ausführen und die Ergebnisse zurückmelden:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx vitest related \"$CLAUDE_FILE_PATH\" --run 2>&1 | tail -20"
}
]
}
}
Die related-Option von Vitest führt nur die Tests aus, die für die geänderte Datei relevant sind, und liefert Ihnen deutlich schnelleres Feedback als eine vollständige Testsuite.
Anwendungsfall 4: Automatische Typprüfung
TypeScript-Typprüfung nach Dateiänderungen ausführen:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx tsc --noEmit 2>&1 | head -30"
}
]
}
}
Anwendungsfall 5: Gefährliche Befehle blockieren
Ein PreToolUse-Hook, der die Ausführung riskanter Befehle verhindert:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qE 'rm -rf|drop table|git push.*force'; then echo 'BLOCKIERT: Gefährlicher Befehl erkannt' >&2; exit 1; fi"
}
]
}
}
Wenn der Hook mit Code 1 beendet wird, überspringt Claude Code die Tool-Ausführung vollständig.
Anwendungsfall 6: Fertigstellungsbenachrichtigungen
Eine Benachrichtigung senden, wenn Claude Code eine Aufgabe abgeschlossen hat:
{
"hooks": {
"Stop": [
{
"matcher": "",
"command": "notify-send 'Claude Code' 'Aufgabe abgeschlossen' 2>/dev/null; echo 'Fertig'"
}
]
}
}
Auf macOS können Sie Folgendes verwenden:
{
"hooks": {
"Stop": [
{
"matcher": "",
"command": "osascript -e 'display notification \"Aufgabe abgeschlossen\" with title \"Claude Code\"'"
}
]
}
}
Mehrere Hooks kombinieren
In realen Projekten ist die Kombination mehrerer Hooks am effektivsten:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qE 'rm -rf /'; then exit 1; fi"
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
},
{
"matcher": "Write|Edit",
"command": "npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}
],
"Stop": [
{
"matcher": "",
"command": "echo '✓ Aufgabe abgeschlossen'"
}
]
}
}
Tipps zum Schreiben von Hooks
1. Halten Sie die Ausführungszeit kurz
Hooks werden synchron ausgeführt, daher verlangsamen aufwendige Operationen die Antworten von Claude Code. Verwenden Sie Optionen wie related, um den Testumfang einzugrenzen, und head oder tail, um die Ausgabe zu kürzen.
2. Fehler elegant behandeln
Ein Hook, der mit einem Fehler beendet wird, kann den Workflow von Claude Code stören. Verwenden Sie || true und 2>/dev/null, um auf der sicheren Seite zu bleiben.
3. Umgebungsvariablen nutzen
Nutzen Sie die in Hooks verfügbaren Umgebungsvariablen. $CLAUDE_FILE_PATH gibt Ihnen den Pfad der bearbeiteten Datei.
Fazit
Hooks ermöglichen es Ihnen, den Workflow von Claude Code stark anzupassen. Die Kombination aus Auto-Formatierung und Auto-Tests ist besonders wirkungsvoll für die Aufrechterhaltung der Code-Qualität. Beginnen Sie mit der Prettier-Auto-Formatierung und bauen Sie von dort aus weiter auf.
Kostenloses PDF: Claude-Code-Spickzettel in 5 Minuten
Trag einfach deine E-Mail-Adresse ein – wir senden dir den A4-Spickzettel als PDF sofort zu.
Wir behandeln deine Daten sorgfältig und senden niemals Spam.
Über den Autor
Masa
Ingenieur, der Claude Code intensiv nutzt. Betreibt claudecode-lab.com, ein Tech-Medium in 10 Sprachen mit über 2.000 Seiten.
Ähnliche Artikel
Sicheres Agent Harness fur Claude Code und Codex: Rechte, Prufung und Rollback
Ein praktisches Agent Harness fur Claude Code und Codex mit Policy, Plan, Verifikation und Recovery.
10 leistungsstarke Subagent-Patterns für Claude Code
Meistere Claude Codes Subagent-Funktion mit 10 praktischen Patterns. Lerne, wie du Parallelverarbeitung, Spezialisierung und Kontext-Isolation einsetzt.
Einstieg in das Claude Code Agent SDK — Autonome Agenten schnell erstellen
Lernen Sie, wie Sie mit dem Claude Code Agent SDK autonome KI-Agenten erstellen. Setup, Tool-Definitionen und Multi-Step-Ausführung mit praktischen Codebeispielen.