CC逆引きリファレンス

設定変更時にフックを実行したい

11. フック

コマンド / 機能

ConfigChange

設定変更検知フック

概要

ConfigChange フックは Claude Code の設定が変更された時(settings.json の更新など)に発火します。設定変更の監査ログや、変更に応じた自動処理の実装に使います。

設定例

// .claude/settings.json
{
  "hooks": {
    "ConfigChange": [
      {
        "type": "command",
        "command": ".claude/hooks/on-config-change.sh"
      }
    ]
  }
}

// 設定変更を監査ログに記録する例
#!/bin/bash
timestamp=$(date +%Y-%m-%dT%H:%M:%S)
changed_key=$(echo "$CLAUDE_HOOK_DATA" | jq -r '.key // "unknown"')
echo "[$timestamp] Config changed: $changed_key" >> .claude/audit.log
公式ドキュメントを見る

こんな時に使う

  • 設定変更を監査ログに記録したい時
  • 設定変更をチームメンバーに通知したい時
  • 特定の設定変更時に自動で処理を実行したい時

使い方

  1. 1hooks.ConfigChange にフックを定義
  2. 2CLAUDE_HOOK_DATA で変更された設定キーを取得
  3. 3終了コード 2 で設定変更を拒否できる

Tips

  • /config コマンドや claude config コマンドでの変更時に発火
  • 変更内容は CLAUDE_HOOK_DATA に JSON で渡される
  • セキュリティポリシーの適用に終了コード 2 を活用