Claude Hooks
Python-Hooks für Claude Code Integration mit Protokollierung, Backup und Task-Erstellung.
| Pfad | /var/www/tools/ki-protokoll/claude-hook/ |
|---|---|
| Konfiguration | .claude/settings.local.json |
| Datenbank | ki_dev |
Übersicht
| Hook | Trigger | Funktion |
|---|---|---|
| log_to_db.py | Alle Events | Protokollierung in DB |
| file_backup_hook.py | PreToolUse (Edit, Write) | Datei-Backup vor Änderung |
| task_hook.py | UserPromptSubmit | Auto-Task-Erstellung |
log_to_db.py
Protokolliert alle Claude Code Events in der Datenbank.
Features
- Request/Response-Pairing: PreToolUse → PostToolUse werden verknüpft
- Duration-Tracking: Millisekunden-genaue Zeiterfassung
- Token-Schätzung: ~4 Zeichen = 1 Token
- Sensible Daten: Automatische Maskierung (Passwörter, API-Keys, JWTs)
- Session-Tracking: Temporäre Dateien in /tmp/claude_hooks/
Verarbeitete Events
| Event | Verarbeitung |
|---|---|
| UserPromptSubmit | Prompt speichern |
| PreToolUse | Tool-Name + Input speichern, pending |
| PostToolUse | Response zu PreToolUse matchen, completed |
| SessionStart/End | Session-Lifecycle loggen |
| Stop/SubagentStop | Abschluss loggen |
Datenbank-Tabelle
ki_dev.protokoll
├── id, timestamp
├── request_ip, client_name
├── request, request_timestamp
├── response, response_timestamp
├── duration_ms
├── tokens_input, tokens_output, tokens_total
├── model_name, status
file_backup_hook.py
Sichert Dateien automatisch BEVOR sie geändert werden.
Trigger
- PreToolUse → Edit
- PreToolUse → Write
Backup-Verzeichnisse
/var/www/dev.campus.systemische-tools.de/src
/var/www/dev.campus.systemische-tools.de/public
/var/www/dev.campus.systemische-tools.de/scripts
/var/www/dev.campus.systemische-tools.de/config
/var/www/prod.campus.systemische-tools.de/src
...
Features
- Versionierung: Automatische Version pro Datei
- Hash-Prüfung: Skip bei unveränderter Datei
- Größenlimit: Max 10 MB pro Datei
- Non-Blocking: Hook blockiert nie
Datenbank-Tabelle
ki_dev.file_backup_history
├── id, file_path, version
├── file_content, content_hash, file_size
├── change_type, changed_by, reason
├── created_at
task_hook.py
Erstellt automatisch Tasks aus Patterns in User-Prompts.
Erkannte Patterns
TODO: → Task erstellen
TASK: → Task erstellen
@task → Task erstellen
#task → Task erstellen
Konfiguration
Hooks werden in .claude/settings.local.json registriert:
{
"hooks": {
"UserPromptSubmit": [
"/var/www/tools/ki-protokoll/claude-hook/log_to_db.py",
"/var/www/tools/ki-protokoll/claude-hook/task_hook.py"
],
"PreToolUse": [
"/var/www/tools/ki-protokoll/claude-hook/log_to_db.py",
"/var/www/tools/ki-protokoll/claude-hook/file_backup_hook.py"
],
"PostToolUse": [
"/var/www/tools/ki-protokoll/claude-hook/log_to_db.py"
]
}
}
Environment-Variablen
In .env im Hook-Verzeichnis:
CLAUDE_DB_HOST=localhost
CLAUDE_DB_PORT=3306
CLAUDE_DB_USER=root
CLAUDE_DB_PASSWORD=***
CLAUDE_DB_NAME=ki_dev