送信前フックを設定したい
10. フックコマンド / 機能
UserPromptSubmitプロンプト送信前
概要
ユーザーがプロンプトを送信する直前に呼び出されます。入力の検証、ログ記録、プロンプトの前処理に使えます。
設定例
// settings.json
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "echo \"[$(date '+%Y-%m-%d %H:%M:%S')] Prompt: $CLAUDE_TOOL_INPUT\" >> ~/.claude/prompts.log"
}
]
}
]
}
}
// プロンプトに機密情報が含まれていないかチェック
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qiE '(password|secret|api.?key)'; then echo 'Warning: 機密情報が含まれている可能性があります'; fi"
}
]
}
]
}
}こんな時に使う
- プロンプト送信前に処理を挟みたい時
- 入力内容を検証したい時
- プロンプト履歴を記録したい時
- 機密情報の入力を警告したい時
使い方
- 1UserPromptSubmit イベントにフック定義を追加
- 2$CLAUDE_TOOL_INPUT でプロンプト内容を取得
- 3exit 2 で送信をブロック可能
- 4stdout 出力は Claude にフィードバックされる
Tips
- プロンプトの履歴を残して後から分析できる
- 機密情報の誤送信防止に活用可能
- exit 2 でブロックすると送信がキャンセルされる
- 頻繁に実行されるので軽量な処理に留める