settings.json

PreToolUse

ツールの呼び出し前に実行されるフック。

使い方・用途

  • 破壊的なコマンドの実行を事前に検知してブロックしたり、AI にツール実行前の追加コンテキストを提供して意思決定を支援したりします。
  • ヘッドレス環境において AI からの質問(AskUserQuestion)に自動回答するミドルウェアとしても活用可能です。
英語原文(公式ドキュメントより)

Hooks that run before tool calls

関連する変更履歴

v2.1.119 (1件)

Added
フック機能の改善:PostToolUse および PostToolUseFailure の入力 JSON に、ツールの純粋な実行時間を示す duration_ms が含まれるようになりました(承認待機時間は除く)
英語原文を表示
Hooks: PostToolUse and PostToolUseFailure hook inputs now include duration_ms (tool execution time, excluding permission prompts and PreToolUse hooks)

変更前

フックからツールの実行時間を把握することが難しく、どの操作に時間がかかっているかの正確な計測が困難でした。

変更後

フックへの入力データにミリ秒単位の duration_ms が追加され、ユーザーの承認待ち時間を除いた純粋な処理時間を取得できるようになりました。

ユーザーへの恩恵

独自のメトリクス収集や、処理の重いツール呼び出しの検知など、開発プロセスの分析と最適化がより精緻に行えるようになります。

v2.1.110 (1件)

Fixed
ツール実行失敗時にPreToolUseフックから提供された追加コンテキスト(additionalContext)が失われる問題を修正
英語原文を表示
Fixed PreToolUse hook additionalContext being dropped when the tool call fails

変更前

フックを使ってAIに補足情報を与えていても、その直後のツール実行が一度失敗すると、せっかくの補足情報が消えてしまい、AIが状況を正しくリトライできないことがありました。

変更後

ツール実行の成否にかかわらず、フックによって注入されたコンテキストが正しく保持され、AIに共有され続けるようになりました。

ユーザーへの恩恵

失敗の原因をAIがフックの情報を元に深く理解し、より的確に再試行できるようになるため、エラーからの自己復旧率が高まります。

関連ドキュメント

v2.1.101 (1件)

Fixed
permissions.deny ルールが PreToolUse フックの permissionDecision: "ask" よりも優先されるよう修正
英語原文を表示
Fixed permissions.deny rules not overriding a PreToolUse hook's permissionDecision: "ask" — previously the hook could downgrade a deny into a prompt

変更前

設定ファイルで特定のコマンドを「拒否(deny)」していても、フックの設定によってはユーザーに「確認(ask)」を求めてしまい、拒否ルールをバイパスできてしまう場合がありました。

変更後

「拒否」ルールが常に最優先されるようになり、フックによって承認待ちにダウングレードされることがなくなります。

ユーザーへの恩恵

セキュリティ設定の優先順位が明確になり、意図しないツールの実行をより確実に防止できます。

v2.1.90 (1件)

Fixed
JSON を標準出力に書き出し、終了コード 2 で終了する PreToolUse フックが、正しくツール実行をブロックできない問題を修正しました。
英語原文を表示
Fixed PreToolUse hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call

変更前

特定の条件でツール実行を拒否しようとしても、フックの出力形式や終了コードの組み合わせによってはブロック処理が正しく動作しない不具合がありました。

変更後

フックからのブロック指示が確実に処理され、セキュリティ上の制約やバリデーションが厳密に適用されます。

ユーザーへの恩恵

独自に作成したフックによる実行制限(破壊的なコマンドの禁止など)が意図通りに機能し、安全性が向上します。

関連ドキュメント

v2.1.89 (2件)

Added
PreToolUseフックに "defer" 判定を追加しました。ヘッドレスセッションでツール実行を一時停止し、-p --resume で再開してフックを再評価させることが可能です。
英語原文を表示
Added "defer" permission decision to PreToolUse hooks — headless sessions can pause at a tool call and resume with -p --resume to have the hook re-evaluate

変更前

ヘッドレスモード(-p)において、フックがツールの実行を条件付きで保留し、後からユーザーの判断を待って再開させる明確な仕組みが不足していました。

変更後

フックが "defer"(保留)を返せるようになり、実行を中断したセッションを -p --resume で再開する際に、再度フックを走らせて最終的な実行可否を決定できるようになりました。

ユーザーへの恩恵

自動化スクリプトやCI環境において、重要な操作の直前で一時停止し、人間が確認してから安全に続行させるワークフローが構築しやすくなります。

Fixed
Write/Edit/Readツールにおいて、PreToolUse/PostToolUseフックが file_path を絶対パスで受け取るよう修正しました。これはドキュメントの記載通りの挙動です。
英語原文を表示
Fixed PreToolUse/PostToolUse hooks to receive file_path as an absolute path for Write/Edit/Read tools, matching the documented behavior

変更前

フックに渡却されるパスが相対パスであったため、フック側のスクリプトでカレントディレクトリを移動している場合などにパスの解決が失敗することがありました。

変更後

常にルートからの絶対パスが渡されるようになり、どのような実行環境でもフックが正確に対象ファイルを特定できます。

ユーザーへの恩恵

フックを利用した複雑な自動処理や検証スクリプトの作成が、より簡単かつ確実になります。

関連ドキュメント

v2.1.88 (1件)

