Claude Codeフック機能のテストとOpus 4.6 API料金の確認
やったこと
Claude Codeのフック機能を一通り触って、どこまで使えるかを確認した。加えて、Opus 4.6のAPI料金体系を整理した。
PreToolUseフック(AskUserQuestion)
ユーザーへの質問が発生する前にフックを挟める機能。.claude/settings.local.json の hooks セクションに定義する。
// .claude/settings.local.json(抜粋)
{
"hooks": {
"PreToolUse": [
{
"matcher": "AskUserQuestion",
"hooks": [
{
"type": "command",
"command": "echo 'AskUserQuestion triggered'"
}
]
}
]
}
}
何度かテストを繰り返した。フックが発火するタイミングと、スクリプトに渡されるJSON(stdin経由)の構造を確認できた。ツール名でmatcherを指定すれば、特定のツール呼び出しだけをインターセプトできる。
SubagentStopフック(サブエージェント完了通知)
サブエージェント(Agentツール)の処理が完了したタイミングで発火するフック。バックグラウンドで走らせた重い処理の終了をデスクトップ通知で受け取る、という使い方を想定してテストした。
# 通知スクリプトの例(PowerShell経由)
powershell -Command "New-BurntToastNotification -Text 'Claude Code', 'サブエージェント完了'"
Windows環境ではBurntToastモジュールを使えばトースト通知が出せる。フック自体は問題なく動いた。
バックグラウンドタスク実行
Bashツールの run_in_background: true パラメータとSubagentStopフックを組み合わせて、長時間タスクの完了通知パイプラインを検証した。タスクが終わるとフックが走り、通知が飛ぶ流れを確認できた。
Opus 4.6の1Mコンテキストと$200 Maxプラン
コンテキストウィンドウ
Opus 4.6は1Mトークンのコンテキストウィンドウを持つ。Claude Codeで大きなコードベースを扱うとき、以前のモデルと比べてコンテキスト切れで途切れる頻度が減った。
API料金($200 Maxプラン)
MaxプランではAPI経由の利用料金が標準価格から割引される。
| 項目 | 標準価格 | Maxプラン価格 |
|---|---|---|
| Input | $15 / MTok | $10 / MTok |
| Output | $75 / MTok | $37.50 / MTok |
Outputが半額になるのが大きい。Claude Codeはツール呼び出しのたびにOutputトークンを消費するため、ヘビーに使う場合はMaxプランのほうがコスト効率が良い。$200/月の固定費を超えるかどうかが分岐点になる。
振り返り
フック機能は「Claude Codeの動作に割り込む」ための仕組みとして筋が良い。特にSubagentStopフックは、長時間タスクを投げて別の作業をしている間に通知を受け取れるので、作業フローが変わる。
料金については、Outputの割引率が50%と大きいため、1日あたりの利用量が一定を超えるならMaxプランを選んだほうが得になる。自分の使い方だと月の後半でAPI費用が$200を超える月があったので、切り替えを検討する材料が揃った。