Source: https://aiprimetech.io/de/claude-code/hooks/ [Startseite](/de/) › [Claude Code](/de/claude-code/) › Hooks [Überblick](/de/claude-code/)[Installation](/de/claude-code/install/)[CLI-Referenz](/de/claude-code/cli/)[Preise und Limits](/de/claude-code/pricing/)[Agent SDK](/de/claude-code/sdk/)[Skills und Plugins](/de/claude-code/skills/)[GitHub](/de/claude-code/github/)[Web, Desktop und IDE](/de/claude-code/web-and-desktop/)[Modelle](/de/claude-code/models/)[Fehler](/de/claude-code/errors/)[Open Source?](/de/claude-code/open-source/)[Tutorial](/de/claude-code/tutorial/)[Für Studierende](/de/claude-code/for-students/)[QA-Automatisierung](/de/claude-code/qa-automation/)[Vergleich mit Cursor](/de/claude-code/vs-cursor/)[Vergleich mit Codex und OpenCode](/de/claude-code/vs-codex/)[Subagenten](/de/claude-code/subagents/)[Hooks](/de/claude-code/hooks/)[MCP](/de/claude-code/mcp/)[Ökosystem](/de/claude-code/ecosystem/)[VS Code](/de/claude-code/vscode/)[OpenRouter](/de/claude-code/openrouter/)[Anfragelimits](/de/claude-code/rate-limits/)[Chinesischer Leitfaden](/claude-code/zh/) Zuletzt aktualisiert: 11. Oktober 2026 # Claude Code-Hooks: deterministische Kontrolle über die Aktionen des Agenten Hooks sind Shell-Befehle, die Claude Code an festen Punkten seiner Schleife ausführt — vor einem Tool-Aufruf, danach, wenn Sie einen Prompt absenden und wenn es fertig ist. Anders als Anweisungen in CLAUDE.md, denen das Modell folgen kann oder auch nicht, wird ein Hook immer ausgeführt. Damit legen Sie Regeln fest, die eingehalten werden. ## TLDR - Konfiguriert in .claude/settings.json (Projekt) oder ~/.claude/settings.json (Benutzer), oder mit /hooks. - Ereignisse: PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStop, PreCompact, SessionStart. - Der Hook erhält JSON über stdin (Tool-Name, Eingabe, Sitzung); Exit-Code 0 erlaubt die Ausführung, Exit-Code 2 blockiert sie und gibt stderr an Claude zurück. - Typische Anwendungen: nach jeder Bearbeitung formatieren, gefährliche Befehle blockieren, Tests vor dem Beenden verlangen, Desktop-Benachrichtigungen. ## Aufbau eines Hooks ``` { "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "npx prettier --write \"$(jq -r .tool_input.file_path)\"" } ] } ] } } ``` Drei Bestandteile: das Ereignis, ein Matcher (ein regulärer Ausdruck für den Tool-Namen bei Tool-Ereignissen; weglassen, um alles zu erfassen) und ein oder mehrere Befehle. Der Befehl erhält über stdin ein JSON-Objekt, das das Ereignis beschreibt — bei Tool-Ereignissen enthält es tool_name und tool_input, wodurch das obige Beispiel die gerade bearbeitete Datei findet. Legen Sie es in .claude/settings.json ab, um es mit dem Repository zu teilen, in ~/.claude/settings.json für sich selbst, oder führen Sie /hooks aus und lassen Sie Claude Code es schreiben. ## Die Ereignisse - PreToolUse — bevor ein Tool ausgeführt wird. Das einzige Ereignis, das blockierenkann: Exit-Code 2 bricht den Aufruf ab, und Claude liest Ihre stderr-Ausgabe als Begründung. - PostToolUse — nachdem ein Tool erfolgreich ausgeführt wurde. Formatierer, Linter und Typprüfungen für die bearbeitete Datei. - UserPromptSubmit — wenn Sie einen Prompt senden; kann Kontext hinzufügen oder den Prompt ablehnen. - Stop / SubagentStop — wenn der Agent (oder ein Subagent) kurz vor dem Abschluss steht. Exit-Code 2 bedeutet hier „noch nicht fertig“ — der klassische Anwendungsfall ist, das Beenden zu verweigern, solange Tests fehlschlagen. - PreCompact — vor /compact; speichern Sie alles, was Sie aus dem vollständigen Gesprächsprotokoll benötigen. - SessionStart — wenn eine Sitzung beginnt oder fortgesetzt wird; Umgebung laden, Erinnerungen ausgeben. - Notification — wenn Claude Code Ihre Aufmerksamkeit benötigt (Berechtigungsabfrage, Leerlauf); verbinden Sie dies mit einer Desktop- oder Slack-Benachrichtigung. ## Gefährliche Befehle blockieren ``` #!/usr/bin/env bash # .claude/hooks/guard.sh -- PreToolUse, matcher: Bash cmd=$(jq -r '.tool_input.command') if echo "$cmd" | grep -Eq 'rm -rf|git push --force|DROP TABLE|--no-verify'; then echo "blocked by guard.sh: $cmd" >&2 exit 2 fi exit 0 ``` Exit-Code 2 legt das Verhalten fest: Der Tool-Aufruf findet nicht statt, und alles, was der Hook auf stderr ausgegeben hat, wird Claude als Erklärung angezeigt. So kann es einen anderen Ansatz wählen, statt denselben Versuch zu wiederholen. Jeder andere Exit-Code ungleich null wird protokolliert, blockiert aber nicht. ## „Nicht beenden, bevor die Tests bestanden sind“ ``` #!/usr/bin/env bash # Stop hook: refuse to finish while the suite is red if ! npm test --silent >/tmp/claude-test.log 2>&1; then echo "Tests are failing; fix them before finishing:" >&2 tail -n 40 /tmp/claude-test.log >&2 exit 2 fi ``` Kombinieren Sie dies mit einer --max-turns Begrenzung bei Ausführungen ohne Benutzeroberfläche, damit ein tatsächlich nicht behebbarer Fehler nicht zu einer Endlosschleife führt. ## Hooks vs. CLAUDE.md vs. Berechtigungen CLAUDE.md enthält Hinweise, die das Modell liest; /permissions ist eine Liste dessen, was es ohne Nachfrage tun darf; Hooks sind Code, der unabhängig davon ausgeführt wird. Verwenden Sie CLAUDE.md für Stil und Kontext, Berechtigungen für die Grenze zwischen erlaubten Aktionen und Rückfragen und Hooks für alles, was jedes Mal gewährleistet sein muss — Formatierung, Suche nach Geheimnissen, verpflichtende Tests, Audit-Protokolle. Sie wirken zusammen: Eine Berechtigung erlaubt die Ausführung von Bash(git *) , ein PreToolUse-Hook blockiert weiterhin git push --force. ## Hooks und das Gateway Hooks laufen lokal und greifen nie auf die API zu. Daher ändert sich nichts, wenn Claude Code auf ANTHROPIC_BASE_URL=https://aiprimetech.ioverweist. Eine nützliche Kombination: ein Stop Hook, der /cost-artige Nutzungsdaten aus Ihren eigenen Protokollen ausgibt, sodass ein Team mit nutzungsbasiert abgerechnetem Guthaben am Ende jeder Sitzung deren Preis sieht. ## Zuerst kostenlos ausprobieren Neue Konten erhalten $5 kostenloses API-Guthaben mit dem Code CLAUDECODE — genug für einen Abend mit Claude Code auf Sonnet — danach Guthaben zum 7.69231-Fachen des Nennwerts. ``` export ANTHROPIC_BASE_URL=https://aiprimetech.io export ANTHROPIC_API_KEY=your_key ``` [Konto mit dem Code CLAUDECODE erstellen](/register?promo=CLAUDECODE) ## Häufig gestellte Fragen Was sind Claude Code Hooks? Shell-Befehle, die Claude Code bei Ereignissen in seiner Schleife automatisch ausführt — vor und nach Tool-Aufrufen, beim Absenden eines Prompts und beim Beenden. Anders als Anweisungen in CLAUDE.md sind sie deterministisch.Wie blockiere ich einen Befehl mit einem Hook? Mit einem PreToolUse-Hook mit dem Matcher Bash, der tool_input.command aus stdin prüft und mit Exit-Code 2 endet; der stderr-Text wird Claude als Begründung angezeigt.Wo werden Hooks hinterlegt? In .claude/settings.json im Projekt (gemeinsam genutzt) oder in ~/.claude/settings.json (persönlich), unter dem Schlüssel hooks; mit /hooks lassen sie sich interaktiv bearbeiten. ## Claude Code über das Gateway nutzen Dieselben Modelle, zwei Umgebungsvariablen, Guthaben zum 7.69231-Fachen des Nennwerts — oder ein unbegrenzter Pauschaltarif. Neue Konten: $5 kostenloses API-Guthaben mit dem Code CLAUDECODE.[API-Schlüssel erhalten](/register?promo=CLAUDECODE) [Unbegrenzte Tarife ansehen](/de/plans/) AI Prime Tech ist ein unabhängiges API-Gateway und ist weder mit Anthropic verbunden noch wird es von Anthropic unterstützt oder gesponsert. „Claude“ und „Claude Code“ sind Marken von Anthropic. Die hier beschriebenen Funktionen von Claude Code entsprechen der öffentlichen Dokumentation von Anthropic zum Zeitpunkt der Erstellung und ändern sich häufig; Preise und Modelllisten auf dieser Seite werden aus den aktuellen Einstellungen dieses Gateways ausgelesen. ## Weitere Leitfäden zu Claude Code [Claude Code: der vollständige Leitfaden](/de/claude-code/)[So installieren Sie Claude Code](/de/claude-code/install/)[Claude Code CLI-Dokumentation: Befehle und Flags](/de/claude-code/cli/)[Preise und Limits von Claude Code erklärt](/de/claude-code/pricing/)[Das Claude Code SDK, jetzt Claude Agent SDK](/de/claude-code/sdk/)[Skills und Plugins für Claude Code](/de/claude-code/skills/)[Claude Code in GitHub: die App, die Action und @claude](/de/claude-code/github/)[Hat Claude Code eine Weboberfläche? Web, Desktop und IDE erklärt](/de/claude-code/web-and-desktop/)[Welches Modell Claude Code verwendet und wie Sie es ändern](/de/claude-code/models/)[Fehler in Claude Code und wie Sie sie beheben](/de/claude-code/errors/)[Ist Claude Code Open Source?](/de/claude-code/open-source/)[Claude Code Tutorial: Ihre erste echte Sitzung](/de/claude-code/tutorial/)[Claude für Studierende: Claude Code, die API und was Bildungsangebote Ihnen tatsächlich bieten](/de/claude-code/for-students/)[So nutzen Sie Claude Code für die QA-Automatisierung](/de/claude-code/qa-automation/)[Claude Code im Vergleich mit Cursor: welches Werkzeug wann — und wie Sie beide nutzen](/de/claude-code/vs-cursor/)[Claude Code vs. Codex vs. OpenCode: Terminal-Agenten im Vergleich](/de/claude-code/vs-codex/)[Claude Code-Subagenten: Funktionsweise, Definition und Agententeams](/de/claude-code/subagents/)[Claude Code MCP: Server verbinden, Geltungsbereiche, Remote-MCP und Praxisbeispiele](/de/claude-code/mcp/)[Das Claude Code-Ökosystem: Router, Frameworks, Plugins und die Listen, die sie erfassen](/de/claude-code/ecosystem/)[Claude Code in VS Code: die Erweiterung, die Nutzung im Terminal und die Fehler](/de/claude-code/vscode/)[OpenRouter in Claude Code verwenden (und wann Sie darauf verzichten sollten)](/de/claude-code/openrouter/)[Claude-Fehler zum Ratenlimit: Was „API error: rate limit reached“ bedeutet und wie Sie ihn beheben](/de/claude-code/rate-limits/)[Claude Code verwenden: von der Installation bis zur täglichen Nutzung](/claude-code/zh/)