settings.json

hooks

型object記述場所どの設定ファイルでも可

ツール使用、セッション開始/終了、通知、プロンプト送信などのライフサイクルイベントで実行されるフックを設定します。

含まれる設定31件

  • ConfigChangearrayセッション中に設定、管理設定、またはスキルファイルが変更された際に実行されるフック。
  • CwdChangedarray作業ディレクトリが変更された際に実行されるフック。
  • DirectoryAddedarrayセッションの途中で新しい作業ディレクトリが登録された際に実行されるフックを設定します。
  • Elicitationarrayツール実行中に MCP サーバーがユーザー入力を要求した際に実行されるフック。
  • ElicitationResultarrayユーザーが MCP の入力要求に応答した後、その応答がサーバーに送信される前に実行されるフック。
  • FileChangedarray監視対象のファイルが作成、変更、または削除された際に実行されるフック。
  • InstructionsLoadedarrayCLAUDE.md や .claude/rules/*.md ファイルがコンテキストに読み込まれた際に実行されるフック。
  • MessageDisplayarrayアシスタントのメッセージテキストが表示されている間に実行されるフックを設定します。
  • Notificationarray通知が発生した際にトリガーされるフック。
  • PermissionDeniedarrayAutoモードの分類器によってツール実行が拒否された際に実行されるフックで、ツール名によるマッチャーをサポートしています。
  • PermissionRequestarray権限確認ダイアログが表示される際に実行されるフック。
  • PostCompactarrayコンテキストが圧縮された後に実行されるフック。
  • PostToolBatcharray並列ツールのバッチ実行が解決した後、次のモデル呼び出しの前に実行されるフック。
  • PostToolUsearrayツールの完了後に実行されるフック。
  • PostToolUseFailurearrayツールの失敗後に実行されるフック。
  • PreCompactarrayコンテキストが圧縮(コンパクション)される前に実行されるフック。
  • PreToolUsearrayツールの呼び出し前に実行されるフック。
  • SessionEndarrayセッションが終了した際に実行されるフック。
  • SessionStartarray新しいセッションが開始された際に実行されるフック。
  • Setuparrayリポジトリの初期化(--init)やメンテナンス(--maintenance)中に実行されるフック。
  • Stoparrayエージェントが応答を終えた際に実行されるフック(ユーザーによる中断時は実行されません)。
  • StopFailurearrayAPI エラー(レート制限、認証失敗、サーバーエラーなど)によりターンが終了した際に実行されるフック。
  • SubagentStartarrayサブエージェントが生成された際に実行されるフック。
  • SubagentStoparrayサブエージェントが応答を終えた際に実行されるフック。
  • TaskCompletedarrayタスクが完了としてマークされる際に実行されるフック。
  • TaskCreatedarrayTaskCreateを介してタスクが作成される際に実行されるフックで、終了コード2を返すとタスク作成をロールバックできます。
  • TeammateIdlearrayエージェントチームのメンバーがアイドル状態になる直前に実行されるフック。
  • UserPromptExpansionarrayユーザー入力がプロンプトに展開される際、Claudeに到達する前に実行されるフックで、終了コード2で展開をブロックできます。
  • UserPromptSubmitarrayユーザーがプロンプトを送信した際に実行されるフック。
  • WorktreeCreatearrayサブエージェント等でワークツリーが作成される際に実行されるフック。
  • WorktreeRemovearrayセッション終了時またはサブエージェント完了時にワークツリーが削除される際に実行されるフック。

記述例

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
        ]
      }
    ]
  }
}

使い方・用途

  • ツール実行前後に独自のコマンド、HTTP リクエスト、MCP ツール、プロンプト、エージェントを実行する
  • PreModelSwitch や PostModelSwitch フックイベントを追加してモデル切り替えをブロック・確認・注釈する
  • /cd でディレクトリを移動した直後に新しいディレクトリの設定やスキルを有効にする
英語原文(公式ドキュメントより)

Lifecycle event hooks that run at configurable points during Claude Code operation (tool use, session start/end, notifications, prompt submit, message display, and more), not just before/after tool executions. See https://code.claude.com/docs/en/hooks

関連する変更履歴

v2.1.296(7件)

Added
/plugin に、同じ名前を持つ別の有効なプラグインが存在するために hooks が読み込まれなかったプラグインについての注記を追加した
英語原文を表示
Added a note in /plugin on a plugin whose hooks are left out because another enabled plugin has the same name

変更前

別の有効なプラグインと名前が重複したプラグインの hooks は読み込まれずに除外されていたが、/plugin の画面上ではその理由が表示されなかったため、ユーザーは hooks が動かない原因を把握しにくかった。

変更後

名前の衝突により hooks が読み込まれなかった場合、/plugin にその旨の注記が表示されるようになった。

ユーザーへの恩恵

ユーザーは /plugin を開くだけで、hooks が読み込まれなかった理由を即座に確認し、名前の重複を解消できるようになる。

Fixed
管理設定の PreToolUse フックが "continue": false でツール呼び出しを拒否した場合や、管理対象の prompt フックが呼び出しをブロックした場合に、ターンが終了してしまう問題を修正した
英語原文を表示
Fixed managed-settings PreToolUse hooks that deny a tool call with "continue": false, and managed prompt hooks that block one, refusing the call but not ending the turn

変更前

管理設定の PreToolUse フックが "continue": false を付けてツール呼び出しを拒否したときや、管理対象の prompt フックがブロックしたときに、ツール呼び出しは拒否されるものの、そのターン自体が終了していた。"continue": false はターン継続を止める意図で使われる値だが、管理設定のフックではこの挙動が正しく反映されていなかった。

変更後

ツール呼び出しは拒否されつつも、ターンは終了せず継続するようになった。フックによるブロックの意図 ("continue": false でターンを続ける) が管理設定のフックでも正しく反映される。

ユーザーへの恩恵

組織の管理者が管理設定でフックを設けても、拒否によってユーザーのターンが打ち切られず、Claude が文脈を保ったまま応答を続けられるようになる。

関連ドキュメント

Fixed
管理対象設定の PostToolUse フックの一部のセッションで、updatedMCPToolOutput が適用されない問題を修正しました
英語原文を表示
Fixed PostToolUse hooks in managed settings not applying updatedMCPToolOutput in some sessions

変更前

管理対象設定で PostToolUse フックが updatedMCPToolOutput を返しても、セッションによってはその値が適用されず、MCP ツールの出力がフックによる置換前のまま Claude に渡されていた。そのため、設定で指定したフックの動作がセッションごとに不安定になっていた。

変更後

updatedMCPToolOutput がすべてのセッションで確実に適用されるようになり、管理対象設定の PostToolUse フックが MCP ツールの出力を意図どおりに置き換えられるようになった。

ユーザーへの恩恵

ユーザーは管理対象環境でも PostToolUse フックによる MCP ツール出力の置換をセッションをまたいで一貫して信頼して利用できるようになる。

関連ドキュメント

Fixed
同じ名前の別のプラグイン、またはその別表記のプラグインが既に実行済みの場合に、ヘッドレスセッションの開始後に読み込まれたプラグインの SessionStart フックがスキップされてしまう問題を修正した
英語原文を表示
Fixed SessionStart hooks of a plugin loaded after a headless session starts being skipped when a different plugin with the same name, or another spelling of it, had already run

変更前

ヘッドレスセッション開始後に読み込まれたプラグインは、同じ名前または別表記(例: ハイフンとドットの違いなど)の別プラグインが既に実行済みだと、名前の衝突と見なされて SessionStart フックがスキップされていた。そのため、そのプラグインがセッション開始時に追加すべきコンテキストや初期設定が適用されないままになっていた。

変更後

名前の衝突があっても、ヘッドレスセッション開始後に読み込まれたプラグイン自身の SessionStart フックはスキップされずに実行されるようになった。セッション開始時のコンテキスト追加や環境設定が正しく行われる。

ユーザーへの恩恵

ヘッドレスセッションで、名前が衝突するプラグインの SessionStart フックによる初期化処理が確実に実行されるようになる。

Fixed
SessionStart フックがまだ実行中のときに送信したプロンプトが、← でセッションをバックグラウンドに移すと消える不具合を修正した。プロンプトは引き続き送信されないが、↑ で取り戻せるようになった
英語原文を表示
Fixed a prompt sent while SessionStart hooks were still running vanishing when ← moved the session to the background; it is still not sent, but ↑ now brings it back

変更前

SessionStart フックの実行中に入力したプロンプトは送信されないが、← でセッションをバックグラウンドに移動すると、その入力内容自体が消えてしまっていた。

変更後

送信されない挙動自体は変わらないが、↑ を押すことで、消えていたプロンプトを入力欄に復元できるようになった。

ユーザーへの恩恵

フック実行中に入力したプロンプトを失わずに再利用できるようになる。

関連ドキュメント

Fixed
フックが CLAUDE_ENV_FILE に書き込んだ変数(ファイルに単純な代入のみが含まれる場合)が、PowerShell コマンドから参照されない問題を修正しました
英語原文を表示
Fixed PowerShell commands not seeing variables that hooks write to CLAUDE_ENV_FILE (when the file holds only plain assignments)

変更前

Windows で PowerShell をシェルとして使う場合、フックが CLAUDE_ENV_FILE に書き込んだ変数が PowerShell コマンドから参照されず、環境変数が正しく引き継がれませんでした。

変更後

CLAUDE_ENV_FILE に単純な代入形式で書かれた変数が PowerShell コマンドからも参照できるようになり、セッション内の後続コマンドで環境変数が正しく使えるようになりました。

ユーザーへの恩恵

Windows の PowerShell 環境でもフック経由で設定した環境変数を後続のコマンドで確実に利用できるようになる。

関連ドキュメント

Improved
フックの --debug 出力を改善しました:ツール呼び出し、プロンプト、SessionStart、Stop に対するコマンドフックが、完了時にコマンド、プラグイン、実行結果、所要時間をログに出力するようになり、遅いフックを特定できるようになりました
英語原文を表示
Improved --debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable

変更前

--debug を有効にしても、コマンドフックの完了時にそのコマンド、プラグイン、実行結果、所要時間はログに記録されず、フックの実行内容や所要時間を確認するには Ctrl+O でトランスクリプトを開くなどの別の手段が必要だった。

変更後

ツール呼び出し、プロンプト、SessionStart、Stop に対するコマンドフックが完了すると、--debug ログにコマンド、プラグイン、実行結果、所要時間が記録されるようになった。

ユーザーへの恩恵

デバッグログを見るだけで遅いフックを特定できるようになり、フックのパフォーマンス確認が素早く行える。

関連ドキュメント

v2.1.295(7件)

Added
コマンドフックと HTTP フックに `onFailure:
英語原文を表示
Added onFailure: "block" for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through

変更前

フックが起動に失敗した・タイムアウトした・予期しない終了コードで終了した場合でも、多くのイベントでは非ブロッキングエラーとして扱われ、アクションは通常の処理を続行していた。

変更後

`onFailure:

ユーザーへの恩恵

フックの失敗時にアクションが黙って通過することがなくなり、ガードとして登録したフックを確実に機能させられるようになる。

関連ドキュメント

Fixed
バックグラウンドセッションで実行されるコマンドやフックが FORCE_COLOR=3 を継承し、Claude が読み取る出力にカラーエスケープコードが混入する問題を修正した。
英語原文を表示
Fixed commands and hooks in background sessions inheriting FORCE_COLOR=3, which put color escape codes into the output Claude reads

変更前

バックグラウンドセッション内でコマンドやフックを実行すると、親プロセスから FORCE_COLOR=3 が継承されていた。そのため、本来カラー表示の不要な内部出力に ANSI カラーエスケープコードが埋め込まれ、Claude が読み取る出力にノイズが混入していた。

変更後

バックグラウンドセッションで実行されるコマンドやフックが FORCE_COLOR=3 を継承しないようになった。これにより、Claude が読み取る出力からカラーエスケープコードが除去され、クリーンなテキストとして解析できるようになった。

ユーザーへの恩恵

バックグラウンドセッションでコマンドやフックの出力がカラーコードのノイズに汚されなくなり、Claude が正確に結果を解釈できるようになる。

関連ドキュメント

Fixed
プラグインフックワーカーの再起動中にモッドが再ロードされる間に発する呼び出しが、.catch を持つ別のモッドのガードフックをすり抜ける問題を修正した。こうした呼び出しは現在拒否される
英語原文を表示
Fixed calls a mod makes while it reloads during a plugin hooks worker restart getting past another mod's guard hook that has a .catch; such calls are now refused

変更前

ガードフックが .catch ハンドラーを持ち、プラグインフックワーカーが再起動するタイミングでモッドが再ロードされると、そのモッドが発する呼び出しがガードによるチェックを経由せずに通過していた。その結果、plugin.register や tool.call のガードで拒否されるはずの呼び出しが実行されることがあった。

変更後

フックワーカーの再起動中に再ロードされるモッドの呼び出しも、.catch を持つガードフックによるチェック対象になる。拒否対象の呼び出しは refuse として拒否され、拒否の理由はデバッグログやセッションのトランスクリプトに書き出される。

ユーザーへの恩恵

再ロードのタイミングに関係なく、.catch 付きのガードフックによる呼び出しチェックが確実に適用されるようになる。

Fixed
フックモジュールでコードが何千レベルもの深さにネストしているプラグインが、素っ気ないスタックオーバーフローのメッセージとともにロードや検証に失敗する問題を修正した。
英語原文を表示
Fixed plugins whose hooks module nests code thousands of levels deep failing to load or validate with a bare stack-overflow message

変更前

プラグインのフックモジュールのコードが極端に深くネストされている場合、ロードや検証がスタックオーバーフローで失敗しても、エラーメッセージは素のスタックオーバーフロー表示のみで、原因を特定する手がかりがほとんどない状態だった。

変更後

深くネストされたフックモジュールに対して、Claude Code がロード時や検証時に行う静的解析がスタックオーバーフローで失敗しないようになり、プラグインが正常にロード・検証できるようになった。

ユーザーへの恩恵

深くネストしたコードを含むフックモジュールを持つプラグインでも、開発者は謎のスタックオーバーフローエラーに悩まされずにロードや検証を行えるようになる。

Fixed
非常に大きなインターフェースを描画するプラグインが、プラグインフックのワーカーが停止した際に、別のプラグインをアンロードされてしまう問題を修正しました。
英語原文を表示
Fixed a plugin that adds very large interfaces getting another plugin unloaded when the plugin hooks worker stalls

変更前

プラグインフックのワーカーが停止すると、原因を特定できずに、無関係なプラグインまでアンロードされることがあった。特に、非常に大きなインターフェースを追加するプラグインが原因で、別のプラグインが巻き添えでアンロードされていた。

変更後

フックワーカーが停止した際、Claude Code は原因のプラグインだけを正しく特定してアンロードするようになった。そのため、大きなインターフェースを追加するプラグインが原因でも、無関係なプラグインはアンロードされない。

ユーザーへの恩恵

原因不明のワーカー停止の際に、関係のないプラグインまで失われることなく、問題のプラグインのみが停止されるようになる。

Fixed
別のセッションがプラグイン更新を同期した後に、長時間実行されているセッションで claude.ai 同期プラグインのフックが「Plugin directory does not exist」で失敗する問題を修正した。
英語原文を表示
Fixed claude.ai-synced plugin hooks failing with "Plugin directory does not exist" in long-running sessions after another session synced a plugin update

変更前

別のセッションがプラグイン更新を同期すると、長時間実行中のセッションではキャッシュ内のプラグインディレクトリが参照できない状態になり、claude.ai 同期プラグインのフック読み込み時に「Plugin directory does not exist」エラーで失敗していた。

変更後

長時間実行中のセッションでも同期後のプラグインディレクトリが正しく参照され、claude.ai 同期プラグインのフックがエラーなく動作するようになった。

ユーザーへの恩恵

セッションを再起動せずに、同期済みプラグインのフックを引き続き利用できる。

Improved
claude plugin validate とプラグインの読み込みを改善: 再バインドされたトップレベルの var が原因で hooks モジュールが拒否された場合、エラーにその再バインド箇所の行、原因、修正方法を名前で示すようにした
英語原文を表示
Improved claude plugin validate and plugin loading: when a hooks module is refused over a rebound top-level var, the error now names the line that rebinds it, the cause, and a fix

変更前

hooks モジュールのトップレベルの var が再バインドされていると、読み込み時に拒否される。そのエラーメッセージは問題を教えるが、どの行が再バインドしたのかは分からず、修正には debug log の本文や原因の追跡が必要だった。

変更後

claude plugin validate やプラグイン読み込み時の同じ静的分析で、エラーが再バインドした行そのもの、原因、修正方法を名前で示す。ドキュメントの拒否メッセージの系統と同様に、メッセージだけで原因と対処が分かる。

ユーザーへの恩恵

hooks モジュールが読み込めない場合、debug log の本文を追わなくてもエラーメッセージだけで原因の行を特定して修正できる。hooks module did not load の拒否メッセージと同じ読み方で対処できる。

v2.1.294(2件)

Fixed
「コマンドをブロックする」のような指示として記述された prompt および agent フックが、本来ブロックすべき内容を許可してしまう問題を修正した
英語原文を表示
Fixed prompt and agent hooks written as instructions (such as "Block commands that...") allowing what they should block

変更前

prompt フックや agent フックに「Block commands that...」のような指示形式でブロック要件を書いても、Claude がその指示に従うかどうかに依存するため、本来ブロックされるべきコマンドが許可されていた。フックの判定結果が意図と反する動作になることがあった。

変更後

指示として書かれた prompt および agent フックでも、本来ブロックすべき内容を正しくブロックするようになった。フックが意図した通りに動作するようになり、許可すべきでない操作が実行されにくくなった。

ユーザーへの恩恵

ユーザーは自然言語で書いたブロック指示のフックを安心して使えるようになり、危険なコマードの実行をフックで確実に防げるようになる。

関連ドキュメント

Improved
「ビルドが壊れていたら続けて」といった指示形式で書かれた Stop および SubagentStop の prompt フックの判定方法を改善し、Claude が途中で作業をやめにくくなった。
英語原文を表示
Improved how prompt hooks on Stop and SubagentStop written as instructions (such as "Carry on if the build is broken") are judged, so Claude is less likely to stop early

変更前

Stop や SubagentStop の prompt フックで「ビルドが壊れていたら続けて」のような指示形式の文章を書いた場合、その判定が正確に行われず、Claude が条件を満たす前に作業を切り上げて停止することがあった。

変更後

指示形式の prompt フックの内容がより正確に判定されるようになり、フックの意図に沿って Claude が作業を継続するかどうかが判断される。

ユーザーへの恩恵

ビルド修復などの継続条件を prompt フックで指示しておくと、Claude が中途半端な状態で停止しにくくなり、最後までタスクを完遂できるようになった。

v2.1.293(1件)

Fixed
プラグインの hooks ワーカーが再起動している間に、モッドが classic.* イベントに登録したフックがスキップされる問題を修正した
英語原文を表示
Fixed a mod's hooks on classic.* events being skipped while the plugin hooks worker restarts, which left settings hooks to answer without them

変更前

プラグインの hooks ワーカーの再起動中に、モッドが classic.* イベントに登録したフックがスキップされていた。そのため、settings hooks がそれらのフックを経由せずに単独で応答していた。

変更後

hooks ワーカーの再起動中でも、モッドが classic.* イベントに登録したフックがスキップされずに実行される。settings hooks はモッドのフックも含めて応答するようになった。

ユーザーへの恩恵

ワーカー再起動のタイミングでもモッドによる settings hooks イベントへの割り込みが失われず、意図した通りに動作させられる。

v2.1.292(7件)

Added
prompt.autocomplete を追加しました。モッドがフックすることで、プロンプトボックスの自動補完リストに独自の行を追加できるイベントです
英語原文を表示
Added prompt.autocomplete, an event a mod hooks to add its own rows to the prompt box's autocomplete list

変更前

モッド(mods)はコマンドやプロンプトの内容などをイベントで拡張できたが、プロンプトボックスに表示される自動補完候補リストには手を加えられなかった。ユーザーが入力補完を見ても、そこには Claude Code 既定の候補しか表示されない。

変更後

新しい prompt.autocomplete イベントが追加された。モッドがこのイベントにフックして値を返すと、プロンプトボックスの自動補完リストにそのモッド独自の候補行が追加され、既定の候補と一緒に表示される。

ユーザーへの恩恵

モッド開発者は自分の機能に対応する補完候補をプロンプトボックスに提示でき、ユーザーは入力途中でその機能を発見・利用できるようになる。

Fixed
hooks モジュールが 1 つの const を通じて多数の $.state 呼び出しを行うプラグインの、ロードや検証に数分かかる問題を修正した
英語原文を表示
Fixed plugins whose hooks module makes many $.state calls through one const taking minutes to load or validate

変更前

hooks モジュール内で $ を変数に代入したり間接的に参照したりする書き方で多くの $.state 呼び出しがあると、ロードや検証の処理が極端に遅くなっていた。そのようなプラグインでは読み込み完了まで数分待たされることがあった。

変更後

このパターンのプラグインでもロードと検証が通常どおり短時間で完了するようになった。数分単位の待ち時間が発生しなくなった。

ユーザーへの恩恵

プラグインの起動や検証を待たされることなく、すぐに開発を続けられるようになった。

Fixed
フックモジュールの matcher や state の値を、エンジンが別の場所から読み取るにもかかわらず claude plugin validate が誤って検出して報告する問題を修正した
英語原文を表示
Fixed claude plugin validate listing a matcher or state value for a hooks module that the engine reads from elsewhere

変更前

これまで、エンジンが hooks モジュールの外部から読み取って使用する matcher や state の値であっても、claude plugin validate がそれをフックモジュール由来の値として誤って一覧表示していた。その結果、静的解析の報告内容がエンジンの実際の読み取りと食い違い、開発者が検証結果を誤解する可能性があった。

変更後

修正後は、エンジンが別の場所から読み取る matcher や state の値を claude plugin validate が誤って一覧表示しなくなる。検証結果がエンジンの実際の読み取りと一致し、報告が正確になる。

ユーザーへの恩恵

開発者は claude plugin validate の出力をそのまま信頼してフックモジュールの検証を進められるようになる。

Fixed
プラグインフックのワーカーが再起動している間に発生したプラグインのインターフェース呼び出しで、他のプラグインが登録したフックが適用されない問題を修正した。
英語原文を表示
Fixed plugin interface calls made while the plugin hooks worker restarts running without the hooks other plugins put on them

変更前

プラグインフックのワーカーが再起動している間に、プラグインがインターフェース(パネルやボタンなどの UI 描画)を呼び出すと、他のプラグインがその呼び出しに設定していたフックがスキップされていた。

変更後

ワーカー再起動中のインターフェース呼び出しでも、他のプラグインが設定したフックが正しく適用されるようになった。

ユーザーへの恩恵

ユーザーはプラグインフックのワーカー再起動中でも、各プラグインが意図したインターフェースの拡張や制御が失われないまま使える。

Fixed
hooks ワーカーが置き換えられた際に、mod の起動時プロンプト、コマンド、サブエージェントが 2 回キューに登録される問題を修正した
英語原文を表示
Fixed a mod's start-up prompt, command or subagent being queued a second time when the hooks worker was replaced

変更前

hooks ワーカーは複数の mod で共有される 1 つのスレッドであり、クラッシュ時には再起動(置き換え)が行われる。しかしワーカーが置き換えられると、mod の起動時プロンプト、コマンド、サブエージェントが再度キューに登録され、同じ処理が 2 回実行されていた。

変更後

hooks ワーカーが置き換えられても、mod の起動時プロンプト、コマンド、サブエージェントが重複してキューに登録されないようになった。各起動時処理は 1 回だけ実行される。

ユーザーへの恩恵

hooks ワーカーの再起動後も、mod の起動時プロンプトやコマンド、サブエージェントが二重に実行されることを気にせず mod を利用できるようになる。

Fixed
プラグインの hooks ワーカー再起動中に行われたツール呼び出しで、プラグインの permission hooks を実行せずに応答してしまう問題を修正しました。
英語原文を表示
Fixed tool calls made while the plugin hooks worker restarts being answered without the plugins' permission hooks

変更前

プラグインの hooks ワーカーが再起動している間にツール呼び出しが行われると、プラグインの permission hooks(許可チェック用の hooks)を経由せずにそのツール呼び出しが処理・応答されていた。

変更後

ワーカー再起動中のツール呼び出しでも、プラグインの permission hooks が正しく実行され、許可チェックが行われた上で処理されるようになった。

ユーザーへの恩恵

ワーカー再起動中であってもプラグインによる許可チェックが確実に働くため、ユーザーは検証されていないツール実行を心配せずに済むようになる。

Fixed
プラグインの tool.call フックが、誤名のパラメータが修復される前に一部のツール呼び出しを目にする問題を修正した。フックはツールが実際に実行する引数を受け取る。
英語原文を表示
Fixed plugin tool.call hooks seeing some tool calls before misnamed parameters were repaired; a hook now sees the arguments the tool will run with

変更前

誤名のパラメータが修復される前に、プラグインの tool.call フックが一部のツール呼び出しをそのまま受け取っていたため、フックが目にする引数がツールの実際の実行内容と一致しないことがあった。

変更後

tool.call フックは、パラメータの修復後の、ツールが実際に実行する引数を受け取る。

ユーザーへの恩恵

フックが参照する引数がツールの実際の実行内容と一致するようになり、tool.call フックによる拒否や引数の書き換えが確実に機能する。

v2.1.290(9件)

Added
プラグインフックの tool.check イベントに agentId を追加した。これにより、フックはサブエージェントのパーミッション判定をメインセッションのものと区別できる
英語原文を表示
Added agentId to the tool.check event of plugin hooks, so a hook can tell a subagent's permission check from the main session's

変更前

プラグインフックの tool.check イベントには agentId が含まれていなかったため、フックはパーミッション判定がサブエージェントのツール呼び出しに対するものか、メインセッションのものかを区別できなかった。

変更後

プラグインフックの tool.check イベントには agentId が含まれていなかったため、フックはパーミッション判定がサブエージェントのツール呼び出しに対するものか、メインセッションのものかを区別できなかった。今回の変更でイベントに agentId が追加された。

ユーザーへの恩恵

ユーザーはサブエージェントのツール呼び出しだけを除外または判定対象にするフックを書けるようになる。

Added
プラグインフックの型定義に ThemeKey と Color 型を追加し、エディタが mod の描画で指定できるテーマカラーを一覧表示できるようにした
英語原文を表示
Added ThemeKey and Color types to the plugin hooks typings, so an editor lists the theme colors a mod's drawing can name

変更前

プラグインフックの型定義には ThemeKey と Color 型が存在せず、mod の描画要素で色を指定する際に使える値が型レベルで把握できなかった。

変更後

プラグインフックの型定義に ThemeKey と Color 型が追加され、mod の描画で指定できるテーマカラーをエディタが一覧表示できる

ユーザーへの恩恵

開発者は TypeScript 補完でテーマカラーキーの一覧を確認できる

Fixed
プロンプトやツール呼び出しで hooks worker を占有していたプラグインフックがアンロードされ、その .catch がスキップされる問題を修正
英語原文を表示
Fixed a plugin hook with a .catch being unloaded, and its .catch skipped, when the hook kept the hooks worker busy on a prompt or tool call

変更前

プラグインフックが .catch ハンドラーを持っていても、そのフックがプロンプトやツール呼び出しを処理して hooks worker を占有している間に、フックがアンロードされ、.catch ハンドラーがスキップされていた。そのため、フックの失敗時に定義したハンドラーの処理が実行されないままになることがあった

変更後

プラグインフックがプロンプトやツール呼び出しで hooks worker を占有しても、そのフックはアンロードされなくなり、.catch ハンドラーも正しく実行されるようになった

ユーザーへの恩恵

ユーザーは、.catch を持つプラグインフックが hooks worker を占有しても、ハンドラーによるエラー処理が確実に実行されるようになる

Fixed
claude plugin validate やプラグイン読み込みにおいて、トップレベル関数と同名のオプションを分割代入する hooks モジュールが誤って拒否される問題を修正した
英語原文を表示
Fixed claude plugin validate and plugin loading refusing a hooks module that destructures an option named like one of its top-level functions

変更前

hooks モジュールが、ファイル内のトップレベル関数と同じ名前のオプションを分割代入すると、claude plugin validate やプラグイン読み込み時の静的解析が誤検知を起こし、その hooks モジュールを拒否していた。そのため、実際には $ の誤用など問題がないコードでも、プラグインが検証エラーや読み込み失敗になっていた。

変更後

hooks モジュールが、ファイル内のトップレベル関数と同じ名前のオプション(パラメータ)を分割代入して使用しても、claude plugin validate による検証でもプラグイン読み込み時の静的解析でも、その hooks モジュールは正常に受理されるようになった。たとえばトップレベル関数 loadNotes と同名のオプション loadNotes を分割代入しても拒否されない。

ユーザーへの恩恵

トップレベル関数と同名のオプションを分割代入する正しい hooks コードでも、検証や読み込みが失敗しなくなる。

Fixed
オートモードでレポートを引き渡すサブエージェントの turn.complete イベントにおいて、プラグインフックが空の answer を読み取る問題を修正した。
英語原文を表示
Fixed plugin hooks reading an empty answer on turn.complete for a subagent that hands its report back in auto mode

変更前

オートモードで SubagentHandback ツールを使ってレポートを返すサブエージェントがターンを完了させた際、turn.complete イベントでプラグインのフックが読み取る answer フィールドが空になっていた。

変更後

オートモードで SubagentHandback ツールを使ってレポートを返すサブエージェントのターンが完了したとき、turn.complete イベントの answer フィールドにレポートの引き渡しに関する短いメモが正しく入るようになった。

ユーザーへの恩恵

プラグインのフックが、オートモードで稼働するサブエージェントの最終回答を turn.complete で確実に取得できるようになる。

関連ドキュメント

Fixed
非ラテン文字を含む長い複数行テキストを描画する mod において、プラグインフックが再描画のたびに停止する問題を修正した
英語原文を表示
Fixed plugin hooks stalling each redraw when a mod draws a long multi-line text holding non-Latin characters

変更前

プラグイン(mod)が非ラテン文字を含む長い複数行テキストを描画すると、そのたびに描画フックが再描画ごとに停止(stall)し、インターフェースの描画が遅延していた。

変更後

プラグインが非ラテン文字を含む長い複数行テキストを描画しても、ui.render などの描画フックが各再描画で停止することなく、描画が即座に完了する。

ユーザーへの恩恵

非ラテン文字(日本語など)を含む長い複数行テキストを扱う mod を開発・利用しても、再描画が固まらずスムーズに操作できる。

Fixed
Linux のサンドボックス化された Bash コマンドが、.claude/settings.json または .claude/settings.local.json が存在しない場合にコマンド実行中に ConfigChange フックを実行し、設定を再読み込みする問題を修正
英語原文を表示
Fixed sandboxed Bash commands on Linux running ConfigChange hooks and reloading settings mid-command when .claude/settings.json or .claude/settings.local.json does not exist

変更前

設定ファイルが存在しない場合、設定の変更として扱われるべきでないにもかかわらず、コマンド実行中に設定の再読み込みや ConfigChange フックが誤ってトリガーされていた。

変更後

Linux のサンドボックス化された Bash コマンドが、.claude/settings.json または .claude/settings.local.json が存在しない場合でもコマンド実行中に設定を再読み込みし、ConfigChange フックを実行するようになった。これにより、ファイルが存在しない状況でもフック処理や設定再読み込みが発生する状態だった。

ユーザーへの恩恵

設定ファイルが存在しない場合に、サンドボックス化されたコマンド実行中に不要なフック実行や設定再読み込みが発生しなくなる。

関連ドキュメント

Changed
プラグインフックが長いテキストを拒否したり黙って破棄したりする代わりに、切り詰めてログに記録するように変更した。
英語原文を表示
Changed plugin hooks so long text is clipped and logged instead of being refused or dropped silently

変更前

プラグインフックが長いテキストを返すと、その出力は拒否されるか、警告なく黙って破棄されていた。

変更後

長いテキストは途切れて出力され、その内容はデバッグログに記録される。

ユーザーへの恩恵

プラグインフックが長いテキストを返しても拒否や破棄で失われず、ログで内容を確認できるようになる。

Changed
インプロセステームメイトの Agent 結果内の agent_id を、そのエージェントの ID に変更しました(name@team 形式のアドレスは引き続き teammate_id に格納されます)。また、TeammateIdle フックがそのテームメイトのサブエージェントやフォークから発火しなくなりました。
英語原文を表示
Changed an in-process teammate's agent_id in Agent results to its agent ID (its name@team address stays in teammate_id); TeammateIdle hooks no longer fire from its subagents or forks

変更前

インプロセステームメイトの Agent 結果内の agent_id には name@team 形式のアドレスが入っていました。また、TeammateIdle フックはそのテームメイトのサブエージェントやフォークからも発火していました。

変更後

インプロセステームメイトの Agent 結果内の agent_id が、そのエージェントの ID を指すようになりました。name@team 形式のアドレスは引き続き teammate_id フィールドに格納されます。また、TeammateIdle フックは、そのテームメイトのサブエージェントやフォークからは発火しなくなりました。

ユーザーへの恩恵

テームメイトを一意に識別する ID を直接的に取得できるようになり、フックが意図しないエージェント(サブエージェントやフォーク)で発火しなくなるため、フック処理の信頼性が向上します。

v2.1.288(3件)

Fixed
Mantle または structured outputs を拒否するゲートウェイ経由で実行した際に、セッションタイトル、memory recall、prompt hooks が失敗する問題を修正した。また、structured outputs を無効化するための環境変数 CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS を追加した
英語原文を表示
Fixed session titles, memory recall and prompt hooks failing on Mantle or behind gateways that reject structured outputs; added CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS to turn structured outputs off

変更前

Mantle や structured outputs を拒否するゲートウェイ経由で実行した場合、structured outputs を要求する機能が失敗し、セッションタイトルの生成・memory recall・prompt hooks が機能しなかった

変更後

structured outputs に対応していないゲートウェイ環境でも、セッションタイトルの生成、memory recall、prompt hooks が正常に動作する

ユーザーへの恩恵

structured outputs 非対応のゲートウェイ環境でもタイトル生成や memory recall、hooks をエラーなく利用でき、必要に応じて structured outputs を無効化できるようになった

Fixed
backgroundSubagentなどバックグラウンドエージェントがまだ動作している間にidle_prompt通知フックが発火する問題を修正した(anthropics/claude-code#93672)
英語原文を表示
Fixed idle_prompt notification hooks firing while background agents are still running (anthropics/claude-code#93672)

変更前

Claudeがレスポンスを終えてから約60秒経過した時点で、ユーザーのタイプ入力がなくても、アイドル状態を示す通知フックが発火する。background subagentなど、バックグラウンドで動作しているエージェントがまだある場合に発火しないはずだが、idle_prompt通知フックはバックグラウンドエージェントがまだ動作しているときにも発火していた。

変更後

バックグラウンドエージェントの実行中にアイドル通知が発火するのは変なので、backgroundSubagentが走っている間はフックが発火しないようになった。

ユーザーへの恩恵

バックグラウンドエージェントがまだ動いている間にユーザーへ誤ってアイドル通知が出ることを防げる。

関連ドキュメント

Fixed
PreToolUseフックとPermissionRequestフックが、マッチングに失敗した場合やツールの入力をJSONにシリアライズできなかった場合にスキップされる不具合を修正しました。現在はそのような場合に呼び出しがブロックされます。
英語原文を表示
Fixed PreToolUse and PermissionRequest hooks being skipped when matching them failed or the tool's input could not be serialized to JSON; the call is now blocked

変更前

マッチ処理が失敗したりツールの入力をJSONにシリアライズできなかった場合、PreToolUseフックとPermissionRequestフック自体がスキップされていました。その結果、フックによる許可・拒否の判断が行われず、呼び出しがブロックもされずに続行していました。

変更後

マッチ処理が失敗したりツールの入力をJSONにシリアライズできなかった場合でも、PreToolUseフックとPermissionRequestフックがスキップされず、呼び出しがブロックされるようになりました。フックの判断が失敗時に黙って無視されることはなく、安全側に倒した動作になります。

ユーザーへの恩恵

保護対象ファイルへの書き込みなどもフックの異常時にはブロックされるため、フックによる安全制御がバイパスされなくなります。

関連ドキュメント

v2.1.287(4件)

Fixed
スクリプトファイルが存在しない asyncRewake フックが、「問題が見つかりました」という通知で繰り返しClaudeを起こす問題を修正しました。壊れたフックは1回だけ報告されます。
英語原文を表示
Fixed hooks configured with asyncRewake waking Claude over and over with "found issues" notifications when the hook's script file is missing; the broken hook is now reported once

変更前

asyncRewake が設定されたフックのスクリプトファイルが存在しない場合、その壊れたフックが繰り返し発火して、「問題が見つかりました」という通知でClaudeを何度も起こしていました。

変更後

フックスクリプトファイルが存在しない場合でも、その不具合は1回だけ報告されるようになりました。壊れた asyncRewake フックが繰り返し「問題が見つかりました」という通知でClaudeを起こすことはなくなります。

ユーザーへの恩恵

壊れた asyncRewake フックによる不要なウェイクや重複通知がなくなり、セッションが最小限の報告で済むため、ユーザーは安心してバックグラウンドフックを利用できます。

Fixed
同期済みプラグインの SessionStart フックが新しいクラウドセッションで実行されない問題を修正した。
英語原文を表示
Fixed SessionStart hooks from synced plugins not running in new cloud sessions

変更前

同期済みプラグインが提供する SessionStart フックが、新しいクラウドセッションで実行されていなかった。docs では SessionStart フックはローカルとクラウド両方のセッションで毎回実行されること、依存関係インストールなどプロジェクトセットアップをクラウドで実行する用途があることが説明されている。

変更後

同期済みプラグインに含まれる SessionStart フックが、新しいクラウドセッションでも確実に実行されるようになった。

ユーザーへの恩恵

ユーザーはクラウドセッションでもプラグインによる依存関係インストールなどのプロジェクトセットアップが自動で適用されることを信頼して利用できる。

Fixed
トランスクリプトの「N hooks ran」要約と詳細デバッグログのマッチしたフック数のカウントから、Claude Code 内部のコールバックを除外した。これにより、設定した1つのフックが2つとして表示されなくなる
英語原文を表示
Fixed the transcript's "N hooks ran" summary and the verbose debug log's matched-hooks count including Claude Code's internal callbacks, so one configured hook no longer shows as two

変更前

トランスクリプトの「N hooks ran」要約と詳細デバッグログのマッチしたフック数のカウントに Claude Code 内部のコールバックが含まれていたため、設定した1つのフックが2つとして表示されていた

変更後

トランスクリプトの「N hooks ran」という要約と詳細デバッグログのマッチしたフック数の両方から、Claude Code 内部のコールバックが除外され、設定した1つのフックが正しく1としてカウントされる

ユーザーへの恩恵

設定したフックの実行数を要約やデバッグログで正確に確認できるようになる

Changed
ツール全体に対する Bash 許可ルールを変更し、許可フックがシェルによるファイル書き込み(Claude Code のファイルツールが直接の編集を拒否するファイル:Anthropic プロファイルストア、ホストのクレデンシャルファイル)に対して、書き込みを実行するのではなくプロンプトを出すようにした。
英語原文を表示
Changed whole-tool Bash allow rules and allowing hooks to prompt for, not run, shell writes to files Claude Code's file tools refuse outright (the Anthropic profile store, the host credentials file)

変更前

シェル経由で Claude Code のファイルツールが直接の編集を拒否するファイル(Anthropic プロファイルストア、ホストのクレデンシャルファイル)へ書き込むと、ツール固有の許可ルールや許可モードとは無関係に、シェルコマンドの残りの部分とともに書き込みが実行される。

変更後

シェル経由で Claude Code のファイルツールが直接の編集を拒否するファイル(Anthropic プロファイルストア、ホストのクレデンシャルファイル)へ書き込むと、Bash の許可フローに組み込まれた保護により、書き込み自体が即座に実行される前に許可フローが停止する。

ユーザーへの恩恵

ユーザーはファイルツールが保護する機密ファイルへのシェル経由の書き込みが、自分の事前承認なしには実行されないことを信頼できる。

v2.1.286(3件)

Improved
/hooks の改善: フックの詳細画面の末尾の一文で、フック自身を指す表現が「it」から「this hook」に変更された。
英語原文を表示
Improved /hooks: the closing line of a hook's detail screen now says "this hook" instead of "it"

変更前

フックの詳細画面の最終行で、そのフックを指す語が「this hook」と明示的に表示されるようになり、何を指しているのかが一目で分かる。

変更後

フックの詳細画面の最終行で、そのフックを指す語が「it」と表示されていたため、文脈によっては何を指しているのか分かりづらかった。

ユーザーへの恩恵

ユーザーは /hooks 画面でフックの詳細を確認する際、指示語の曖昧さに迷わず対象のフックを即座に識別できるようになる。

Changed
リスト画面(/artifacts、/mcp、/skills、/hooks など)で、各行の詳細情報が名前の後の1つの列に常に揃うように変更した。
英語原文を表示
Changed list screens (/artifacts, /mcp, /skills, /hooks and others) to always line up each row's details in one column after the names

変更前

リスト画面(/artifacts、/mcp、/skills、/hooks など)では、名前の後に表示される行ごとの詳細情報の列位置が画面によって揃っていないことがあった。

変更後

以前はリスト画面によって詳細列の配置が異なり、行によっては名前の後に詳細が揃っていないことがあった。v2.1.286 では /artifacts、/mcp、/skills、/hooks などのすべてのリスト画面で、各行の詳細が名前の後の単一の列に常に揃えて表示されるようになった。

ユーザーへの恩恵

ユーザーはどのリスト画面でも各行の詳細情報が同じ列位置に表示されるようになり、一覧を素早く読み取れるようになる。

Changed
「/hooks」を実行すると、設定済みのフックがイベント別にグループ化された単一のリストで開くようになり、フックの確認に Enter を 1 回押すだけで済むようになった(従来は 3 回必要だった)。
英語原文を表示
Changed /hooks to open on one list of your configured hooks grouped by event, so viewing a hook takes one Enter instead of three

変更前

/hooks コマンドを実行すると、イベントごとのリストから始まり、マッチャー、さらにフック本体へとドリルダウンする必要があり、1つのフックの詳細を見るまでに 3 回の操作(Enter)を要していた。

変更後

/hooks コマンドを実行すると、設定済みのすべてのフックがイベント別にグループ化された単一のリストで開く。表示したいフックを選択して Enter を押すだけで、そのフックの詳細を確認できる。

ユーザーへの恩恵

設定済みのフックを一目で確認でき、特定のフックの詳細まで 1 回の Enter でたどり着くため、フック設定の確認や検証が素早く行える。

v2.1.285(2件)

Fixed
同じレスポンス内で Planが書き込まれた際に、hooks や SDK の permission コールバックが ExitPlanMode で参照する Planが存在しない、または最新の状態より古い状態になる問題を修正した。
英語原文を表示
Fixed hooks and SDK permission callbacks seeing a missing or outdated plan on ExitPlanMode when the plan was written in the same response

変更前

Planがファイルに書き込まれる前や更新される前に hooks や SDK の permission コールバックが ExitPlanMode を処理していたため、plan が存在しない、または最新の状態より古い内容が表示されていた。

変更後

hooks や SDK の permission コールバックは、Planファイルから内容を注入してから実行されるため、ExitPlanMode の Planを確認するタイミングで、書き込み直後の Planも最新の状態で参照できる。

ユーザーへの恩恵

hooks や SDK の permission コールバックで、Planの確認を自動化できるようになる。

Fixed
フックが起動したバックグラウンドプロセス(例: some-daemon &)が出力を開いたまま保持しているせいで、同期フックが Claude Code をハングさせてしまう問題を修正。フック自身のプロセスが終了すると、フックは短時間で完了するようになった。
英語原文を表示
Fixed synchronous hooks hanging Claude Code while a background process the hook started (for example some-daemon &) kept its output open; the hook now finishes shortly after its own process exits

変更前

同期フックが some-daemon & のようなバックグラウンドプロセスを起動すると、その出力が開いたまま残るため、バックグラウンドプロセスが終了しても同期フックが完了せず、Claude Code 全体がハングしてしまっていた。

変更後

フック自身のプロセスが終了すると、フックはバックグラウンドプロセスの完了を待たずに短時間で終了するようになった。

ユーザーへの恩恵

バックグラウンドプロセスを起動する同期フックを書いても Claude Code がフリーズせず、フック完了後すぐに次の操作へ進められるようになる。

v2.1.284(4件)

Fixed
フックがstdoutにも出力していた場合にデバッグログが失敗したフックのstderrを破棄する問題と、出力のない失敗フックが何もログに記録しない問題を修正した。失敗したフックはステータスコードもログに記録する
英語原文を表示
Fixed the debug log dropping a failed hook's stderr when the hook also wrote to stdout, and logging nothing for a failed hook with no output; failed hooks now also log their status code

変更前

フックが失敗しても、stdoutにも出力していた場合はデバッグログにstderrが記録されず、出力がまったくない場合は何もログに残らないため、失敗の原因把握が困難だった

変更後

失敗したフックのデバッグログが改善され、stdoutへの出力の有無にかかわらずstderrが確実に記録されるようになり、出力がまったくない場合でも失敗ステータスがログに残る

ユーザーへの恩恵

フックが失敗した際に、その原因(ステータスコードやstderr)をデバッグログから確実に確認できるようになる

Fixed
Elicitation および ElicitationResult フックが返す {decision:block} が無視される問題を修正。exit code 2 と同様に、MCP Elicitation を辞退するようになった
英語原文を表示
Fixed {"decision":"block"} returned by Elicitation and ElicitationResult hooks being ignored; it now declines the MCP elicitation, as exit code 2 does

変更前

Elicitation と ElicitationResult フックがトップレベルの {decision:block} を返すと、exit code 2 と同様に MCP Elicitation が辞退されるようになった

変更後

Elicitation と ElicitationResult フックがトップレベルの {decision:block} を返してもそれが無視され、MCP Elicitation がキャンセル/辞退されない状態だった

ユーザーへの恩恵

Elicitation 関連のフックでも JSON によるブロック判定が exit code 2 と同じ挙動になり、プログラム的に Elicitation を制御できるようになる

関連ドキュメント

Improved
非同期スクリプトフックがスローするエラーに対して、Workflowツールのサンドボックス硬化を改善した。
英語原文を表示
Improved Workflow tool sandbox hardening for errors thrown by async script hooks

変更前

Workflowツールをサンドボックス内で実行する際、非同期スクリプトフックがスローするエラーが適切にハンドリングされず、未処理の例外として扱われることがあった。その結果、スクリプトの失敗が正しく報告されない状態だった。

変更後

非同期スクリプトフックがエラーをスローしても、Workflowツールのサンドボックス内で適切にキャッチされ処理されるようになった。これにより、非同期フックの失敗が原因の未処理例外や予期しないクラッシュが減り、エラーメッセージが適切に表示される。

ユーザーへの恩恵

非同期スクリプトフックが失敗してもエラーが確実に捕捉され報告されるため、ワークフローの実行がより安定し、デバッグしやすくなる。

Improved
/tasks、/copy、/hooks などのリストを改善:名前に続く詳細情報が、収まる場合は1つの列に揃い、収まらない場合は右端に配置されるようになりました。
英語原文を表示
Improved lists such as /tasks, /copy and /hooks: the details after each name now line up in one column when they fit, and otherwise sit at the right edge

変更前

表示幅に収まる場合は詳細情報が項目名の直後に1つの共通列に揃って整列し、収まらない場合は各詳細が画面右端に寄せて表示されるようになった。

変更後

/tasks、/copy、/hooks などのリスト表示で、各項目名の後に続く詳細情報が複数列に揃わず、位置がばらばらになっていた。

ユーザーへの恩恵

リストの各項目の詳細情報が縦に揃うことで、名前と詳細の対応が一目で分かるようになり、視認性が向上する。

v2.1.283(2件)

Improved
/help、/hooks、/copy、/chrome、/memory、/ide、/release-notes、/rewind、/diff、/remote-env、/plugin などの各種ピッカーのリストを、PageUp・PageDown キー、マウスホイール、クリックで操作できるよう改善した。
英語原文を表示
Improved lists in /help, /hooks, /copy, /chrome, /memory, /ide, /release-notes, /rewind, /diff, /remote-env, /plugin and other pickers with page keys, mouse wheel and clicks

変更前

/help、/hooks、/copy、/chrome、/memory などの各種ピッカーでは、PageUp・PageDown キーが効かず、マウスホイールでスクロールできず、行をクリックして選択することもできない。矢印キーでの少しずつ移動が唯一のナビゲーション手段だった。

変更後

/help、/hooks、/copy、/chrome などの各種ピッカーで、PageUp・PageDown キーによる一括スクロール、マウスホイールによるスクロール、行クリックによる選択が動作する。

ユーザーへの恩恵

/model や /plugin などの長いリストを PageUp・PageDown キーやマウスホイールで素早くスクロールし、クリックで項目を選択できるようになる。

Changed
セルフホストランナー: ライフサイクルフックの git 操作が、リポジトリの Git LFS の pre-push フックをスキップし、書き込み可能なシステムの core.hooksPath を無視し、--configure-git がない場合はコミットに署名しないように変更
英語原文を表示
Self-hosted runner: Changed lifecycle hooks' git to skip a repository's Git LFS pre-push hook, ignore a writable system core.hooksPath, and not sign commits without --configure-git

変更前

ランナーのライフサイクルフックが実行する git コマンドは、リポジトリの Git LFS pre-push フックを実行し、システム設定の core.hooksPath を尊重し、コミットに署名する動作になっていた。

変更後

ランナーのライフサイクルフックが実行する git コマンドは、リポジトリ側の Git LFS pre-push フックをスキップし、書き込み可能なシステムの core.hooksPath を無視し、--configure-git を指定しない限りコミットに署名しないようになった。

ユーザーへの恩恵

ユーザーは、フックがセッションが仕込んだリポジトリ設定や LFS フックを実行して任意コードを実行したり、不要な署名が行われたりするリスクを避けられるようになった。

v2.1.281(5件)

Fixed
信頼プロンプトをまだ通過していないディレクトリで claude --bg がバックグラウンドセッションを開始し、そのプロジェクトの hooks を実行する問題を修正しました。現在はまず信頼を確認し、非対話的に実行された場合は終了します。
英語原文を表示
Fixed claude --bg starting a background session, and running its project hooks, in a directory that had not passed the workspace trust prompt; it now asks for trust first, or exits when not run interactively

変更前

未信頼のディレクトリで claude --bg を実行すると、ワークスペース信頼ダイアログを表示せずにバックグラウンドセッションを開始していました。セッションの開始処理の一環でプロジェクトの hooks も実行されるため、ユーザーがそのディレクトリの設定をまだ確認していない状態で shell コマンドが走る可能性がありました。

変更後

未信頼のディレクトリで claude --bg を実行すると、Claude Code はバックグラウンドセッションを開始したりプロジェクトの hooks を実行したりする前にワークスペース信頼ダイアログを表示するようになりました。TUI 以外で実行された場合はダイアログを表示できないため、終了コード 1 で終了します。

ユーザーへの恩恵

信頼していないワークスペースで hooks が勝手に実行されることがなくなり、バックグラウンドセッションでも信頼確認が強制されるようになりました。

関連ドキュメント

Fixed
MCP サーバーがまだ接続中の間にブロッキングイベント(PreToolUse など)で実行される mcp_tool フックがスキップされる問題を修正。フックは最大 MCP 接続タイムアウト時間までサーバーの接続完了を待つようになった。
英語原文を表示
Fixed mcp_tool hooks on blocking events (PreToolUse and similar) being skipped while their MCP server was still connecting; they now wait for it, up to the MCP connect timeout

変更前

MCP サーバーがまだ接続中の場合、ブロッキングイベント(PreToolUse など)に設定された mcp_tool フックは実行されずにスキップされていた。

変更後

MCP サーバーが接続中の間でも、ブロッキングイベント(PreToolUse など)に設定された mcp_tool フックが待機するようになり、接続タイムアウトまで実行が保留される。

ユーザーへの恩恵

MCP サーバーの接続完了を待つ間もフックが確実に実行されるため、権限チェックなどのフック処理が意図せず省略されなくなる。

関連ドキュメント

Fixed
/memory、/hooks、/mcp(MCP サーバーのサインイン画面を含む)、/export、/copy、/theme、および /teleport の未コミット変更確認やログインプロンプトなど、残りのダイアログやピッカーで Ctrl+C または Ctrl+D を2回押したときに、ダイアログを閉じる代わりに Claude Code 自体が終了してしまう問題を修正した(Esc でも終了していた)。
英語原文を表示
Fixed Ctrl+C or Ctrl+D pressed twice quitting Claude Code instead of closing the dialog in the remaining dialogs and pickers, such as /memory, /hooks, /mcp (including a server's sign-in screen), /export, /copy, /theme, and /teleport's uncommitted-changes and login prompts (where Esc also quit)

変更前

特定のダイアログやピッカーで Ctrl+C や Ctrl+D を2回押すと、そのダイアログを閉じるのではなく Claude Code 全体が終了してしまっていた。

変更後

/memory や /hooks、/mcp、/export などの各種ダイアログで Ctrl+C や Ctrl+D を2回押すと、ダイアログを閉じる代わりに Claude Code から退出してしまっていた。

ユーザーへの恩恵

ダイアログを閉じようとして誤ってセッション全体を終了させられることがなくなり、Ctrl+C や Ctrl+D で安全にダイアログを閉じられるようになった。

関連ドキュメント

Fixed
狭い端末で /hooks と /mcp の詳細ビューが長い値を下の行に重ねて表示する問題を修正した。
英語原文を表示
Fixed /hooks and /mcp detail views printing a long value over the row below it in narrow terminals

変更前

以前は、狭い端末で /hooks や /mcp の詳細ビューを開くと、長い値が1行に収まりきらず、下の行に重なって表示され、両方が読みにくくなっていた。

変更後

/hooks や /mcp の詳細ビューで長い値が表示される際、端末の幅が狭いと表示領域からはみ出し、下の行の内容に重ねて描画されることがあった。

ユーザーへの恩恵

狭い端末でも /hooks や /mcp の詳細ビューの値が下の行と重ならず、設定内容をはっきり読めるようになる。

関連ドキュメント

Improved
/hooks を改善: フックの詳細画面で、そのフックの種類と変更場所を表示するようになった(従来は常に settings.json を参照していた)。また、フック無効化・セーフモード・管理フックのみ有効の各注意文が、何が起きているのかを平易な一文で伝える
英語原文を表示
Improved /hooks: a hook's detail screen now says what kind of hook it is and where to change it, instead of always pointing at settings.json, and the hooks-disabled, safe mode and managed-hooks-only notices each say what is happening in one plain sentence

変更前

/hooks のフック詳細画面は、変更方法を示す際にどのフックでも常に settings.json を見るように案内していた。また、フックが無効化されている場合やセーフモード・管理フックのみ有効な場合の注意表示は、具体的に何が起きているのかを説明していなかった。

変更後

/hooks 画面の詳細表示は、以前はどのフックについても常に settings.json を参照するだけだった。変更後は、そのフックの種類(たとえばどのイベントに対するフックか)と、設定を変更すべき場所が表示される。また、フック無効化・セーフモード・管理フックのみ有効という各状態の注意文も、何が起きているのかを1文の平易な表現で示すようになった。

ユーザーへの恩恵

ユーザーはフックの詳細を見ただけで、そのフックの種類と編集すべき設定ファイルを把握でき、状態に関する注意文も平易な一文で理解できるため、settings.json を開いて調べる手間なくフックを管理・修正できるようになる。

関連ドキュメント

v2.1.280(4件)

Fixed
セッションに渡された環境変数に NUL 文字が含まれていた場合に、バックグラウンドセッション (claude --bg) で git、hooks、プラグイン、その他のヘルパープログラムを実行できなかった問題を修正した
英語原文を表示
Fixed background sessions (claude --bg) being unable to run git, hooks, plugins and other helper programs when an environment variable handed to the session contained a NUL character

変更前

セッションに渡された環境変数に NUL 文字が含まれていると、バックグラウンドセッション内で git、hooks、プラグイン、その他のヘルパープログラムを実行できなかった

変更後

セッションに渡された環境変数に NUL 文字が含まれていても、バックグラウンドセッション内で git、hooks、プラグイン、その他のヘルパープログラムが実行される

ユーザーへの恩恵

NUL 文字を含む環境変数があってもバックグラウンドセッションで git や hooks などのヘルパープログラムが正常に動作するようになる

関連ドキュメント

Fixed
送信済みのプロンプトが入力欄に戻される状況(Escキーでの編集、/rewindでの巻き戻し、startup hooksの実行中にEscを押す場合など)で、IDEの選択範囲が失われる問題を修正
英語原文を表示
Fixed IDE selection being dropped when a sent prompt comes back into the input, such as pressing Esc to edit it, rewinding to it, or pressing Esc while startup hooks run

変更前

送信済みのプロンプトが入力欄に戻されるとき、そのプロンプトに付いていたIDEの選択範囲が失われ、Escでの再編集や/rewindでの巻き戻し後に再送信しても参照情報が入力に添付されない

変更後

送信済みのプロンプトがEscキーでの編集や/rewindでの巻き戻し、startup hooks実行中のEsc押下などで入力欄に戻されても、そのプロンプトに付いていたIDEの選択範囲(開いているファイルや選択テキスト)が保持される

ユーザーへの恩恵

Escで編集したり/rewindで巻き戻したりしたあとの再送信でもIDEの選択範囲が保持され、再入力や再選択の手間がなくなる

関連ドキュメント

Changed
セルフホストランナー: ライフサイクルフック内で実行される git が、ランナーの共有 git ファイルに記載されたフックフォルダやプログラムを無視するようになりました。そこでのローカルパスおよび git:// リモートには GIT_ALLOW_PROTOCOL の設定が必要になりました
英語原文を表示
Self-hosted runner: Changed git in lifecycle hooks to ignore hook folders and programs named in the runner's shared git files; local-path and git:// remotes there now need GIT_ALLOW_PROTOCOL

変更前

ライフサイクルフック内で実行される git が、ランナーの共有 git ファイル(core.hooksPath や core.fsmonitor など)で指定された設定も解釈していました。そのため、セッションが書き込んだ設定に基づいてフックフォルダやプログラムが影響を受け得る状態でした。

変更後

ライフサイクルフック内で実行される git が、ランナーの共有 git ファイルに記載されたフックフォルダやプログラムを無視するようになりました。その結果、そこで設定されたローカルパスや git:// のリモートを使用するには GIT_ALLOW_PROTOCOL の設定が必要になりました。

ユーザーへの恩恵

セッションが書き込んだ設定がフックの権限でコードを実行することを防ぎ、ライフサイクルフックのセキュリティが向上します。

Changed
PermissionRequest フックの仕様を変更: エージェント型フックは応答が許可・拒否の決定として機能しないため、このイベントでは実行されなくなり、代わりにコマンド型または http 型フックの使用を促すエラーを表示する
英語原文を表示
Changed PermissionRequest hooks: an agent-type hook no longer runs there, since its answer could never allow or deny the request; it now shows an error pointing to command or http hooks

変更前

PermissionRequest フックにエージェント型のフックを設定でき、実行された。しかし、エージェント型フックの応答は許可・拒否の決定を返せないため、設定は機能しなかった。

変更後

エージェント型の PermissionRequest フックを設定して PermissionRequest イベントをフックしても、そのフックは実行されず、代わりにコマンド型または http 型のフックを代わりに使うよう促すエラーが表示される。

ユーザーへの恩恵

ユーザーは PermissionRequest フックにエージェント型を誤って設定しても、決定を返せないことに気づき、コマンド型または http 型のフックへ正しく修正できるようになる。

関連ドキュメント

v2.1.277(1件)

Fixed
[VSCode] 「General config」メニュー行で設定を開かずに /config の使用方法テキストが表示される問題を修正し、入力した /mcp、/hooks、/memory、/rewind などのコマンドが対応するダイアログを開くようにした
英語原文を表示
[VSCode] Fixed the "General config" menu row showing /config usage text instead of opening settings, and made typed /mcp, /hooks, /memory, /rewind and similar commands open their dialogs

変更前

In the VS Code extension, selecting the “General config” menu row incorrectly displayed the /config usage text instead of opening the settings. Similarly, typing slash commands like /mcp, /hooks, /memory, /rewind, and others only showed usage text without opening their dialogs.

変更後

In the VS Code extension, selecting the “General config” menu row opens the settings panel directly. Additionally, typing commands like /mcp, /hooks, /memory, /rewind, and similar slash commands now opens their corresponding dialogs instead of just showing usage text.

ユーザーへの恩恵

VS Code ユーザーは設定画面や各コマンドのダイアログを直接開けるようになり、メニューやコマンド入力からスムーズに操作を完結できるようになる。

関連ドキュメント

v2.1.275(2件)

Fixed
agent type が空のサブエージェントが停止するたびに、特定の matcher を持つ SubagentStop フックが発火する問題を修正した。
英語原文を表示
Fixed SubagentStop hooks with a specific matcher firing for every stopping subagent whose agent type was empty

変更前

SubagentStop フックの matcher に agent type を指定しても、agent type が空のサブエージェントの停止時にすべての matcher に発火していた。

変更後

SubagentStop フックの matcher に agent type を指定しても、agent type が空のサブエージェントが停止するたびにフックが発火していた。

ユーザーへの恩恵

特定のサブエージェントを対象にしたフックだけが発火するようになり、意図しないコマンドの実行を防げる。

関連ドキュメント

Fixed
プロジェクト内の hooks/ や config/ という名前のディレクトリにサンドボックス化された Bash コマンドが書き込めなかった問題を修正
英語原文を表示
Fixed sandboxed Bash commands being unable to write to project directories named hooks/ or config/

変更前

サンドボックスで保護されたパスの中に、プロジェクト内の hooks/ や config/ という名前のディレクトリが含まれるため、sandboxed Bash コマンドはそれらのディレクトリに書き込めなかった。

変更後

sandboxed Bash コマンドが、プロジェクト直下の hooks/ ディレクトリや config/ ディレクトリに問題なく書き込めるようになった。

ユーザーへの恩恵

プロジェクトの作業ディレクトリ内の hooks/ や config/ ディレクトリに sandboxed Bash コマンドが自由に書き込めるため、これらのディレクトリにファイルを書き込む作業がサンドボックス外のコマンド実行なしで完了する。

v2.1.274(2件)

Fixed
Stop プロンプトフックが会話内のブロックのたびにプロンプト全体を再送信する問題を修正。繰り返しのブロックでは 500 文字のラベルで条件を示すようになった。
英語原文を表示
Fixed Stop prompt hooks re-sending their whole prompt on every block in a conversation; repeat blocks now name the condition with a 500-character label

変更前

Stop プロンプトフックは、会話内でブロックが発生するたびに、フックに定義されたプロンプト全体を毎回モデルへ再送信していた。

変更後

会話内で繰り返しブロックされる場合でも、フックのプロンプト全体を毎回再送信するのではなく、500 文字までのラベルで条件の名前を付して示すようになった。

ユーザーへの恩恵

繰り返しブロックが起きても毎回プロンプト全体を再送しなくてよくなり、トークン消費を抑えられる。

関連ドキュメント

Fixed
hooks/hooks.json のトップレベルに $schema を持つプラグインで unknown key の通知が表示される問題を修正した。
英語原文を表示
Fixed plugins with a top-level $schema in hooks/hooks.json showing an "unknown key" notice

変更前

プラグインの hooks/hooks.json のトップレベルに $schema を書くと、ドキュメントに記載のないキーとして unknown key の警告が出ていた。

変更後

hooks/hooks.json のトップレベルに $schema を書いても unknown key の警告が出ず、スキーマ参照をそのまま残せる。

ユーザーへの恩恵

hooks.json にエディタ補完用の $schema をそのまま置けるようになり、警告を気にせずスキーマ検証を活用できる。

関連ドキュメント

v2.1.273(1件)

Fixed
「Running PreCompact hooks…」のようなコンパクション状態のステータス行で、スピナーの省略記号が二重(「……」)に表示される問題を修正した。
英語原文を表示
Fixed the spinner showing a doubled ellipsis ("……") on compaction status lines such as "Running PreCompact hooks…"

変更前

コンパクション中のステータス表示(例:「Running PreCompact hooks…」)で、文末の「…」が二重に表示され「……」のように見えていた。

変更後

コンパクション実行中のステータス行(例:「Running PreCompact hooks…」)で、文末の三点リーダーが重複して「……」と表示されていた。この修正により、省略記号が1つだけ正しく表示されるようになった。

ユーザーへの恩恵

ユーザーはコンパクション実行中に余計な記号のない整ったステータス表示を見られるようになる。

v2.1.271(1件)

Fixed
__proto__ や constructor などの継承されたオブジェクトプロパティと同名のフックマッチャーが設定されている場合に、インタラクティブな /hooks メニューがクラッシュする問題を修正した。
英語原文を表示
Fixed the interactive /hooks menu crashing when a hook matcher is named after an inherited object property such as __proto__ or constructor

変更前

継承されたオブジェクトのプロパティと同名のマッチャー(例: __proto__ や constructor)が設定された状態でインタラクティブな /hooks メニューを開くと、クラッシュしていた。これらの名前は JavaScript オブジェクトのプロトタイプチェーンに存在するため、通常のオブジェクト操作と衝突していた。

変更後

/hooks メニューを開いて __proto__ や constructor といった名前のマッチャーを選択しても、クラッシュせずにフックの詳細が表示される。

ユーザーへの恩恵

__proto__ や constructor といった名前のマッチャーでもクラッシュせずに /hooks メニューでフック設定を確認できるようになる。

関連ドキュメント

v2.1.269(1件)

Added
[VSCode] ユーザー・プロジェクト・ローカル設定のフックを表示・追加・編集・削除できる Hooks ダイアログをコマンドメニューに追加した。管理対象・プラグイン・セッションのフックは読み取り専用のまま。
英語原文を表示
[VSCode] Added a Hooks dialog to the command menu for viewing hooks and adding, editing, or removing them in user, project, and local settings; managed, plugin, and session hooks stay read-only

変更前

コマンドメニューからは /hooks で読み取り専用の閲覧しかできず、追加・編集・削除は設定ファイルを手作業で編集する必要があった。

変更後

スラッシュコマンドの /hooks メニューは設定済みのフックを閲覧できるだけで、変更は settings.json を直接編集する必要があった。

ユーザーへの恩恵

コマンドメニューからフックを直接管理できるようになり、設定ファイルを手作業で編集する手間がなくなる。

関連ドキュメント

v2.1.268(3件)

Fixed
--print モードで PermissionRequest hooks が発火しない問題を修正した。
英語原文を表示
Fixed PermissionRequest hooks not firing in --print mode

変更前

--print モードでは、PermissionRequest hooks が発火せず、権限確認のタイミングで hooks を実行できなかった。

変更後

--print モードであっても、PermissionRequest hooks が権限確認のタイミングで正しく発火するようになった。

ユーザーへの恩恵

ヘッドレス実行中も hooks による権限の自動許可・拒否が機能し、自動化処理を安全に制御できるようになる。

関連ドキュメント

Fixed
CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS を設定しても、フックごとの timeout が未設定の SessionEnd フックが延長されず、1.5 秒後にキャンセルされる問題を修正した。
英語原文を表示
Fixed CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS not extending SessionEnd hooks that have no per-hook timeout (they were still cancelled after 1.5 seconds)

変更前

env var no effect on per-hook unset - per-hook timeout が設定されていない SessionEnd フックは、CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS を設定しても効果がなく、1.5 秒後にキャンセルされていた。

変更後

env var and per-hook timeout - CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS が per-hook timeout 未設定の SessionEnd フックのタイムアウト予算を延長するようになった。

ユーザーへの恩恵

環境変数で SessionEnd フック全体のタイムアウト予算を制御できるようになり、per-hook timeout を個別に設定せずに長時間処理を完走させられる。

関連ドキュメント

Improved
--continue / --resume の改善: SessionStart フックの完了を待たずに会話が即座に表示されるようになり、最初のメッセージでトランスクリプト全体を再読み込みしなくなった
英語原文を表示
Improved --continue / --resume: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript

変更前

--continue / --resume で再開する際、SessionStart フックが完了するまで会話が表示されず、最初のメッセージ送信時にトランスクリプト全体を再処理して読み込み直していた。

変更後

セッション開始フックの完了を待たずに会話が即座に表示されるようになり、最初のメッセージ送信時にトランスクリプト全体を再読み込みしなくなる。

ユーザーへの恩恵

再開直後にすぐ会話を確認できるため、待ち時間が減り、最初のメッセージの応答が速くなる。

関連ドキュメント

v2.1.265(1件)

Fixed
リモートコントロールから /clear を実行した際、SessionStart フックの完了やターミナル上で開いているダイアログへの対応を待たずに処理を完了するよう修正した。
英語原文を表示
Fixed /clear from Remote Control waiting on SessionStart hooks and on open terminal dialogs before completing

変更前

リモートコントロールから /clear を実行すると、SessionStart フックの完了やターミナル上で開いているダイアログへの応答を待つ間、クリア処理が完了せずにブロックされていた。

変更後

リモートコントロールから /clear を実行すると、SessionStart フックの完了やターミナル上の未応答ダイアログの解消を待たずに、クリア処理が即座に完了する。

ユーザーへの恩恵

リモートコントロール利用時に、フックの完了やダイアログへの対応を待たずにセッションを即座にクリアできるようになる。

関連ドキュメント

v2.1.260(1件)

Changed
サーバー管理設定を変更し、管理対象の CLAUDE.md(claudeMd)がセキュリティ承認ダイアログをトリガーしないようにしました。フック、シェルコマンド、サンドボックス、安全でない env 設定については引き続き承認が必要です。
英語原文を表示
Changed server-managed settings so a managed CLAUDE.md (claudeMd) no longer triggers the security approval dialog; hooks, shell-command, sandbox, and unsafe env settings still require approval

変更前

サーバー管理設定で配信される CLAUDE.md(claudeMd)を適用する際、セキュリティ承認ダイアログが表示され、ユーザーの承認が必要だった。

変更後

サーバー管理設定で配信される CLAUDE.md(claudeMd)は、セキュリティ承認ダイアログを表示せずに適用される。

ユーザーへの恩恵

管理者が配信した CLAUDE.md の内容をユーザーが承認なしですぐに受け取れるようになる。

v2.1.259(1件)

Fixed
ブロックする Stop フックが、ブロック後のターンでモデルの推論を失う問題を修正しました。一部のモデルではプロンプトキャッシュも見逃す可能性があります。
英語原文を表示
Fixed blocking Stop hooks causing the turn after a block to lose the model's reasoning from that turn and, on some models, miss the prompt cache

変更前

Stop フックがブロックした後のターンでは、モデルの推論が失われることがありました。一部のモデルでは、そのターンのプロンプトキャッシュも正しく利用されないことがありました。

変更後

Stop フックがブロックした後のターンでも、モデルの推論が正しく維持されるようになりました。一部のモデルでは、プロンプトキャッシュも正しく利用されるようになりました。

ユーザーへの恩恵

開発者は Stop フックのブロック後のターンにおいて、モデルの推論内容を正しく維持できるようになります。

関連ドキュメント

v2.1.257(1件)

Fixed
シンボリックリンクを介して宣言されたコマンド、エージェント、スキル、フック、またはその他のコンポーネントパスを通じて、プラグインが自身のディレクトリ外のファイルを読み取れる問題を修正しました。そのようなパスはエラーで拒否されるようになりました。
英語原文を表示
Fixed plugins being able to read files outside their own directory through a declared command, agent, skill, hooks or other component path that is a symlink; such paths are now refused with an error

変更前

プラグインは宣言されたコマンドやスキルなどのパスを通じて、自身のディレクトリ外のファイルにアクセスできていました。特にシンボリックリンクを経由するパスでは、意図せず外部のファイルシステムにアクセスしてしまう可能性がありました。

変更後

プラグインが宣言したコマンドやスキルなどのパスを通じて、自身のディレクトリ外のファイルにアクセスできなくなりました。シンボリックリンクを含むパスは、セキュリティ上の理由からエラーとして拒否されます。

ユーザーへの恩恵

プラグインが意図せず外部のファイルシステムにアクセスするリスクが排除され、プラグインの隔離性とセキュリティが向上します。

関連ドキュメント

v2.1.251(1件)

Added
モデルの切り替えをブロック、確認、または注釈する PreModelSwitch と PostModelSwitch フックイベントを追加しました。SessionStart の再開フックは、セッションの古さと再キャッシュの推定コストを受け取るようになりました。
英語原文を表示
Added PreModelSwitch and PostModelSwitch hook events (block, confirm, or annotate a model switch); SessionStart resume hooks now receive session staleness and the estimated re-cache cost

変更前

以前はモデル切り替えのフックイベントが存在しませんでした。セッション再開時のフックは、セッションの状態やコストに関する情報を取得できませんでした。

変更後

モデル切り替えの前後でフックイベントが発火し、セッションの状態やコスト情報を取得できるようになりました。これにより、セッションの再開時のフックがセッションの古さと再キャッシュコストを正確に把握できるようになります。

ユーザーへの恩恵

開発者はセッションの状態に基づいてモデル切り替えを制御できるようになり、コストを最適化できます。

v2.1.248(1件)

Fixed
フックが stdout に出力した {…} オブジェクトが有効な JSON でない場合、それを平文として黙って扱っていた問題を修正しました。パースエラーメッセージ付きでフックエラーとして報告されるようになりました。
英語原文を表示
Fixed hooks silently treating a stdout {…} object that isn't valid JSON as plain text; it's now reported as a hook error with the parse message

変更前

フックが stdout に JSON ではないオブジェクトを出力した場合、Claude Code はそれを平文として扱い、パースエラーを報告しませんでした。これにより、フックの設定ミスが見逃されることがありました。

変更後

フックが無効な JSON を出力した場合、パースエラーメッセージと共にフックエラーとして報告されるようになりました。これにより、フックの問題をデバッグしやすくなりました。

ユーザーへの恩恵

フックの設定ミスを即座に検知し、修正できるようになります。

関連ドキュメント

v2.1.246(1件)

Improved
Commands
/cd の改善: 移動後の新しいディレクトリのプロジェクト設定、フック、.mcp.json サーバー(通常の承認プロンプトの後)、スキル、エージェントが、--resume を実行するのではなく、移動直後に有効になるようになりました。
英語原文を表示
Improved /cd: the new directory's project settings, hooks, .mcp.json servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on --resume

変更前

移動後の新しいディレクトリのプロジェクト設定、フック、.mcp.json サーバー、スキル、エージェントは、--resume を実行した後にのみ有効になっていました。

変更後

移動後の新しいディレクトリのプロジェクト設定、フック、.mcp.json サーバー、スキル、エージェントが、移動直後に有効になるように変更されました。

ユーザーへの恩恵

ディレクトリを移動した後、すぐに新しい設定やスキルが適用されるため、作業の継続がスムーズになります。

v2.1.239(1件)

Fixed
セッションの作業ディレクトリが途中で削除された後にフックが "posix_spawn ENOENT" エラーでクラッシュする問題を修正し、プロジェクトルートまたはプロジェクトホームディレクトリからフックを実行するように変更しました。
英語原文を表示
Fixed hooks failing with "posix_spawn ENOENT" after the session's working directory was deleted; they now run from the project root or home directory instead

v2.1.233(1件)

Fixed
Claude Desktop または VS Code 上で実行している際に、権限確認プロンプトに対する通知フックが起動しない不具合を修正しました。
英語原文を表示
Fixed Notification hooks not firing for permission prompts when running under Claude Desktop or VS Code

変更前

Claude Desktop や VS Code の統合ターミナルなどの特定の環境で動かしている際、Claude がユーザーのコマンド承認を求めて停止していても、Notification フックによるデスクトップ通知やサウンドが正常に鳴らず、放置に気づけない不具合がありました。

変更後

これらの環境で実行している場合でも権限要求のイベントが正しくフックされ、デスクトップ通知やカスタムコマンドが確実にトリガーされるようになります。

ユーザーへの恩恵

権限の承認待ちが発生した際に他の作業をしていても、通知音などで即座に気づいてターミナルに戻ることができます。

関連ドキュメント

v2.1.222(1件)

Fixed
バックグラウンドエージェントタスク(要約、圧縮、リネーム処理など)において、PreToolUse自動承認フックがツール制限をバイパスして動作してしまう問題を修正しました。
英語原文を表示
Fixed PreToolUse auto-allow hooks bypassing tool restrictions in background agent tasks (summaries, compaction, renames)

v2.1.218(1件)

Fixed
未信頼フォルダーからのエージェントフック実行を禁止し、ワークスペースの信頼が必要となりました。
英語原文を表示
Fixed agent frontmatter hooks running from untrusted folders: hooks now require the agent file's own folder to have accepted workspace trust

変更前

信頼されていない場所からでもフックスクリプトが実行され、セキュリティ上のリスクがありました。

変更後

ワークスペースの信頼確認を経てからフックが許可されるようになり、安全性が高まりました。

ユーザーへの恩恵

外部からダウンロードしたプロジェクト等で未知のコードが勝手に実行されるのを防げます。

関連ドキュメント

v2.1.216(1件)

Fixed
ファイル変更フック後の @-mention が何も添付しない問題、vim のドットリピートによる操作の誤作動、再開時のステータスライン重複、再開ピッカーのハングアップを修正しました。
英語原文を表示
Fixed @-mentions silently attaching nothing after file-modifying hooks, vim dot-repeat of c-operators and paste, statusline running twice on resume, and resume-picker hangs on failure

v2.1.214(2件)

Fixed
フックのstdout JSONがスキーマバリデーションに失敗した場合に、終了コード2が適切にブロックとして動作しなかった問題を修正しました。
英語原文を表示
Fixed hooks with exit code 2 not blocking as documented when the hook's stdout JSON fails schema validation

変更前

フックが JSON を返したがバリデーションエラーになった場合、ブロックするはずの動作がスキップされていました。

変更後

JSON の解析に失敗した場合でも、確実にブロック動作を適用するように修正しました。

ユーザーへの恩恵

フックによる権限ポリシーの強制力が、出力形式に関わらず維持されます。

関連ドキュメント

Changed
SessionStart フックにおいて、セッションがフォークで開始された場合、ソースを resume ではなく fork と報告するように変更しました。
英語原文を表示
Changed SessionStart hooks to report source "fork" when a session begins as a fork instead of "resume"

変更前

フォークされたセッションも復帰(resume)として記録され、イベントの発生源が区別できていませんでした。

変更後

フォーク実行による開始であることを明確に判別できるようになりました。

ユーザーへの恩恵

ログやイベント監視において、セッションの発生経緯が正確に特定できます。

v2.1.207(1件)

Changed
プラグインのフック/モニター等において、シェル形式コマンドでの${user_config.*}の使用が禁止されました。シェルインジェクション対策のため、今後はexec形式(args配列)または環境変数を使用してください。
英語原文を表示
Plugin hooks/monitors/MCP headersHelper: ${user_config.*} in shell-form commands is now rejected (shell-injection fix). Hooks: use exec form (args array) or $CLAUDE_PLUGIN_OPTION_<KEY>; monitors and headersHelper: read the value inside the script (config file or the server's env block).

変更前

ユーザー設定値をシェルの文字列として直接展開していたため、設定値に悪意のある文字が含まれていた場合に予期しないコマンドが実行されるセキュリティリスク(シェルインジェクション)がありました。

変更後

変数の展開がより安全な方法(環境変数や直接の引数渡し)に限定され、不正なコマンド実行が防止されるようになりました。

ユーザーへの恩恵

プラグインをより安全に利用できるようになり、セキュリティを維持しつつ便利なカスタマイズが可能になります。

関連ドキュメント

v2.1.204(1件)

Fixed
ヘッドレスセッションのSessionStartフックにおいて、フックイベントがストリーミングされない問題を修正しました。これにより、フックの実行中にリモートワーカーがアイドル状態とみなされて強制終了される問題が解消されます。
英語原文を表示
Fixed hook events not streaming during SessionStart hooks in headless sessions, which could cause remote workers to be idle-reaped mid-hook

変更前

CI環境などのヘッドレスセッションでSessionStartフックを実行する際、イベントが適切にストリーミングされませんでした。そのため、長時間かかるフック処理の途中でリモートワーカーが「通信なし」と判定され、処理が完了する前に接続が切断されることがありました。

変更後

SessionStartフックの実行中もイベントが正しくストリーミングされるようになり、アクティブな状態が維持されます。

ユーザーへの恩恵

自動化されたワークフローやCI/CDパイプラインにおいて、初期化フックが途中でタイムアウトしたり中断されたりする心配がなくなり、大規模なプロジェクトのセットアップを安定して行えるようになります。

関連ドキュメント

v2.1.199(1件)

Fixed
SessionStart、Setup、およびSubagentStartフックが終了コード2で終了する際、標準エラー出力(stderr)を隠してしまう問題を修正し、内容がトランスクリプトに表示されるようにしました。
英語原文を表示
Fixed SessionStart, Setup, and SubagentStart hooks silently hiding stderr when exiting with code 2 — the error is now shown in the transcript

変更前

フック処理でエラーが発生してもその詳細が隠蔽され、何が原因で失敗したのかを確認できませんでした。

変更後

エラー内容がトランスクリプト上に明示されるようになり、デバッグが容易になりました。

ユーザーへの恩恵

フックの設定やスクリプトに問題がある場合でも、迅速に原因を把握して修正できます。

v2.1.191(1件)

Fixed
「Bash,PowerShell」のようにカンマで区切られたフックの検索条件が適用されない不具合を修正しました
英語原文を表示
Fixed hooks with comma-separated matchers (e.g. "Bash,PowerShell") silently never firing

変更前

カンマ区切りで複数の条件を指定した場合、条件が正しくパースされず、フックが黙って無視されていました。

変更後

指定した複数の matcher が正しく評価されるようになり、定義したフックが確実に動作します。

ユーザーへの恩恵

フックの設定漏れや予期せぬ動作を回避でき、自動化処理の信頼性が高まります。

関連ドキュメント

v2.1.183(1件)

Fixed
集中モード(focus mode)の応答下部に、PostToolUseフックの実行時間に関するデバッグ行が表示される問題を修正しました。
英語原文を表示
Fixed focus mode showing "Ran N PostToolUse hooks" timing lines under each response

v2.1.178(1件)

Fixed
Linux のサンドボックス環境において、スキルやフックのディレクトリがシンボリックリンクの場合に起動できない問題を修正しました。
英語原文を表示
Fixed Linux sandbox failing to start when .claude/skills or .claude/hooks is a symlink

変更前

.claude/skills や .claude/hooks を共有フォルダへのシンボリックリンクとして構成している Linux 環境では、セキュリティサンドボックスが正しく初期化できずエラーになっていました。

変更後

シンボリックリンクを適切に解決してサンドボックスを起動できるようになりました。

ユーザーへの恩恵

設定ファイルを複数の場所で共有・管理している開発環境でも、セキュリティ機能を有効にしたまま安全に Claude Code を利用できます。

関連ドキュメント

v2.1.169(1件)

Added
トラブルシューティング用に、すべてのカスタマイズ(CLAUDE.md、プラグイン、スキル、ホック、MCPサーバー)を無効にして起動する --safe-mode フラグを追加しました。
英語原文を表示
Added --safe-mode flag (and CLAUDE_CODE_SAFE_MODE) to start Claude Code with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting

変更前

特定のプラグインやフックが原因で Claude Code が正常に動作しない場合、原因を特定するために設定ファイルを個別に書き換える必要がありました。

変更後

原因不明の挙動が発生した際、--safe-mode を使うことで純粋な Claude Code の状態で起動し、カスタマイズによる影響かどうかを即座に切り分けられます。

ユーザーへの恩恵

複雑な設定を維持したまま、問題発生時の原因究明を迅速に行えるようになります。

v2.1.163(2件)

Added
フック:Stop および SubagentStop フックが hookSpecificOutput.additionalContext を返せるよう改善。エラー扱いせずに Claude へフィードバックを返し、ターンを継続可能
英語原文を表示
Hooks: Stop and SubagentStop hooks can now return hookSpecificOutput.additionalContext to give Claude feedback and keep the turn going without being labeled a hook error

変更前

フックが特定の出力を返すとフックエラーとして処理され、エージェントの動作が意図せず中断されることがありました。

変更後

フックから Claude へ追加の文脈を直接渡せるようになり、エラーを発生させずに処理を継続させることができます。

ユーザーへの恩恵

特定のタスク終了時にカスタムの指示やフィードバックを自動で挿入できるため、より高度な自動化ワークフローが実現します。

関連ドキュメント

Changed
stdio MCP サーバーが、--resume 実行時にフックや Bash と同じ CLAUDE_CODE_SESSION_ID を受け取るよう変更
英語原文を表示
stdio MCP servers now receive the same CLAUDE_CODE_SESSION_ID as hooks/Bash on --resume

変更前

セッション再開時、MCP サーバーが起動時の古いセッション ID を保持し続け、他のツールとの一貫性が失われる場合がありました。

変更後

すべてのサブプロセスが共通の現在のセッション ID を参照できるようになります。

ユーザーへの恩恵

外部ツールやログの相関分析を行う際に、MCP サーバーの動作を正確に現在のセッションに紐付けることができます。

関連ドキュメント

v2.1.161(1件)

Fixed
Windows 環境において、bash を明示的に呼び出すフック(例: /usr/bin/bash script.sh)が「コマンドが見つかりません」などのエラーで失敗する問題を修正。
英語原文を表示
Fixed Windows hooks that invoke bash explicitly (e.g., /usr/bin/bash script.sh) failing with "command not found" or "cannot execute binary file"

変更前

Windows 上で Linux 形式のパスを指定して bash スクリプトを実行しようとすると、パスの解決に失敗してフックが正常に動作しませんでした。

変更後

Windows 環境でも、bash を介したスクリプトの実行が適切にハンドルされるようになりました。

ユーザーへの恩恵

マルチプラットフォームで共有されているプロジェクトにおいて、Windows ユーザーでも共通のフックスクリプトをそのまま利用できるようになります。

v2.1.152(3件)

Added
SessionStart フックが reloadSkills: true を返せるようになり、フックによってインストールされたスキルを同じセッションですぐに利用可能になりました。
英語原文を表示
SessionStart hooks can now return reloadSkills: true to re-scan skill directories, making skills installed by the hook available in the same session

変更前

セッション開始時のフックで新しいスキルをセットアップしても、モデルがそれらを認識するのは次のセッションからになるというタイムラグがありました。

変更後

フックの実行完了と同時にスキルの再読み込みが行われるため、動的に追加されたコマンドも初回から即座に使用可能になります。

ユーザーへの恩恵

環境構築スクリプトなどをフックに組み込んだ際、自動セットアップされたツールをすぐに Claude に使わせることができます。

関連ドキュメント

Added
SessionStart フックが hookSpecificOutput.sessionTitle を通じて、起動時やレジューム時のセッションタイトルを設定できるようになりました。
英語原文を表示
SessionStart hooks can now set the session title via hookSpecificOutput.sessionTitle on startup and resume

変更前

セッションのタイトルは自動生成されるか手動で変更する必要があり、フックの処理結果に基づいた動的な命名はできませんでした。

変更後

フックが特定のブランチ名やタスク内容に基づいてセッションタイトルを決定し、/resume 一覧やターミナルのタイトルに反映させることができます。

ユーザーへの恩恵

多数のバックグラウンドセッションを並行して実行している場合でも、各セッションの目的を識別しやすくなります。

関連ドキュメント

Added
MessageDisplay フックイベントを追加し、フックによってアシスタントのメッセージ表示を変換または非表示にできるようになりました。
英語原文を表示
Added a MessageDisplay hook event that lets hooks transform or hide assistant message text as it is displayed

v2.1.149(1件)

Fixed
git worktree使用時のサンドボックス書き込み許可リストを修正:メインリポジトリ全体ではなく、共有の.gitディレクトリ(hooks/とconfigは除外)のみをカバーするよう制限しました
英語原文を表示
Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared .git directory (with hooks/ and config denied)

変更前

git worktree内で作業している際、Claudeが誤ってメインリポジトリ全体の書き込み権限を持ってしまい、サンドボックスの隔離が不十分でした。

変更後

書き込み許可範囲が、ワークツリーで共有が必要な.gitディレクトリの一部のみに厳密に絞り込まれ、hooksやconfigへの不正な書き込みもブロックされるようになりました。

ユーザーへの恩恵

複数のワークツリーを並行して使用する際の安全性が向上し、メインのプロジェクト設定を誤って変更される心配がなくなります。

v2.1.145(1件)

Changed
/plugin の発見・閲覧画面において、インストール前にプラグインのコマンド、エージェント、スキル、フック、MCP/LSPサーバーを確認できるように改善
英語原文を表示
/plugin Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation

変更前

プラグインにどのような機能(コマンドやスキルなど)が含まれているかを確認するには、実際にインストールしてみるまで詳細が不明でした。

変更後

インストール前の詳細画面で、プラグインが提供する具体的なコンポーネント(スキルやフックの種類、MCPサーバー構成など)がすべて表示されます。

ユーザーへの恩恵

自分のニーズに合ったプラグインかどうかを事前に判断できるため、不要なプラグインのインストールを避け、安心して機能を拡張できます。

v2.1.144(1件)

Changed
WorktreeCreate フックが設定されている場合、git 以外の VCS ユーザーでもバックグラウンドセッションのワークツリー隔離ガードが適用されるようになりました
英語原文を表示
Background session worktree isolation guard now applies for non-git VCS users with WorktreeCreate hooks configured

変更前

git 以外のバージョン管理システム(SVN や Perforce など)を使っている場合、バックグラウンド実行時の「作業コピーを壊さないための隔離」がうまく機能しない可能性がありました。

変更後

フックを通じてカスタムワークツリーを作成している環境でも、メインの作業場所とバックグラウンド作業の隔離が正しく強制されるようになりました。

ユーザーへの恩恵

どのような開発環境でも、バックグラウンドでの AI の作業が自分の手元の作業を誤って上書きしてしまうリスクが解消されます。

関連ドキュメント

v2.1.143(1件)

Fixed
ループを繰り返してブロックし続けるStopフックの修正:8回連続でブロックされた場合、警告を表示してターンを終了するようになりました
英語原文を表示
Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via CLAUDE_CODE_STOP_HOOK_BLOCK_CAP)

変更前

Stopフックの設定によっては、Claudeが無限ループに陥り、APIコストが無駄にかかり続けてしまうリスクがありました。

変更後

連続ブロック回数に上限(デフォルト8回、CLAUDE_CODE_STOP_HOOK_BLOCK_CAPで変更可)が設けられ、ループが自動検知されます。

ユーザーへの恩恵

バグのあるフックスクリプトによる意図しない課金の発生を防ぎ、安全に自動化を運用できます。

関連ドキュメント

v2.1.141(2件)

Added
フックのJSON出力にterminalSequenceフィールドを追加し、制御端末がなくてもフックがデスクトップ通知、ウィンドウタイトル、ベルを送信できるように改善。
英語原文を表示
Added terminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal

変更前

フックがデスクトップ通知やターミナルのタイトル更新、ベル通知を行うには、制御用のターミナルに直接アクセスする必要がありました。

変更後

フックから出力されるJSONにterminalSequenceフィールドが含まれるようになり、ターミナルがない環境下でもこれらの通知シーケンスを安全にエミットできます。

ユーザーへの恩恵

CI環境やバックグラウンドプロセスなどの非対話型環境で実行されるフックでも、ユーザーのデスクトップに対して重要なステータス通知を届けられるようになります。

関連ドキュメント

Fixed
ワークツリー切り替え後にフックが不正なtranscript_pathを受け取ってしまう問題を修正。
英語原文を表示
Fixed hooks receiving a non-existent transcript_path after EnterWorktree switches the working directory

変更前

EnterWorktreeイベントで作業ディレクトリが移動した後、フックに渡されるセッション履歴ファイルへのパスが古いままで、実在しないファイルを指すことがありました。

変更後

ディレクトリ移動後も、最新の正しいtranscript_pathがフックの入力JSONに反映されるようになります。

ユーザーへの恩恵

作業の自動化スクリプトや監視フックが、ワークツリー環境下でも途切れることなく確実に会話履歴へアクセスできるようになります。

関連ドキュメント

v2.1.140(1件)

Fixed
シンボリックリンクされた設定ファイルにおいて、設定のホットリロードが誤った変更イベントを検知し、不要な ConfigChange フックをトリガーしていたデグレードを修正
英語原文を表示
Fixed a regression in settings hot-reload where symlinked settings files caused misattributed change events and spurious ConfigChange hooks

変更前

設定ファイルをシンボリックリンクで管理している場合、ファイル変更の検知が正しく行われず、意図しないタイミングで設定変更フックが実行されることがありました。

変更後

リンク先の変更を正しく属性付けできるようになり、実際に設定が更新された時のみ正確にフックが動作するように復旧しました。

ユーザーへの恩恵

設定管理の柔軟性を保ちつつ、自動化スクリプトの誤作動を回避して安定したワークフローを維持できます。

関連ドキュメント

v2.1.139(2件)

Changed
MCP stdioサーバーが環境変数CLAUDE_PROJECT_DIRを受け取るよう変更。プラグイン設定で${CLAUDE_PROJECT_DIR}をコマンド内で参照可能になりました。
英語原文を表示
MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands

変更前

MCPサーバーが現在のプロジェクトのルートパスを知る標準的な方法がなく、プロジェクト固有のパスを扱うのが困難でした。

変更後

フックと同様にプロジェクトディレクトリ情報が渡されるため、サーバー側でプロジェクト相対パスを正確に処理できます。

ユーザーへの恩恵

プロジェクトごとに異なる設定ファイルやデータにアクセスするMCPツールの開発が容易になります。

関連ドキュメント

Fixed
フックの出力がターミナル表示を乱すバグを修正。フックはターミナルへの直接アクセスなしで実行されるようになります。
英語原文を表示
Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access

v2.1.136(2件)

Fixed
キャッシュクリーンアップによって使用中のバージョンが削除された際、プラグインの Stop や UserPromptSubmit フックが失敗する問題を修正しました。
英語原文を表示
Fixed plugin Stop/UserPromptSubmit hooks failing when cache cleanup deletes a version still in use by a running session

変更前

長時間のセッション中、バックグラウンドでクリーンアップ処理が走ると、現在実行中のフックが必要とするプラグイン資産まで削除され、エラーが発生することがありました。

変更後

実行中のセッションで使用されているプラグインバージョンのロック管理が改善され、フック実行中に必要なファイルが消失しないようになりました。

ユーザーへの恩恵

バックグラウンドのメンテナンス処理を気にすることなく、安定してプラグインや自動化フックを利用し続けることができます。

関連ドキュメント

Fixed
CLAUDE_ENV_FILE を利用した SessionStart フックによる環境変数が、セッション再開やクリア後に無効になる問題を修正しました。
英語原文を表示
Fixed env vars from CLAUDE_ENV_FILE SessionStart hooks going stale after /resume or /clear

変更前

セッションを跨いで環境変数を維持するための仕組みが、リセットや再開コマンドによって上書き・消失してしまい、都度手動での再設定が必要でした。

変更後

環境変数の永続化管理が修正され、セッションの再開やリセットを行ってもフックで設定した環境が正しく維持されるようになりました。

ユーザーへの恩恵

ツール実行に必要な環境変数を一度設定すれば、セッションの状態が変わっても一貫して使い続けることができます。

関連ドキュメント

v2.1.132(1件)

Added
Bash ツールのサブプロセス環境に CLAUDE_CODE_SESSION_ID 環境変数を追加し、フックに渡される session_id と一致させました
英語原文を表示
Added CLAUDE_CODE_SESSION_ID environment variable to the Bash tool subprocess environment, matching the session_id passed to hooks

変更前

Bash ツールで実行されるスクリプトやコマンドから、現在の Claude Code セッションを一意に識別する ID を直接参照する標準的な方法がありませんでした。

変更後

Bash ツールの実行環境に CLAUDE_CODE_SESSION_ID が自動的にセットされるようになり、フック(Hooks)に渡される JSON コンテキスト内の ID と同じ値をスクリプト内で利用できます。

ユーザーへの恩恵

セッションごとにログを分けたり、フックで開始した外部プロセスと Bash ツールでの操作を紐付けたりする自動化ワークフローがより確実かつ簡単に構築できるようになります。

関連ドキュメント

v2.1.128(1件)

Changed
サブプロセス(Bash、フック、MCP、LSP)が OTEL_* 環境変数を継承しなくなりました。これにより Bash ツール経由のアプリが CLI 自身の OTLP エンドポイントを拾わなくなります
英語原文を表示
Subprocesses (Bash, hooks, MCP, LSP) no longer inherit OTEL_* environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpoint

変更前

Claude Code 自身の OpenTelemetry 設定が実行されるサブプロセスにまで引き継がれてしまい、意図しないテレメトリデータが混在する可能性がありました。

変更後

サブプロセスがクリーンな状態で実行されるようになり、CLI の監視設定が開発中のアプリの動作に干渉しなくなります。

ユーザーへの恩恵

開発中のアプリケーションの動作やテストにおいて、環境変数の汚染による予期せぬ挙動を防ぐことができます。

関連ドキュメント

v2.1.122(1件)

Fixed
settings.json 内の hooks 項目の記述が不正な場合に、ファイル全体が無効化されてしまう問題を修正しました
英語原文を表示
Fixed a malformed hooks entry in settings.json no longer invalidating the entire file

変更前

設定ファイルのごく一部に記述ミスがあるだけで、他の正常な設定(パーミッションや環境変数など)まで全て読み込まれなくなっていました。

変更後

記述が不正なフック項目のみを個別に無視し、それ以外の正常な設定は可能な限り維持するように改善されました。

ユーザーへの恩恵

設定ミスによるツールの動作不能を防ぎ、一部のエラーがあっても安全にツールを使い続けることができます。

v2.1.121(1件)

Added
PostToolUse フックが、すべてのツールにおいて hookSpecificOutput.updatedToolOutput を介してツールの出力を置換できるようになりました(以前は MCP ツールのみ対応)。
英語原文を表示
PostToolUse hooks can now replace tool output for all tools via hookSpecificOutput.updatedToolOutput (previously MCP-only)

変更前

ツールの実行結果をフックで加工して Claude に渡す機能は、MCP サーバー経由のツールに限定されていました。Bash やファイル操作などの組み込みツールの出力を動的にフィルタリングしたり修正したりすることは困難でした。

変更後

すべての種類のツールで実行後の出力置換がサポートされました。フックスクリプトから updatedToolOutput を返すことで、Claude に渡される最終的なレスポンスを自在に制御できます。

ユーザーへの恩恵

秘匿情報のマスキングや、巨大なログ出力の要約など、Claude に渡す情報をフックでインテリジェントに制御し、コンテキストの質を高めることができます。

関連ドキュメント

v2.1.119(2件)

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 が追加され、ユーザーの承認待ち時間を除いた純粋な処理時間を取得できるようになりました。

ユーザーへの恩恵

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

関連ドキュメント

Fixed
レスポンスを返さない非同期の PostToolUse フックが、セッション履歴に空のエントリを書き込んでしまう問題を修正しました
英語原文を表示
Fixed async PostToolUse hooks that emit no response payload writing empty entries to the session transcript

変更前

バックグラウンドで動作するフック(通知のみを行う場合など)を実行すると、履歴の中に何も表示されない不要な行が増えていきました。

変更後

レスポンスのないフック実行は履歴を汚さないよう適切に処理されます。

ユーザーへの恩恵

/resume などで会話履歴を見返す際、不要な空白が排除され、本来の会話内容が読みやすくなります。

関連ドキュメント

v2.1.118(2件)

Fixed
エージェント型フックが Stop 等の特定のイベント以外で「メッセージが必要」というエラーで失敗する問題を修正
英語原文を表示
Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than Stop or SubagentStop

変更前

SubagentStart などのイベントに対してエージェント型フックを適用しようとすると、必要なデータ構造が不足しているというエラーで動作しませんでした。

変更後

より多くのイベントに対してエージェント型フックを正しく設定・実行できるようになりました。

ユーザーへの恩恵

特定のライフサイクルイベントにおいて、エージェントによる高度な自動検証を柔軟に組み込めるようになります。

関連ドキュメント

Fixed
エージェントフック内の検証用サブエージェントが実行したツール呼び出しで、再度 prompt フックが発火する問題を修正
英語原文を表示
Fixed prompt hooks re-firing on tool calls made by an agent-hook verifier subagent

変更前

フックの中で動くエージェントの動作そのものがフックを再発火させてしまい、無限ループのような不要な処理が発生していました。

変更後

検証用のサブエージェントによるアクションは、外部のフック発火対象から適切に除外されるようになりました。

ユーザーへの恩恵

フックの実行コスト(トークン使用量)が最適化され、意図しないフックの連鎖を防げます。

関連ドキュメント

v2.1.116(1件)

Changed
エージェントの frontmatter 内の hooks: が、--agent フラグを使用したメインスレッド・エージェント実行時にも発火するように修正
英語原文を表示
Agent frontmatter hooks: now fire when running as a main-thread agent via --agent

変更前

サブエージェントの設定ファイルで定義したフック (hooks:) は、サブエージェントとして呼び出された時しか機能せず、--agent で直接起動した場合には実行されませんでした。

変更後

--agent を使って特定のロールでセッションを開始した場合でも、そのエージェントの定義に含まれるフックが正しくトリガーされるようになりました。

ユーザーへの恩恵

特定の役割(セキュリティ担当やレビュアーなど)を担うエージェントを直接起動した際も、自動フォーマットなどのカスタムワークフローが期待通りに動作します。

関連ドキュメント

v2.1.110(1件)

Fixed
PermissionRequestフックによる入力更新後にpermissions.denyルールが再チェックされない問題、およびバイパス設定が制限を無視できる問題を修正
英語原文を表示
Fixed PermissionRequest hooks returning updatedInput not being re-checked against permissions.deny rules; setMode:'bypassPermissions' updates now respect disableBypassPermissionsMode

変更前

フック機能で入力を書き換えた際、禁止ルールをすり抜けてしまう可能性がありました。また、管理ポリシーで禁止されている場合でも、フックから「バイパスモード」へ移行できてしまうセキュリティ上の懸念がありました。

変更後

更新された入力に対して再度厳格な権限チェックが行われ、管理者設定による「バイパス禁止」も常に尊重されるようになりました。

ユーザーへの恩恵

組織で設定したセキュリティポリシーをバイパスされるリスクが解消され、フック機能を安心して業務に組み込めます。

関連ドキュメント

v2.1.105(1件)

Added
PreCompactフックのサポートを追加し、コード2の終了ステータスまたは特定のJSON返却によってコンパクションをブロックできるようになりました
英語原文を表示
Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning {"decision":"block"}

変更前

コンテキストの圧縮(コンパクション)が発生する際、ユーザーがその実行をプログラムで制御したり、特定の条件下で阻止したりする手段がありませんでした。

変更後

PreCompactフックにより、スクリプトがコード2で終了するか「decision:block」を返すことで、圧縮の実行を一時的に止めることが可能になりました。

ユーザーへの恩恵

重要な会話の文脈が自動圧縮で失われるのを防ぎたい自動化スクリプトや、特定のワークフローにおいて、コンテキストの整合性を維持しやすくなります。

関連ドキュメント

v2.1.101(1件)

Improved
管理設定で allowManagedHooksOnly が有効な場合でも、強制有効化されたプラグインのフックが実行されるよう改善
英語原文を表示
Improved plugin hooks from plugins force-enabled by managed settings to run when allowManagedHooksOnly is set

変更前

組織のポリシーでユーザーによるフックの追加を制限していると、IT管理者が配布したプラグイン内の必要なフックまでブロックされてしまうことがありました。

変更後

管理者が承認したプラグイン由来のフックは、制限下でも適切に実行されるようになります。

ユーザーへの恩恵

セキュリティを確保しつつ、組織で推奨される自動化ツールを確実に動作させることができます。

関連ドキュメント

v2.1.98(1件)

Fixed
長時間セッションでのプロンプト型 Stop/SubagentStop フックの失敗、およびフック評価時の API エラーが不正確に表示される問題を修正しました。
英語原文を表示
Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message

変更前

会話が長くなるとフックが動かなくなったり、エラーが発生しても原因が分からず「JSONバリデーション失敗」という曖昧な表示が出るだけでした。

変更後

長時間のセッションでもフックが安定して動作し、エラー発生時には API からの実際のメッセージが表示されるため、自己診断が可能になりました。

ユーザーへの恩恵

ワークフローの自動化や検証をフックで行っている場合、その信頼性とメンテナンス性が大幅に向上します。

関連ドキュメント

v2.1.97(1件)

Fixed
長いセッションでプロンプトタイプのStop/SubagentStopフックが失敗する問題、およびフック評価時のAPIエラーが具体的なメッセージではなく「JSON validation failed」と表示される問題を修正しました。
英語原文を表示
Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors displaying "JSON validation failed" instead of the actual message

変更前

セッションが長くなると終了時の自動処理(フック)が動かなくなったり、フックの不具合時に原因が分からないエラーメッセージが表示されることがありました。

変更後

長大セッションでもフックが安定動作し、エラー発生時も具体的な原因が表示されるようになったため、デバッグが容易になりました。

ユーザーへの恩恵

自動化された後処理や通知が確実に実行されるようになり、開発ワークフローの信頼性が向上します。

関連ドキュメント

v2.1.94(3件)

Added
UserPromptSubmit フックに hookSpecificOutput.sessionTitle を追加し、フック経由でのセッションタイトルの設定に対応
英語原文を表示
Added hookSpecificOutput.sessionTitle to UserPromptSubmit hooks for setting the session title

変更前

セッションのタイトルはAIによって自動生成されるか手動で変更する必要があり、ユーザーのプロンプト入力に基づいて外部スクリプトなどから動的にタイトルを制御する手段がありませんでした。

変更後

ユーザーがプロンプトを送信した直後に実行されるフックから、JSON形式でセッションタイトルを指定して上書きできるようになりました。

ユーザーへの恩恵

独自の命名規則に従ってセッションを自動整理したり、特定のキーワードが含まれる場合にタイトルを即座に変更したりといった自動化が可能になります。

関連ドキュメント

Fixed
YAMLフロントマテリアルで定義されたプラグインスキルのフックが無視される問題を修正
英語原文を表示
Fixed plugin skill hooks defined in YAML frontmatter being silently ignored

変更前

スキルファイル(SKILL.md)のフロントマテリアル内にフックを定義しても、システムに認識されず動作しない不具合がありました。

変更後

スキル定義内のフックが正しく読み込まれ、指定したイベントに応じて実行されるようになりました。

ユーザーへの恩恵

スキルのライフサイクルに合わせたカスタム動作を確実に行えるようになり、より高度なプラグイン開発が可能になります。

関連ドキュメント

Fixed
CLAUDE_PLUGIN_ROOT が未設定の場合にプラグインのフックがファイルエラーで失敗する問題を修正
英語原文を表示
Fixed plugin hooks failing with "No such file or directory" when CLAUDE_PLUGIN_ROOT was not set

変更前

プラグインのインストール環境によっては CLAUDE_PLUGIN_ROOT 変数が正しく解決されず、フック内で相対パスを使用しているスクリプトなどが実行できないことがありました。

変更後

変数の解決ロジックが改善され、プラグインルートを基準としたファイル参照が安定して動作するようになりました。

ユーザーへの恩恵

プラグインの配布形式やユーザーの実行環境を問わず、フック機能が確実に動作するようになります。

v2.1.92(1件)

Fixed
Stopイベントのプロンプト型フックが特定の応答で誤って失敗する問題を修正し、継続防止セマンティクスを復元。
英語原文を表示
Fixed prompt-type Stop hooks incorrectly failing when the small fast model returns ok:false, and restored preventContinuation:true semantics for non-Stop prompt-type hooks

変更前

モデルが ok:false を返した際にフックが予期せずエラーになったり、ツール実行をブロックすべき場面で継続されてしまう不具合がありました。

変更後

Stopイベントの判定が正確になり、プロンプト型フックによるワークフローの中断制御が意図通りに機能するようになります。

ユーザーへの恩恵

フックを利用した自動化プロセスの信頼性が向上し、特定の条件下で処理を確実に停止させることが可能になります。

関連ドキュメント

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(3件)

Added
PreToolUse フックに permission decision `
英語原文を表示
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

変更前

PreToolUse フックが返せる判断は allow、deny、ask の3種類で、ツール実行を後から再開できる形で一時停止する手段がなかった。ヘッドレスモードでユーザー入力が必要になった場合、呼び出し側プロセスは中断されたセッションをツール呼び出しの状態のまま保持して再開する仕組みを持てなかった。

変更後

PreToolUse フックに、ツール実行を中断したままセッションを終了できる permissionDecision: 'defer' が追加される。ヘッドレスモードで defer が返されると stop_reason: 'tool_deferred' でプロセスが終了し、未実行のツール呼び出しがトランスクリプトに保持される。呼び出し側プロセスが claude -p --resume で再開すると、同じツール呼び出しに対して PreToolUse フックが再度評価される。

ユーザーへの恩恵

Agent SDK アプリやカスタム UI から Claude Code を呼び出す際、ツール呼び出しの時点でセッションを一時停止して自前のインターフェースで入力を収集し、-p --resume で中断箇所から再開できる。

関連ドキュメント

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

変更前

Write/Edit/Read ツール実行時、PreToolUse/PostToolUse フックに渡される file_path が相対パスになることがあり、フックスクリプト側でパス判定が正しく動かないケースがあった。

変更後

Write/Edit/Read ツール実行時、PreToolUse/PostToolUse フックの入力の file_path が絶対パスとして渡されるようになった。

ユーザーへの恩恵

拡張後の file_path を前提にして書かれた公式ドキュメントやガイドのフックスクリプトが、意図どおりに動くようになる。

関連ドキュメント

Fixed
フックの if 条件フィルタが複合コマンド(ls && git push)や環境変数プレフィックス付きのコマンド(FOO=bar git push)にマッチしない問題を修正した。
英語原文を表示
Fixed hooks if condition filtering not matching compound commands (ls && git push) or commands with env-var prefixes (FOO=bar git push)

変更前

フックの if 条件フィルタは、シェル変数の代入を伴うコマンドをマッチングの対象から除外していたため、FOO=bar git push のようなコマンドはマッチしなかった。また、npm test && git push のような複合コマンドも適切に処理されなかった。

変更後

フックの if 条件フィルタが、ls && git push のような複合コマンドや FOO=bar git push のような環境変数プレフィックス付きのコマンドにもマッチするようになった。

ユーザーへの恩恵

FOO=bar git push や npm test && git push のような一般的なシェルコマンドパターンでも、設定されたフックが確実に発火するようになり、ツール実行の監査やガードの信頼性が向上する。

関連ドキュメント

v2.1.88(2件)

Fixed
フックの if 条件フィルタリングが、複合コマンド(ls && git push)や環境変数プレフィックス付きのコマンドにマッチしない問題を修正しました
英語原文を表示
Fixed hooks if condition filtering not matching compound commands (ls && git push) or commands with env-var prefixes (FOO=bar git push)

変更前

&& で繋いだ複数のコマンドや、VAR=val cmd のように環境変数を指定したコマンドに対して、特定のフックが正しく発火しない場合がありました。

変更後

コマンド解析の精度が向上し、より複雑な形式のシェルコマンドに対しても正確にフックが適用されるようになりました。

ユーザーへの恩恵

特定のコマンド実行時に自動で行いたい処理(プッシュ前のバリデーションなど)の確実性が高まり、意図しない操作の防止や自動化の信頼性が向上します。

関連ドキュメント

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(2件)

Added
フックにパーミッションルール構文(例: Bash(git *))を使用した条件付き「if」フィールドを追加し、実行フィルタリングによるプロセス生成のオーバーヘッドを削減
英語原文を表示
Added conditional if field for hooks using permission rule syntax (e.g., Bash(git *)) to filter when they run, reducing process spawning overhead

変更前

フックは条件に関わらずイベントごとに実行されていたため、特定のコマンドの時だけ動作させたい場合でも毎回プロセスが起動し、パフォーマンスに影響を与えていました。

変更後

パーミッションルールと同様の構文で実行条件を指定できるようになったため、条件に一致しない場合はプロセスの起動自体をスキップできます。

ユーザーへの恩恵

不要なフックの実行が抑制されることで、ターミナルの応答性が向上し、特に頻繁に発生するイベントでのリソース消費を抑えることができます。

関連ドキュメント

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.83(2件)

Added
サブプロセス環境(Bash ツール、フック、MCP stdio サーバー)から Anthropic やクラウドプロバイダーの認証情報を削除する CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 を追加しました
英語原文を表示
Added CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers)

変更前

Claude Code が起動されているシェルに設定されている API キーなどの機密情報が、Claude が実行する Bash コマンドや MCP サーバーなどの子プロセスにそのまま引き継がれていました。万が一、プロンプトインジェクションが発生した場合、これらの情報が外部に漏洩するリスクがありました。

変更後

この環境変数を有効にすることで、子プロセスの環境変数から機密性の高い認証情報を自動的に除去(スクラブ)します。Claude Code 本体は認証情報を保持し続けますが、その配下で動くツールからは参照できなくなります。

ユーザーへの恩恵

開発環境における機密情報の露出を最小限に抑え、信頼できないコードを分析したり、外部の MCP ツールを利用したりする際の安全性が大幅に向上します。

関連ドキュメント

Fixed
アンインストールされたプラグインのフックが、次のセッションを開始するまで動作し続けてしまう問題を修正しました。
英語原文を表示
Fixed uninstalled plugin hooks continuing to fire until the next session

v2.1.81(2件)

Added
スクリプト実行用の --bare フラグを追加しました。フック、LSP、プラグイン同期、スキルディレクトリの走査をスキップし、自動メモリ機能も完全に無効化されます。
英語原文を表示
Added --bare flag for scripted -p calls — skips hooks, LSP, plugin sync, and skill directory walks; requires ANTHROPIC_API_KEY or an apiKeyHelper via --settings (OAuth and keychain auth disabled); auto-memory fully disabled

変更前

非インタラクティブモード(-p)でスクリプトを実行する際も、通常のセッションと同様にフックの実行やプラグインの同期、メモリの読み込みが行われていました。

変更後

--bare フラグを使用することで、純粋にモデルの推論のみを高速に実行できるようになります。このモードでは OAuth 認証等がバイパスされるため、API キーの設定が必須となります。

ユーザーへの恩恵

CI/CD パイプラインや自動化スクリプトにおいて、不要なオーバーヘッドを削減し、起動速度の向上と実行の安定性を確保できます。

Fixed
セッション中にプラグインディレクトリが削除された場合、プラグインのフックがプロンプトの送信をブロックしてしまう問題を修正しました。
英語原文を表示
Fixed plugin hooks blocking prompt submission when the plugin directory is deleted mid-session

v2.1.79(1件)

Fixed
対話的な /resume を使ってセッションを切り替えた際、SessionEnd フックが実行されない問題を修正
英語原文を表示
Fixed SessionEnd hooks not firing when using interactive /resume to switch sessions

変更前

セッションを終了して別のセッションに切り替える際、本来実行されるべき終了時フック (SessionEnd) がスキップされていました。

変更後

セッションの切り替え時にも正しく SessionEnd イベントが発火し、登録されたフックが実行されるようになりました。

ユーザーへの恩恵

セッション終了時のクリーンアップ作業やログ記録などを、どのような切り替え操作を行っても確実に行うことができます。

関連ドキュメント

v2.1.78(2件)

Fixed
APIエラーが stop フックを誘発し、モデルにエラーを再入力し続けてしまう無限ループを修正
英語原文を表示
Fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model

変更前

特定の API エラーが発生した際、エラー処理のフック自体が新たなエラーを引き起こし、処理が止まらなくなる不具合がありました。

変更後

エラー発生時のループ検知と処理フローが改善され、無限ループに陥ることなく安全に停止するようになりました。

ユーザーへの恩恵

予期せぬエラー発生時でもリソースやトークンの浪費を防ぎ、安定した動作が保証されます。

関連ドキュメント

Fixed
--worktree フラグ使用時に、ワークツリーディレクトリ内のスキルやフックが読み込まれない問題を修正
英語原文を表示
Fixed --worktree flag not loading skills and hooks from the worktree directory

変更前

Git ワークツリーを利用した並行作業中に、そのワークツリー独自の自動化スクリプトやカスタムスキルが認識されませんでした。

変更後

ワークツリー環境からでも正しく設定ファイルが読み込まれ、メイン環境と同じ自動化機能が利用可能になりました。

ユーザーへの恩恵

複数の機能を並行して開発する際も、一貫した開発体験と自動化ツールを維持できます。

関連ドキュメント

v2.1.77(2件)

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

変更前

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

変更後

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

ユーザーへの恩恵

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

関連ドキュメント

Improved
claude plugin validate でスキルやエージェントのフロントマター、およびフックの設定ファイルを検証できるようになりました
英語原文を表示
Improved claude plugin validate to check skill, agent, and command frontmatter plus hooks/hooks.json, catching YAML parse errors and schema violations

変更前

プラグイン開発時に YAML のパースエラーやスキーマ違反があっても、実行するまで気づけないことがありました。

変更後

バリデーションコマンドで事前に構文エラーや設定の誤りを網羅的にチェックできるようになりました。

ユーザーへの恩恵

プラグイン開発のデバッグ効率が上がり、より高品質な拡張機能を短時間で作成できます。

関連ドキュメント

v2.1.76(1件)

Added
新しいElicitationおよびElicitationResultフックを追加 — 応答が返される前に、内容をインターセプトして上書きできるようになりました
英語原文を表示
Added new Elicitation and ElicitationResult hooks to intercept and override responses before they're sent back

変更前

MCP elicitationの応答やプロセスを自動化したり、独自のロジックで制御したりするための拡張ポイントが存在しませんでした。

変更後

新しいフックにより、Claude Codeがユーザーに応答を返す直前でデータを取得し、必要に応じてその内容を変更したり独自の処理を挟んだりすることが可能になりました。

ユーザーへの恩恵

elicitationプロセスにおけるカスタムバリデーションの追加や、特定の入力を自動補完するなどの高度な自動化が可能になります。

関連ドキュメント

v2.1.74(1件)

Fixed
終了時の SessionEnd フックが hook.timeout 設定にかかわらず1.5秒で強制終了される問題を修正 — CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS で設定可能に
英語原文を表示
Fixed SessionEnd hooks being killed after 1.5 s on exit regardless of hook.timeout — now configurable via CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS

変更前

セッション終了時に実行したいクリーンアップ処理やログ保存などのフック処理が、設定したタイムアウト時間に達する前に強制的に打ち切られていました。

変更後

環境変数で終了時の待機時間をカスタマイズできるようになり、時間のかかる終了後処理も確実に完了させることができます。

ユーザーへの恩恵

大切な後処理や自動化スクリプトが途中で途切れる心配がなくなり、開発ワークフローの自動化がより堅牢になります。

関連ドキュメント

v2.1.73(2件)

Fixed
セッションを再開した際に、SessionStart フックが2回重複して実行される問題を修正
英語原文を表示
Fixed SessionStart hooks firing twice when resuming a session via --resume or --continue

変更前

--resume や --continue を使用すると、初期化スクリプトが必要以上に実行され、セットアップ時間が無駄にかかっていました。

変更後

再開時のライフサイクルイベントが適切に整理され、フックは期待通り1回のみ実行されるようになりました。

ユーザーへの恩恵

セッション開始時の待ち時間が短縮され、プロジェクト固有の環境構築がより正確に行われます。

関連ドキュメント

Fixed
JSON出力形式のフックが、モデルのコンテキストに不要なシステムリマインダーを毎ターン挿入していた問題を修正
英語原文を表示
Fixed JSON-output hooks injecting no-op system-reminder messages into the model's context on every turn

変更前

フックを使用するたびに余分なメッセージがコンテキストに蓄積され、トークン消費が増大したりモデルの精度に影響したりしていました。

変更後

内部的なリマインダー挿入ロジックが改善され、コンテキストがクリーンに保たれるようになりました。

ユーザーへの恩恵

フックを多用してもコンテキストウィンドウが圧迫されにくくなり、長時間の対話でも一貫した性能が維持されます。

関連ドキュメント

v2.1.72(3件)

Fixed
バックグラウンドタスクやフックの応答が遅い場合に終了処理が停滞する問題を修正
英語原文を表示
Fixed slow exits when background tasks or hooks were slow to respond
Fixed
フックが有効なスキルがモデルから呼び出された際、1つのイベントに対してスキルフックが2回実行される問題を修正
英語原文を表示
Fixed skill hooks firing twice per event when a hooks-enabled skill is invoked by the model
Fixed
transcript_path の不備や設定保存時の prompt 消失、async フックの stdin 問題など、フック機能の複数の不具合を修正
英語原文を表示
Fixed several hooks issues: transcript_path pointing to the wrong directory for resumed/forked sessions, agent prompt being silently deleted from settings.json on every settings write, PostToolUse block reason displaying twice, async hooks not receiving stdin with bash read -r, and validation error message showing an example that fails validation

変更前

レジュームしたセッションで履歴パスが誤っていたり、非同期フックで read -r が動作しないなど、高度なカスタマイズを行うフック機能においていくつかの不安定な挙動がありました。

変更後

セッション管理とフック実行エンジンの修正により、自作の自動化スクリプトがより正確に動作するようになりました。

ユーザーへの恩恵

自作のフックを用いた高度なワークフロー自動化を、予期せぬエラーに悩まされることなく構築できます。

関連ドキュメント

v2.1.69(4件)

Fixed
Fixed TeammateIdle and TaskCompleted hooks to support {"continue": false, "stopReason": "..."} to stop the teammate, matching Stop hook behavior

関連ドキュメント

v2.1.64(3件)

Fixed
TeammateIdle および TaskCompleted フックにおいて、Stop フックと同様の {"continue": false, "stopReason": "..."} 形式によるチームメイトの停止をサポートしました。
英語原文を表示
Fixed TeammateIdle and TaskCompleted hooks to support {"continue": false, "stopReason": "..."} to stop the teammate, matching Stop hook behavior

変更前

エージェントチームの作業完了時や待機時の挙動をカスタマイズする際、スクリプト側から「ここで完全に停止させる」という判断を Claude Code に伝えるスマートな方法が不足していました。

変更後

標準的な停止シグナルをサポートしたことで、特定の条件(テスト失敗時など)でチームメイトの稼働を強制終了させることが、JSON レスポンス一つで制御可能になりました。

ユーザーへの恩恵

チームメイトの無駄な待機時間を削減し、特定の状況下での自動化フローの制御がより正確に行えるようになります。

関連ドキュメント

Fixed
プラグインによって登録された WorktreeCreate および WorktreeRemove フックが、誤って無視されてしまう問題を修正しました。
英語原文を表示
Fixed WorktreeCreate and WorktreeRemove plugin hooks being silently ignored

関連ドキュメント

Fixed
プラグインや SDK 利用者によって登録された WorktreeCreate フックが無視される問題を修正しました。
英語原文を表示
Fixed WorktreeCreate hooks registered by plugins or SDK consumers being silently ignored

関連ドキュメント

v2.1.63(2件)

Added
JSONをURLにPOSTし、JSONを受け取ることができるHTTPフックが追加されました。これにより、シェルコマンドの実行に代わる選択肢が増えました。
英語原文を表示
Added HTTP hooks, which can POST JSON to a URL and receive JSON instead of running a shell command

変更前

フックはシェルコマンドとしてしか実行できず、外部APIとの連携に制約がありました。

変更後

HTTPフックにより、指定したURLにJSONデータをPOSTし、JSON形式でレスポンスを受け取ることができるようになりました。

ユーザーへの恩恵

外部APIやWebサービスとの連携が容易になり、より多様な自動化ワークフローを構築できるようになりました。

関連ドキュメント

Fixed
フック設定メニューの移動中に発生していたメモリリークが修正されました。
英語原文を表示
Fixed memory leak when navigating hooks configuration menu

v2.1.50(2件)

Fixed
セッションの復旧時に作業ディレクトリにシンボリックリンクが含まれている場合、セッションストレージパスが起動時に異なるタイミングで解決されるためにセッションが見えなくなる問題を修正しました。また、グレーシャルシャットダウンシーケンスで、フックと分析の前にセッションデータをフラッシュすることでSSH切断時のセッションデータ損失も修正しました。
英語原文を表示
Fixed a bug where resumed sessions could be invisible when the working directory involved symlinks, because the session storage path was resolved at different times during startup. Also fixed session data loss on SSH disconnect by flushing session data before hooks and analytics in the graceful shutdown sequence.

変更前

作業ディレクトリにシンボリックリンクが含まれる場合、セッションの復旧時に表示されないことがありました。SSH接続中にセッションデータが失われる可能性もありました。

変更後

シンボリックリンクが含まれる作業ディレクトリでもセッションが正しく表示されるようになり、SSH切断時にもセッションデータが失われなくなりました。

ユーザーへの恩恵

セッションの可視性と信頼性が向上し、開発者は中断した作業を確実に再開できるようになります。データ損失のリスクも軽減され、安心して利用できます。

関連ドキュメント

Changed
CLAUDE_CODE_SIMPLEモードでは、MCPツール、アタッチメント、フック、CLAUDE.mdファイルの読み込みも無効になり、完全に最小限の体験を提供します。
英語原文を表示
CLAUDE_CODE_SIMPLE mode now also disables MCP tools, attachments, hooks, and CLAUDE.md file loading for a fully minimal experience.

関連ドキュメント

v2.1.49(1件)

Fixed
disableAllHooks設定が管理対象設定の階層を尊重するように修正されました。非管理対象設定では、ポリシーによって設定された管理対象フックを無効化できなくなりました。(#26637)
英語原文を表示
Fixed disableAllHooks setting to respect managed settings hierarchy — non-managed settings can no longer disable managed hooks set by policy (#26637)

変更前

以前は、ユーザーやプロジェクトの設定でdisableAllHooks: trueを設定すると、組織のポリシーによって管理対象として設定された重要なフックも無効化されてしまう可能性がありました。これにより、意図せずセキュリティやコンプライアンスに関わるフックが無効化され、ポリシーの一貫性が損なわれるリスクがありました。

変更後

今回の修正により、disableAllHooks設定が管理対象設定の階層を正しく尊重するようになりました。具体的には、ユーザーやプロジェクトレベルの設定でdisableAllHooksをtrueにしても、管理者によって設定された管理対象(マネージド)フックは無効化されなくなります。これにより、ポリシーによるフックの強制力が高まります。

ユーザーへの恩恵

エンタープライズ環境でClaude Codeを利用する管理者は、組織のセキュリティポリシーやワークフローに必要なフックが常に有効であることを保証できるようになります。ユーザーが誤って重要なフックを無効化する心配がなくなり、より安全で統制の取れた開発環境を維持できます。

関連ドキュメント

v2.1.47(2件)

Added
StopおよびSubagentStopフック入力に last_assistant_message フィールドを追加しました。これにより、フックはトランスクリプトファイルを解析することなく、最終的なアシスタントの応答テキストにアクセスできるようになります。
英語原文を表示
Added last_assistant_message field to Stop and SubagentStop hook inputs, providing the final assistant response text so hooks can access it without parsing transcript files.

変更前

StopおよびSubagentStopフックでは、アシスタントの最終応答テキストにアクセスするためにトランスクリプトファイルを解析する必要がありました。これは手間がかかるだけでなく、エラーが発生しやすいプロセスでした。

変更後

StopおよびSubagentStopフック入力に last_assistant_message フィールドが追加されました。これにより、フックはトランスクリプトファイルを解析することなく、アシスタントの最終応答テキストに直接アクセスできます。

ユーザーへの恩恵

フック開発者がアシスタントの最終応答に簡単にアクセスできるようになり、より効率的で堅牢なフックの作成が可能になりました。

関連ドキュメント

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.45(1件)

Fixed
プラグイン提供のコマンド、エージェント、フックが、再起動なしでインストール直後から利用可能になりました。
英語原文を表示
Fixed plugin-provided commands, agents, and hooks not being available immediately after installation without requiring a restart

変更前

プラグインをインストールしても、そのプラグインが提供するコマンド、エージェント、フックがすぐに利用できず、Claude Code の再起動が必要でした。

変更後

プラグインのインストール後、再起動することなく、提供されたコマンド、エージェント、フックが即座に利用可能になりました。

ユーザーへの恩恵

プラグインの追加や更新がよりスムーズになり、開発者はツールのセットアップ時間を短縮して、すぐに作業を開始できます。

v2.1.23(1件)

Fixed
ヘッドレスストリーミングセッションが終了した際に保留中の非同期フックがキャンセルされない問題が修正されました。
英語原文を表示
Fixed pending async hooks not being cancelled when headless streaming sessions ended

v2.1.19(1件)

Changed
追加の権限やフックを必要としないスキルについては、承認なしで実行できるように変更しました。
英語原文を表示
Changed skills without additional permissions or hooks to be allowed without requiring approval

v2.1.9(1件)

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

変更前

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

変更後

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

ユーザーへの恩恵

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

関連ドキュメント

v2.1.3(1件)

Fixed
ホームディレクトリから実行した場合に、トラストダイアログの承認によってセッション中にフックなどの信頼が必要な機能が有効にならない問題を修正しました。
英語原文を表示
Fixed trust dialog acceptance when running from the home directory not enabling trust-requiring features like hooks during the session

v2.1.0(6件)

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)するかの二択になり、変更後の内容をユーザーに確認させることができませんでした。

変更後

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

ユーザーへの恩恵

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

関連ドキュメント

Added
エージェントのフロントマターでフック設定が可能になり、エージェントの生存期間に限定したフックを定義できるようになりました。
英語原文を表示
Added hooks support to agent frontmatter, allowing agents to define PreToolUse, PostToolUse, and Stop hooks scoped to the agent's lifecycle
Added
スキルおよびスラッシュコマンドのフロントマターでフック設定をサポートしました。
英語原文を表示
Added hooks support for skill and slash command frontmatter
Added
フック設定に once: true を追加し、セッション内で一度だけ実行して削除されるフックを定義できるようになりました。
英語原文を表示
Added support for once: true config for hooks

変更前

セッション開始時の環境構築など、一度だけ実行すれば十分なタスクをフックで行う際、その後も条件に合うたびに繰り返し実行されてしまうのを防ぐのが困難でした。

変更後

初回実行後に自動で無効化されるフックを簡単に設定できるようになりました。

ユーザーへの恩恵

セットアップ処理や初回限定の通知などを、無駄な繰り返しを避けてスマートに自動化できます。

関連ドキュメント

Added
プラグインからのフックで、コマンド形式に加えてプロンプト形式およびエージェント形式をサポートしました。
英語原文を表示
Added support for prompt and agent hook types from plugins (previously only command hooks were supported)
Fixed
/hooks メニューにおいて、スクロール中に誤ったフックタイプが選択されてしまう UI の不具合を修正しました。
英語原文を表示
Fixed /hooks menu selecting wrong hook type when scrolling to a different option

変更前

フックの設定を対話形式で行う際、選択項目のスクロール操作が原因で意図しない設定が適用されてしまうことがありました。

変更後

リストの選択挙動が安定し、意図した通りのイベントやアクションを正確に設定できるようになりました。

ユーザーへの恩恵

複雑なフックの構成を、CLI 上でミスなく直感的に行えるようになります。

関連ドキュメント

v2.0.54(1件)

Changed
Hooks: Enable PermissionRequest hooks to process 'always allow' suggestions and apply permission updates

v2.0.42(1件)

v2.0.41(3件)

Added
Added model parameter to prompt-based stop hooks, allowing users to specify a custom model for hook evaluation

関連ドキュメント

Fixed
Fixed crash when plugin command hooks timeout during execution

v2.0.35(1件)

Fixed
Fixed menu navigation getting stuck on items with empty string or other falsy values (e.g., in the /hooks menu)

関連ドキュメント

v2.0.30(2件)

Added
Added prompt-based stop hooks
Fixed
Fixed hooks and plugins not executing when using --dangerously-skip-permissions flag

v2.0.12(2件)

Changed
**Plugin System Released**: Extend Claude Code with custom commands, agents, hooks, and MCP servers from marketplaces

関連ドキュメント

v2.0.10(1件)

Added
PreToolUse hooks can now modify tool inputs

v1.0.115(1件)

Changed
Show condensed output for post-tool hooks to reduce visual clutter

v1.0.112(1件)

Changed
Hooks: Added systemMessage support for SessionEnd hooks

v1.0.59(1件)

Changed
Hooks: Exposed PermissionDecision to hooks (including "ask")

v1.0.38(1件)

Changed
Released hooks. Special thanks to community input in https://github.com/anthropics/claude-code/issues/712. Docs: https://code.claude.com/docs/en/hooks