Ejemplos
Hook mínimo
Ejemplo de hook mínimo de Apothem — dispara una comprobación en cada escritura de archivo.
Este ejemplo muestra el hook de Apothem más pequeño posible: un hook PreToolUse
que se dispara antes de cada llamada a la herramienta Write y registra la ruta
de destino.
Script del hook
# 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 belowRegistro en settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "python src/apothem/hooks/log_writes.py"
}
]
}
]
}
}Probar el hook
Haz cualquier escritura de archivo en Claude Code y observa la salida de stderr en el panel de traza del hook.
Bloquear escrituras
Para bloquear una escritura, imprime el objeto de denegación en stdout y termina igualmente con código 0, como hacen los hooks propios de Apothem:
print(json.dumps({"hookSpecificOutput": {"hookEventName": "PreToolUse", "permissionDecision": "deny", "permissionDecisionReason": "blocked by log_writes"}}))
sys.exit(0)