hooks について
Claude Code の開発者向けに、Shell と TypeScript を使ったフックの作成パターン、イベント、登録、テスト方法を説明するスキルです。
主な機能
- 01`npx tsx` で TypeScript を呼び出す Shell ラッパー
- 02フックイベントの概要
- 03`.claude/settings.json` での登録
- 04フックの手動テスト
活用シーン
- 01Shell と TypeScript によるフックの作成
- 02イベントへのフック登録
- 03セッション開始フックの手動テスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill hooksインストール後、Claude Code で/hooksを入力して読み込まれたか確認します。
詳細
フック開発ルール
.claude/hooks/ 内のファイルを扱う場合:
パターン
シェルラッパー(.sh)→ npx tsx 経由で TypeScript(.ts)
シェルラッパーのテンプレート
#!/bin/bash
set -e
cd "$CLAUDE_PROJECT_DIR/.claude/hooks"
cat | npx tsx <handler>.ts
TypeScript ハンドラーのパターン
interface HookInput {
// Event-specific fields
}
async function main() {
const input: HookInput = JSON.parse(await readStdin());
// Process input
const output = {
result: 'continue', // or 'block'
message: 'Optional system reminder'
};
console.log(JSON.stringify(output));
}
フックイベント
- PreToolUse - ツール実行前(ブロック可能)
- PostToolUse - ツール実行後
- UserPromptSubmit - ユーザープロンプトの処理前
- PreCompact - コンテキストの圧縮前
- SessionStart - セッションの開始/再開/圧縮時
- Stop - エージェントの処理終了時
テスト
フックを手動でテストします:
echo '{"type": "resume"}' | .claude/hooks/session-start-continuity.sh
登録
.claude/settings.json にフックを追加します:
{
"hooks": {
"EventName": [{
"matcher": ["pattern"], // Optional
"hooks": [{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/hook.sh"
}]
}]
}
}
コメント
Markdown 対応