Skip to content
Apothem
サンプル

最小フック

最小の Apothem フックの例——ファイル書き込みごとにチェックを発火させる。

この例では、可能な限り最小の Apothem フックを示します。Write ツールの呼び出しごとに その前に発火し、ターゲットパスをログに記録する PreToolUse フックです。

フックスクリプト

# 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)  # exit 0 = proceed; non-zero = block

settings.json への登録

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "python src/apothem/hooks/log_writes.py"
          }
        ]
      }
    ]
  }
}

フックのテスト

Claude Code で任意のファイル書き込みを行い、フックトレースパネルで stderr 出力を 観察します。

書き込みのブロック

sys.exit(0)sys.exit(1) に変更し、stdout に JSON のブロックを出力します。

print(json.dumps({"decision": "block", "reason": "blocked by log_writes"}))
sys.exit(1)

On this page