AIまとめ
Claude Code›機能ガイド›フック・自動化
⚡

フック・自動化

ツール呼び出しの前後や特定イベント(セッション開始・終了・通知)に対してシェルコマンドを自動実行する仕組み。lintの自動修正・フォーマット適用・Slack通知などをClaude操作に連動させられる。

コマンド・設定オプション21件

この機能に関連するスラッシュコマンド・CLIオプション・設定項目の一覧です。

スラッシュコマンド

Claude Code のインタラクティブセッション内で / から始めて入力するコマンド。

自動化・CI/CD

CLIオプション

`claude` コマンドをターミナルから起動する際に渡すオプション。

自動化・CI/CD

-- cli

--include-hook-events

全フックライフサイクルイベントを出力ストリームに含める。`--output-format stream-json` と組み合わせて使用する。

例:claude -p --output-format stream-json --include-hook-events "query"

設定オプション

`claude config set <key> <value>` または `~/.claude/settings.json` で設定する項目。

自動化・CI/CD

config

hooks

ツール呼び出しの前後(PreToolUse/PostToolUse)・通知(Notification)・セッション終了(Stop)などのイベントに対して実行するシェルコマンドを定義する。lint・フォーマット・通知の自動化に活用できる。

例:~/.claude/settings.json: {"hooks": {"PostToolUse": [{"matcher": "Write", "hooks": [{"type": "command", "command": "npx eslint --fix"}]}]}}
config

allowManagedHooksOnly

(Managed設定専用)ユーザー・プロジェクト・プラグインのフック読み込みを禁止し、管理フックとSDKフックのみ許可する。

例:managed-settings.json: {"allowManagedHooksOnly": true}
config

allowedHttpHookUrls

HTTPフックが対象にできるURLパターンの許可リスト。`*` ワイルドカード使用可。設定時は非マッチURLへのフックがブロックされる。空配列=全HTTPフックをブロック。

例:~/.claude/settings.json: {"allowedHttpHookUrls": ["https://hooks.example.com/*"]}
config

bashEditDiffEnabled

Bashコマンドがファイルシステムに加えた変更差分を、権限モードによらず常に記録する設定。Bashによるファイル編集をフックや監査で追跡したい場合に有効化する。

例:~/.claude/settings.json: {"bashEditDiffEnabled": true}
関連記事
関連記事なし
config

httpHookAllowedEnvVars

HTTPフックがヘッダー値に展開できる環境変数名を制限する。各フックの実効的な `allowedEnvVars` はフック自身の設定とこの設定の交差集合になる。

例:~/.claude/settings.json: {"httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]}
config

disableSkillShellExecution

スキルやカスタムコマンド内のインラインシェル実行(`!`...``・` ```! ` ブロック)を無効化する。ユーザー・プロジェクト・プラグイン・追加ディレクトリソースに適用。バンドルスキルと管理スキルには適用されない。

例:managed-settings.json: {"disableSkillShellExecution": true}
config

CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS

SessionEndフックに割り当てる実行時間の上限(ミリ秒)を設定する。フックが重い処理を行う場合は増やして使用する。

例:export CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=30000
config

strictPluginOnlyCustomization

(Managed設定専用)ユーザー・プロジェクト・ローカル設定からのスキル・フック・MCP設定を無効化する。プラグインと管理設定からのみカスタマイズを許可する。

例:managed-settings.json: {"strictPluginOnlyCustomization": true}
config

continueOnBlock

`PostToolUse` フックの設定オプション。`true` に設定するとフックが拒否した際にターンを終了せず拒否理由をClaudeにフィードバックしてターンを継続する。

例:~/.claude/settings.json: {"hooks": {"PostToolUse": [{"matcher": "Write", "continueOnBlock": true, "hooks": [...]}]}}
config

CLAUDE_ENV_FILE

`SessionStart`・`Setup`・`CwdChanged`・`FileChanged` フックが環境変数をセッションに永続化するために書き込むファイルパス。フックからセッション全体で有効な環境変数を設定する際に使用。

例:echo "MY_VAR=value" >> "$CLAUDE_ENV_FILE"
config

CLAUDE_EFFORT

フック実行時にツール呼び出しコンテキストとして渡される現在の努力レベル(`low`・`medium`・`high`・`xhigh`・`max`)を保持する環境変数。努力レベルを設定する `CLAUDE_CODE_EFFORT_LEVEL` とは異なり読み取り専用。

例:echo "current effort: $CLAUDE_EFFORT"
config

strictPluginOnlyCustomization.hooks

フック設定をプラグイン・managed設定由来のものだけに制限する。ユーザー・プロジェクト・ローカル設定からの追加を無効化する。

例:managed-settings.json: {"strictPluginOnlyCustomization": {"hooks": true}}
関連記事
関連記事なし
config

CLAUDE_CODE_BASH_EDIT_DIFF

Bashコマンド実行中に変更されたファイルの差分記録を制御する環境変数(v2.1.269以降)。`0` で無効、`1` で全権限モードで記録。`bashEditDiffEnabled` 設定より優先される。

例:export CLAUDE_CODE_BASH_EDIT_DIFF=0
関連記事
関連記事なし
config

CLAUDE_CODE_SESSION_ID

Bash・PowerShellツール、hookコマンド、stdio MCPサーバーのサブプロセスに現在のセッションIDが自動設定される。外部スクリプトとの紐付けに使う。

例:echo "$CLAUDE_CODE_SESSION_ID"
config

CLAUDE_CODE_STOP_HOOK_BLOCK_CAP

Stop・SubagentStop hookがターン終了を連続でブロックできる上限回数(既定8)。`0` で上限なし。

例:export CLAUDE_CODE_STOP_HOOK_BLOCK_CAP=20
関連記事
関連記事なし