Was sind Claude-Code-Hooks?
Claude-Code-Hooks sind Shell-Befehle, die automatisch an festgelegten Stellen im Lebenszyklus des Agenten laufen, etwa bevor ein Tool startet oder wenn ein Zug endet. Weil sie jedes Mal laufen, statt sich auf das Modell zu verlassen, sind sie ein verlässlicher Weg, Regeln durchzusetzen und Prüfungen einzubauen.
Events
Hooks werden in settings.json-Dateien definiert und an ein Event gehängt. Bei Tool-Events kannst du mit einem Matcher bestimmte Tools ansprechen, etwa Bash oder Edit.
- PreToolUse: bevor ein Tool läuft; kann den Aufruf blockieren.
- PostToolUse: nachdem ein Tool fertig ist, zum Beispiel um die bearbeitete Datei zu formatieren.
- UserPromptSubmit: bevor deine Nachricht das Modell erreicht.
- Stop: wenn der Agent seinen Zug beendet.
- SessionStart: wenn eine Session beginnt, nützlich, um Kontext hinzuzufügen.
- Notification: wenn Claude Code eine Benachrichtigung sendet.
So funktioniert es
Der Hook-Befehl erhält die Details des Events, etwa Tool-Name und Eingabe, als JSON über die Standardeingabe. Sein Exit-Code sagt Claude Code, was zu tun ist: 0 bedeutet weitermachen, 2 blockiert die Aktion und gibt die Fehlermeldung an das Modell weiter. Für feinere Steuerung kann ein Hook auch eine Entscheidung und eine Begründung als JSON zurückgeben.
Wofür Leute sie nutzen
Hooks machen aus allem, was das Modell vergessen könnte, eine Regel.
- Gefährliche Befehle oder das Lesen von Dateien wie .env blockieren.
- Nach jeder Bearbeitung einen Formatter oder Linter ausführen.
- Befehle so umschreiben, dass ihre Ausgabe kürzer wird.
- Eine Benachrichtigung senden oder Tests ausführen, wenn ein Zug endet.
Worauf du achten solltest
Hooks laufen mit deinen Benutzerrechten und ohne Rückfrage, also füge keinen fremden Hook hinzu, ohne ihn zu lesen. Ein langsamer Hook bremst jeden Tool-Aufruf, halte sie also schnell. Text, den ein Hook zurückgibt, kann im Kontext des Modells landen, halte ihn also kurz.
Hooks in AgentVera
AgentVera betreibt mehrere seiner Funktionen als Hooks in Claude-Code-Agenten. Das Kontextprofil Lean lädt dagegen keine Hooks auf Benutzerebene.
- Smart Tools: vier Hooks, die wiederholtes Lesen von Dateien blockieren, komplette Testläufe auf die betroffenen Tests eingrenzen, neue Typfehler direkt nach einer Bearbeitung melden und das Ergebnis eines Befehls zwischen Agenten teilen. Alle sind standardmäßig aktiv.
- RTK: Bash-Befehle von Claude Code werden über einen Hook in Varianten mit kürzerer Ausgabe umgeschrieben (git status → rtk git status).
- Codex hat keine Hooks, daher wirkt RTK dort über Anweisungen, und Smart Tools laufen nur in lokalen Claude-Code-Agenten.
FAQ
Wo werden Claude-Code-Hooks konfiguriert?
In settings.json-Dateien: ~/.claude/settings.json für dich als Benutzer, .claude/settings.json für das Projekt und .claude/settings.local.json nur für deinen Rechner. Verwalten kannst du sie auch mit dem Befehl /hooks.
Wie blockiert ein Hook einen Befehl?
Beendet sich ein PreToolUse-Hook mit Exit-Code 2, wird der Tool-Aufruf blockiert, und die Fehlerausgabe des Hooks geht als Begründung an das Modell.
Sind Hooks sicher?
Hooks sind Shell-Befehle, die mit deinen Berechtigungen laufen, also so sicher wie das, was sie enthalten. Lies Projekt-Hooks, die mit einem Repo mitkommen, bevor du sie ausführst.
Was ist der Unterschied zwischen einem Hook und einem Skill?
Ein Hook ist ein Befehl, der bei jedem Eintreten eines bestimmten Events läuft; das Modell entscheidet nicht darüber. Ein Skill ist ein Satz aus Anweisungen und Dateien, den das Modell lädt, wenn es ihn für relevant hält.