フックを使用すると、エージェントのライフサイクル内のイベントに応じてカスタムロジックを実行できます。フックは、ポリシーの適用、前提情報の追加、アクションの記録、権限の変更、外部システムとの連携に利用できます。 Devin CLI は、Claude Code hooks と互換性のあるフック形式を採用しています。すでに Claude Code 用のフックを設定している場合は、そのまま Devin CLI でも自動的に動作します。Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
Hooksでできること
ポリシーを強制
危険なコマンドをブロックしたり、特定のアクションで確認を必須にしたり、ファイルへのアクセスを制限したりできます。
前提情報を追加
特定のツールが呼び出されたときに、追加の指示や情報を渡します。
付随処理を実行
イベント発生時に、スクリプトを実行したり、通知を送信したり、イベントを記録したりできます。
権限を変更
状況に応じて、権限を動的に付与または制限できます。
簡単な例
.devin/hooks.v1.json を作成します:
./scripts/check-command.sh が実行されます。このスクリプトは stdin でイベントデータを受け取り、ゼロ以外の終了コードを返すことでそのアクションをブロックできます。
Hook Events
| Event | 発生するタイミング |
|---|---|
PreToolUse | ツールの実行前 |
PostToolUse | ツールの実行完了後 |
PermissionRequest | 権限の判断が必要なとき |
UserPromptSubmit | ユーザーがメッセージを送信したとき |
Stop | エージェントが停止しようとするとき |
SessionStart | セッションの開始時 |
SessionEnd | セッションの終了時 |
フックの形式
command または prompt) 、任意の matcher (フックイベントの tool_name に対する正規表現) 、および各種設定があります。
| フィールド | 説明 |
|---|---|
matcher | フックイベントの tool_name に対してマッチする正規表現。空文字列、または matcher を省略した場合は、すべてのツール名に一致します。 |
type | シェルコマンドを実行する場合は "command"、LLM プロンプトを評価する場合は "prompt"。 |
command | 実行するシェルコマンド (command タイプの場合) 。 |
prompt | 評価する LLM プロンプト (prompt タイプの場合) 。 |
timeout | タイムアウト時間 (秒) (任意) 。 |
コマンドフック
| 出力フィールド | 説明 |
|---|---|
decision | "approve"、"block"、または "deny" |
reason | エージェントに表示される説明 |
DEVIN_PROJECT_DIR 環境変数は、プロジェクトのルートディレクトリに自動的に設定されます。
一致対象にできる組み込みツール名と MCP ツール名の形式については、Matcher の使用 を参照してください。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 — フックは通常どおり続行 |
| 2 | ブロック — アクションは拒否される |
| その他 | エラー — ログに記録されるが、ブロックはしない |
フックの格納場所
プロジェクトレベル
| 場所 | 説明 |
|---|---|
.devin/hooks.v1.json | 独立した hooks ファイル (推奨) |
.devin/config.json | 設定ファイル内の "hooks" キー |
.devin/config.local.json | "hooks" キー (ローカルで上書き、gitignore 対象) |
.claude/settings.json | "hooks" キー (Claude Code 形式) |
.claude/settings.local.json | "hooks" キー (Claude Code 形式) |
ユーザーレベル (グローバル)
| 場所 | 説明 |
|---|---|
~/.config/devin/config.json (%APPDATA%\devin\config.json は Windows) | ユーザー設定の "hooks" キー |
~/.claude.json | "hooks" キー (Claude Code 形式) |
~/.claude/settings.json | "hooks" キー (Claude Code 形式) |
~/.claude/settings.local.json | "hooks" キー (Claude Code 形式) |
.devin/hooks.v1.json では、hooks オブジェクトがファイル全体にあたります (ラッパーキーは不要です) 。それ以外の場所では、hooks は設定ファイル内の "hooks" キーの下にネストされます。.claude/ 配下のパスにある hooks は、read_config_from.claude が有効な場合 (デフォルト) に読み込まれます。必要に応じて、ユーザー設定でこれを無効にできます。フックの確認
/hooks スラッシュコマンドを利用します:
次のステップ
ライフサイクルフック
各イベントタイプと利用可能なデータについて詳しく解説します。
Claude Code Hooks ドキュメント
フック形式の完全なリファレンスです。
