設定変更時にフックを実行したい
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こんな時に使う
- 設定変更を監査ログに記録したい時
- 設定変更をチームメンバーに通知したい時
- 特定の設定変更時に自動で処理を実行したい時
使い方
- 1hooks.ConfigChange にフックを定義
- 2CLAUDE_HOOK_DATA で変更された設定キーを取得
- 3終了コード 2 で設定変更を拒否できる
Tips
- /config コマンドや claude config コマンドでの変更時に発火
- 変更内容は CLAUDE_HOOK_DATA に JSON で渡される
- セキュリティポリシーの適用に終了コード 2 を活用