非同期フック完了メッセージをデフォルトで非表示に:--verboseで確認可能
原文(日本語に翻訳)
非同期フックの完了メッセージをデフォルトで非表示にしました(--verbose またはトランスクリプトモードで確認可能)
原文(英語)
Suppressed async hook completion messages by default (visible with --verbose or transcript mode)
概要
Claude Code v2.1.75から、非同期フックの完了メッセージがデフォルトで非表示になりました。以前は非同期フックが完了するたびに完了通知がターミナルに表示されていましたが、これが作業の邪魔になることがありました。必要な場合は --verbose フラグを使用するか、トランスクリプトモード(Ctrl+O)で確認できます。
基本的な使い方
bash
# 通常起動(非同期フック完了メッセージは非表示)
claude
# 非同期フック完了メッセージを表示する場合
claude --verbose
# トランスクリプトモードでフック完了を確認(Ctrl+O)
# セッション中に Ctrl+O を押すとトランスクリプトモードに切り替わる実践例
通常のワークフロー(デフォルト動作)
bash
# 非同期フックを設定していても、完了メッセージが邪魔にならない
claude
> コードをリファクタリングしてください
# → バックグラウンドでフック(例: Slack通知、ログ記録など)が実行される
# → 以前: "Hook completed: slack-notify" などのメッセージが表示されていた
# → 修正後: 完了メッセージは非表示。作業に集中できるデバッグ時に --verbose で詳細確認
bash
# フックが正しく動作しているかデバッグしたい場合
claude --verbose
> テストを実行してください
# → フック完了メッセージが表示される:
# "Async hook 'post-test-notify' completed (exit: 0)"
# "Async hook 'log-to-datadog' completed (exit: 0)"トランスクリプトモードでの確認
bash
# 通常起動
claude
> 大規模なタスクを実行してください
# → 作業中に Ctrl+O でトランスクリプトモードに切り替え
# → フックの実行履歴が確認できる非同期フックの設定例
json
// ~/.claude/settings.json
{
"hooks": {
"Stop": [
{
"type": "command",
"command": "curl -X POST https://hooks.slack.com/services/xxx -d '{\"text\":\"Claude Code task completed\"}'",
"async": true // 非同期実行(完了メッセージはデフォルトで非表示)
}
]
}
}注意点
- デフォルト動作変更: v2.1.75から非同期フックの完了メッセージは非表示になりました。以前のバージョンから移行する場合、フックが動作していないように見えることがありますが、実際には動作しています
- 確認方法:
--verboseフラグまたはトランスクリプトモード(Ctrl+O)で完了メッセージを確認できます - エラーの場合: フックがエラーで終了した場合は、
--verboseの設定に関わらずエラーメッセージが表示されることがあります - 同期フック: 同期フックは影響を受けません。この変更は
async: trueで設定された非同期フックのみに適用されます