.devin/ ディレクトリ (またはユーザーレベルの設定) に配置すると、Devin CLI はマッチングするライフサイクルイベントで実行します。.claude/ ディレクトリ内の既存のフックも自動的に検出されます。詳しくは Where Hooks Live を参照してください。
Hooksでできること
ポリシーを強制
危険なコマンドをブロックしたり、特定のアクションで確認を必須にしたり、ファイルへのアクセスを制限したりできます。
前提情報を追加
特定のツールが呼び出されたときに、追加の指示や情報を渡します。
付随処理を実行
イベント発生時に、スクリプトを実行したり、通知を送信したり、イベントを記録したりできます。
権限を変更
状況に応じて、権限を動的に付与または制限できます。
簡単な例
.devin/hooks.v1.json を作成します:
./scripts/check-command.sh が実行されます。このスクリプトは stdin でイベントデータを受け取り、ゼロ以外の終了コードを返すことでそのアクションをブロックできます。
Hook Events
各イベントと利用可能なデータの詳細については、ライフサイクルフックを参照してください。
フックの形式
command または prompt) 、任意の matcher (フックイベントの tool_name に対する正規表現) 、および各種設定があります。
コマンドフック
DEVIN_PROJECT_DIR 環境変数は、プロジェクトのルートディレクトリに自動的に設定されます。
一致対象にできる組み込みツール名と MCP ツール名の形式については、Matcher の使用 を参照してください。
出力形式
decision (必要に応じて reason も) を返します:
hookSpecificOutput オブジェクト内で additionalContext を返します:
PreToolUse の hookSpecificOutput 内で updatedInput を返します。updatedInput 内のフィールドはツールの引数にマージされるため、一部の項目だけを更新できます (例: command のみ):
終了コード
フックの格納場所
プロジェクトレベル
ユーザーレベル (グローバル)
.devin/hooks.v1.json では、hooks オブジェクトがファイル全体にあたります (ラッパーキーは不要です) 。それ以外の場所では、hooks は設定ファイル内の "hooks" キーの下にネストされます。.claude/ 配下のパスにある hooks は、read_config_from.claude が有効な場合 (デフォルト) に読み込まれます。必要に応じて、ユーザー設定でこれを無効にできます。フックの確認
/hooks スラッシュコマンドを利用します:
次のステップ
ライフサイクルフック
各イベントタイプと利用可能なデータについて詳しく解説します。
設定
Devin CLI がフックの読み込み元とする設定場所を制御します。

