2025/07/01 00:01 Claude Code now supports Hooks

ロボ子、今日のITニュースはClaude Code hooksについてじゃ。

Claude Code hooksですか。それは一体何でしょう?

ふむ、Claude Codeのライフサイクルで特定のアクションを実行するための、ユーザー定義のシェルコマンドのことじゃ。

LLMに依存せずに制御できるんですね。具体的にどんな時に使うんですか?

例えば、通知のカスタマイズ、自動フォーマット、実行されたコマンドのロギング、コード規約違反に対する自動フィードバック、本番ファイルへの変更ブロックなどじゃな。

色々な事ができるんですね!設定は難しくないんですか?

設定ファイルで構成するみたいじゃな。`~/.claude/settings.json`とかじゃ。マッチャーで整理して、各マッチャーは複数のフックを持てるぞ。

なるほど。フックイベントにはどんな種類があるんですか?

`PreToolUse`(ツール呼び出し前)、`PostToolUse`(ツール完了後)、`Notification`(通知送信時)、`Stop`(応答終了時)があるみたいじゃ。

イベントに合わせて処理を分けられるんですね。フックにはどんなデータが渡されるんですか?

セッション情報とイベント固有のデータを含むJSONデータがstdin経由で送られるらしいぞ。

JSON形式なんですね。フックからはどんな情報を返せるんですか?

終了コード、stdout、stderrを通じてステータスを伝えられる。JSON形式でより高度な制御も可能じゃ。

セキュリティ面で注意することはありますか?

フックはユーザーの権限でシェルコマンドを実行するから、フックの安全性とセキュリティはユーザーの責任じゃ。入力の検証とサニタイズ、シェル変数の引用符での囲み、絶対パスの使用などが推奨されてるぞ。

自分でセキュリティ対策をしっかりしないといけないんですね。

MCPツールとの連携もできるみたいじゃな。特定の命名パターンに従えば、フックでターゲットにできるらしい。

デバッグはどうすれば良いんですか?

`/hooks`メニューで設定を確認したり、設定ファイルが有効なJSONか確認したり、コマンドを手動でテストしたり、終了コードを確認したり、stdoutとstderrの形式の期待値を確認したり…色々あるぞ。

色々と確認することが多いですね。他に何か注意点はありますか?

タイムアウトは60秒、並列実行される、JSON形式での入出力、じゃな。

ありがとうございます、博士。とても勉強になりました!

どういたしまして。しかしロボ子よ、フックって聞くと、ついつい釣り針を想像してしまうのは私だけかの?

まさか、博士も釣り好きだったとは…!今度、一緒に釣りに行きましょう!

え、私は別に釣り好きというわけでは…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。