Fixed
Write/Edit/Readツールにおいて、PreToolUse/PostToolUseフックが file_path を絶対パスで提供していなかった問題を修正しました
英語原文を表示
Fixed PreToolUse/PostToolUse hooks not providing file_path as an absolute path for Write/Edit/Read tools

変更前

フック機能でファイルの変更を監視・処理する際、ファイルパスが相対パスで渡されることがあり、実行ディレクトリが異なると正しいファイルを特定できないリスクがありました。

変更後

常にルートからの絶対パスが渡されるようになり、どのディレクトリから実行しても確実に対象ファイルを処理できるようになりました。

ユーザーへの恩恵

自動フォーマットやバリデーションなどのフックの信頼性が高まり、複雑なプロジェクト構造でも誤作動の心配なく自動化を任せられます。

関連ドキュメント

v2.1.85 (1件)

Added
PreToolUseフックがupdatedInputとpermissionDecision: "allow"を返すことで、AskUserQuestionに応答可能になり、ヘッドレス環境での対話をサポート
英語原文を表示
PreToolUse hooks can now satisfy AskUserQuestion by returning updatedInput alongside permissionDecision: "allow", enabling headless integrations that collect answers via their own UI

変更前

ヘッドレス(非対話)モードでの実行中、Claudeがユーザーに質問(AskUserQuestion)を投げると、外部から動的に回答を供給するスマートな方法が不足していました。

変更後

フック経由で質問への回答(updatedInput)を返せるようになったため、独自のUIや自動化スクリプトを介してClaudeの質問に回答できます。

ユーザーへの恩恵

CLIを直接操作できないCI/CD環境やカスタムアプリ経由の利用において、Claudeとの対話を自動化または外部UI化することが可能になります。

v2.1.77 (1件)

Fixed
PreToolUse フックが "allow" を返した際に、管理設定などの拒否ルールをバイパスしてしまう問題を修正しました
英語原文を表示
Fixed PreToolUse hooks returning "allow" bypassing deny permission rules, including enterprise managed settings

変更前

フック側で許可(allow)を出すと、エンタープライズの管理ポリシー等で定義された強力な拒否ルールすら上書きされてしまう脆弱な状態でした。

変更後

パーミッション評価順序が厳格化され、フックの出力に関わらず拒否ルールが常に優先されるようになりました。

ユーザーへの恩恵

組織レベルで設定したセキュリティポリシーが確実に適用されるため、安全にフック機能を活用できます。

関連ドキュメント

v2.1.47 (1件)

Fixed
WindowsでGit Bashではなくcmd.exeを使用していたため、フック(PreToolUse、PostToolUse)がサイレントに実行に失敗する問題を修正しました(anthropics/claude-code#25981)。
英語原文を表示
Fixed hooks (PreToolUse, PostToolUse) silently failing to execute on Windows by using Git Bash instead of cmd.exe (anthropics/claude-code#25981)

変更前

Windows環境では、cmd.exeが使用されていたため、フック(PreToolUse、PostToolUse)がサイレントに失敗し、実行されない問題がありました。

変更後

Windows環境でhooks(PreToolUse、PostToolUse)がサイレントに失敗する問題が修正されました。Git Bashが使用されるようになり、フックが正しく実行されるようになりました。

ユーザーへの恩恵

Windows環境でのフック実行が安定し、Git Bashの利用によりPreToolUseやPostToolUseといった重要な自動化処理が正しく機能するようになりました。

v2.1.9 (1件)

Added
PreToolUse フックがモデルに追加のコンテキストを返すサポートを追加しました。
英語原文を表示
Added support for PreToolUse hooks to return additionalContext to the model

変更前

ツール実行前のPreToolUseフックは、モデルに渡す追加情報を提供できませんでした。

変更後

PreToolUseフックは、ツールの実行前にモデルにadditionalContextとして追加情報を提供できるようになりました。

ユーザーへの恩恵

これにより、フックはツールの実行前にモデルに追加のコンテキストを提供できるようになり、よりインテリジェントな意思決定や、フックによるツール実行の制御が可能になります。

関連ドキュメント

v2.1.0 (2件)

Added
エージェントのフロントマターでフック設定が可能になり、エージェントの生存期間に限定したフックを定義できるようになりました。
英語原文を表示
Added hooks support to agent frontmatter, allowing agents to define PreToolUse, PostToolUse, and Stop hooks scoped to the agent's lifecycle
Fixed
PreToolUse フックで、ユーザーへの確認(ask)を返しつつ入力を書き換える(updatedInput)ことが可能になり、ユーザーの同意を得ながら動作するミドルウェアとしてフックを利用できるようになりました。
英語原文を表示
Fixed PreToolUse hooks to allow updatedInput when returning ask permission decision, enabling hooks to act as middleware while still requesting user consent

変更前

フックでツール入力を変更した場合、即座に実行を許可(allow)するか拒否(deny)するかの二択になり、変更後の内容をユーザーに確認させることができませんでした。

変更後

安全のために特定の引数を修正しつつ、「この内容で実行して良いですか?」というプロンプトをユーザーに表示する高度な制御が可能になりました。

ユーザーへの恩恵

不適切なコマンド引数を自動補正しながら最終判断は人間に委ねるという、安全性と柔軟性を両立した高度なガードレールを構築できます。

関連ドキュメント

v2.0.43 (1件)

Added
Added tool_use_id field to PreToolUseHookInput and PostToolUseHookInput types

関連ドキュメント

v2.0.10 (1件)

Added
PreToolUse hooks can now modify tool inputs