Beispiele
Minimaler Hook
Minimales Apothem-Hook-Beispiel — eine Prüfung bei jedem Dateischreiben auslösen.
Dieses Beispiel zeigt den kleinstmöglichen Apothem-Hook: einen PreToolUse-Hook,
der vor jedem Write-Werkzeugaufruf auslöst und den Zielpfad protokolliert.
Hook-Skript
# src/apothem/hooks/log_writes.py
import json, sys
data = json.load(sys.stdin)
path = data.get("tool_input", {}).get("file_path", "unknown")
print(f"[apothem] Writing to: {path}", file=sys.stderr)
sys.exit(0) # always exit 0; block with the deny envelope belowRegistrierung in settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "python src/apothem/hooks/log_writes.py"
}
]
}
]
}
}Den Hook testen
Führen Sie in Claude Code ein beliebiges Dateischreiben aus und beobachten Sie die stderr-Ausgabe im Hook-Trace-Panel.
Schreibvorgänge blockieren
Um einen Schreibvorgang zu blockieren, geben Sie das Deny-Envelope auf stdout aus und beenden Sie das Skript trotzdem mit dem Exit-Code 0, wie es auch die eigenen Hooks von Apothem tun:
print(json.dumps({"hookSpecificOutput": {"hookEventName": "PreToolUse", "permissionDecision": "deny", "permissionDecisionReason": "blocked by log_writes"}}))
sys.exit(0)