Skip to content

原文(日本語に翻訳)

TaskCreate 経由でタスクが作成されたときに発火する TaskCreated フックを追加。

原文(英語)

Added TaskCreated hook that fires when a task is created via TaskCreate

概要

TaskCreate ツールを使ってバックグラウンドタスクが作成された瞬間に実行される TaskCreated フックが追加されました。このフックを使うことで、タスク作成時の通知、ログ記録、外部システムへの連携などを自動化できます。

基本的な使い方

settings.jsonTaskCreated フックを設定します。

json
{
  "hooks": {
    "TaskCreated": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'New task created!' >> ~/claude-tasks.log"
          }
        ]
      }
    ]
  }
}

実践例

タスク作成をSlackに通知

json
{
  "hooks": {
    "TaskCreated": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "curl -s -X POST $SLACK_WEBHOOK_URL -H 'Content-type: application/json' -d '{\"text\": \"Claude Codeが新しいタスクを作成しました\"}'"
          }
        ]
      }
    ]
  }
}

タスクIDとセッション情報をログに記録

json
{
  "hooks": {
    "TaskCreated": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/scripts/log-task.py"
          }
        ]
      }
    ]
  }
}
python
# ~/scripts/log-task.py
import sys
import json
import datetime

data = json.load(sys.stdin)
log_entry = {
    "timestamp": datetime.datetime.now().isoformat(),
    "event": "TaskCreated",
    "data": data
}
with open(os.path.expanduser("~/claude-task-log.jsonl"), "a") as f:
    f.write(json.dumps(log_entry) + "\n")

macOSでデスクトップ通知

json
{
  "hooks": {
    "TaskCreated": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"バックグラウンドタスクが開始されました\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

既存フックとの組み合わせ

json
{
  "hooks": {
    "TaskCreated": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"[$(date)] Task created\" >> ~/claude.log"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"[$(date)] Session ended\" >> ~/claude.log"
          }
        ]
      }
    ]
  }
}

注意点

  • TaskCreated フックはタスクが作成された時点に発火します。タスクの完了を待ちません
  • フックのコマンドで標準入力からJSONデータを受け取ることができ、タスクの詳細情報にアクセスできます
  • 長時間実行するコマンドをフックに設定するとClaudeの動作をブロックする可能性があります。非同期処理が必要な場合はバックグラウンド実行を検討してください
  • TaskCreate ツールを使ったバックグラウンドタスク作成時のみ発火します

関連情報