Skip to content

非同期フック完了メッセージをデフォルトで非表示に:--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 で設定された非同期フックのみに適用されます

関連情報