Mit Hooks kannst du benutzerdefinierte Logik ausführen, wenn Ereignisse im Lebenszyklus des Agenten auftreten. Du kannst Hooks verwenden, um Richtlinien durchzusetzen, Kontext hinzuzufügen, Aktionen zu protokollieren, Berechtigungen zu ändern oder externe Systeme zu integrieren. Devin CLI verwendet ein Hook-Format, das mit Claude Code-Hooks kompatibel ist. Wenn du bereits Hooks für Claude Code konfiguriert hast, funktionieren sie automatisch mit Devin CLI.Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
Was können Hooks tun?
Richtlinien durchsetzen
Gefährliche Befehle blockieren, für bestimmte Aktionen eine Bestätigung verlangen oder den Zugriff auf Dateien einschränken.
Kontext hinzufügen
Zusätzliche Anweisungen oder Informationen einfügen, wenn bestimmte Tools aufgerufen werden.
Folgeaktionen ausführen
Skripte ausführen, Benachrichtigungen senden oder Ereignisse protokollieren, wenn etwas geschieht.
Berechtigungen ändern
Berechtigungen je nach Situation dynamisch gewähren oder einschränken.
Kurzes Beispiel
.devin/hooks.v1.json in Ihrem Projekt an:
./scripts/check-command.sh vor jeder Ausführung eines Shell-Befehls ausgeführt. Das Skript erhält Ereignisdaten über stdin und kann die Aktion blockieren, indem es einen Exit-Code ungleich null zurückgibt.
Hook-Ereignisse
| Ereignis | Wann es ausgelöst wird |
|---|---|
PreToolUse | Bevor ein Tool ausgeführt wird |
PostToolUse | Nachdem ein Tool beendet wurde |
PermissionRequest | Wenn eine Berechtigungsentscheidung erforderlich ist |
UserPromptSubmit | Wenn der Nutzer eine Nachricht absendet |
Stop | Wenn der Agent stoppen möchte |
SessionStart | Wenn eine Sitzung beginnt |
SessionEnd | Wenn eine Sitzung endet |
Hook-Format
command oder prompt), einen optionalen Matcher (Regex auf den tool_name des Hook-Ereignisses) und eine Konfiguration:
| Feld | Beschreibung |
|---|---|
matcher | Regex, die mit dem tool_name des Hook-Ereignisses abgeglichen wird. Eine leere Zeichenfolge oder ein weggelassener Matcher passt auf alle Tool-Namen. |
type | "command" zum Ausführen eines Shell-Befehls oder "prompt" zum Auswerten eines LLM-Prompts. |
command | Auszuführender Shell-Befehl (für den Typ command). |
prompt | Auszuwertender LLM-Prompt (für den Typ prompt). |
timeout | Timeout in Sekunden (optional). |
Befehls-Hooks
| Ausgabefeld | Beschreibung |
|---|---|
decision | "approve", "block" oder "deny" |
reason | Begründung, die dem Agenten angezeigt wird |
DEVIN_PROJECT_DIR wird automatisch auf das Projektstammverzeichnis gesetzt.
Unter Using the Matcher finden Sie die integrierten Tool-Namen und das MCP-Tool-Namensformat, nach denen Sie abgleichen können.
Exit-Codes
| Code | Bedeutung |
|---|---|
| 0 | Erfolg — Hook wird normal fortgesetzt |
| 2 | Blockiert — Aktion wird verweigert |
| Andere | Fehler — wird protokolliert, blockiert aber nicht |
Wo Hooks zu finden sind
Auf Projektebene
| Speicherort | Beschreibung |
|---|---|
.devin/hooks.v1.json | Eigenständige Hooks-Datei (empfohlen) |
.devin/config.json | "hooks"-Schlüssel in der Konfigurationsdatei |
.devin/config.local.json | "hooks"-Schlüssel (lokale Überschreibung, gitignored) |
.claude/settings.json | "hooks"-Schlüssel (Claude-Code-Format) |
.claude/settings.local.json | "hooks"-Schlüssel (Claude-Code-Format) |
Nutzerebene (global)
| Pfad | Beschreibung |
|---|---|
~/.config/devin/config.json (%APPDATA%\devin\config.json unter Windows) | "hooks"-Schlüssel in der Nutzerkonfiguration |
~/.claude.json | "hooks"-Schlüssel (Claude Code-Format) |
~/.claude/settings.json | "hooks"-Schlüssel (Claude Code-Format) |
~/.claude/settings.local.json | "hooks"-Schlüssel (Claude Code-Format) |
In
.devin/hooks.v1.json ist das Hooks-Objekt die gesamte Datei (kein umschließender Schlüssel erforderlich). An allen anderen Speicherorten sind Hooks in einer Settings-Datei unter dem "hooks"-Schlüssel verschachtelt.Hooks aus
.claude/-Pfaden werden geladen, wenn read_config_from.claude aktiviert ist (Standardeinstellung). Bei Bedarf kannst du dies in deiner Nutzerkonfiguration deaktivieren.Hooks überprüfen
/hooks, um alle aktuell geladenen Hooks und ihre Quelldateien anzuzeigen:
Nächste Schritte
Lifecycle-Hooks
Detaillierte Informationen zu jedem Ereignistyp und den verfügbaren Daten.
Claude Code Hooks-Dokumentation
Vollständige Referenz zum Hook-Format.
