Skip to content

原文(日本語に翻訳)

SessionStart フックがスタートアップおよび再開時に hookSpecificOutput.sessionTitle を通じてセッションタイトルを設定できるようになりました。

原文(英語)

SessionStart hooks can now set the session title via hookSpecificOutput.sessionTitle on startup and resume

概要

SessionStart フックが hookSpecificOutput.sessionTitle フィールドを返すことで、セッションの開始時または再開時にセッションタイトルを動的に設定できるようになりました。これにより、プロジェクト名・ブランチ名・日時などに基づいたわかりやすいセッション名を自動設定できます。

基本的な使い方

SessionStart フックのスクリプトで hookSpecificOutput.sessionTitle を含む JSON を返します。

bash
#!/bin/bash
# .claude/hooks/session-start.sh

SESSION_TITLE="My Project Session"

echo "{\"hookSpecificOutput\": {\"sessionTitle\": \"$SESSION_TITLE\"}}"

実践例

git ブランチ名をセッションタイトルに設定

現在の git ブランチ名を自動でセッションタイトルにする例です。

bash
#!/bin/bash
# .claude/hooks/session-start.sh

# 現在のブランチ名を取得
BRANCH=$(git branch --show-current 2>/dev/null || echo "no-branch")
PROJECT=$(basename "$(pwd)")
TITLE="$PROJECT @ $BRANCH"

echo "{\"hookSpecificOutput\": {\"sessionTitle\": \"$TITLE\"}}"

実行例: my-app @ feature/new-login

日時・ユーザー情報を含むセッションタイトル

セッション開始時刻や環境情報を含むタイトルを設定する例です。

bash
#!/bin/bash
# .claude/hooks/session-start.sh

DATE=$(date +"%Y-%m-%d %H:%M")
USER_NAME=$(git config user.name 2>/dev/null || echo "$USER")
PROJECT=$(basename "$(pwd)")

TITLE="$PROJECT | $USER_NAME | $DATE"

echo "{\"hookSpecificOutput\": {\"sessionTitle\": \"$TITLE\"}}"

reloadSkills と組み合わせた複合フック

セッションタイトル設定とスキルリロードを同時に行う例です。

bash
#!/bin/bash
# .claude/hooks/session-start.sh

# スキルをインストール
install_project_skills

# セッションタイトルとスキルリロードを同時に設定
BRANCH=$(git branch --show-current 2>/dev/null || echo "main")
PROJECT=$(basename "$(pwd)")

cat <<EOF
{
  "reloadSkills": true,
  "hookSpecificOutput": {
    "sessionTitle": "$PROJECT [$BRANCH]"
  }
}
EOF

注意点

  • sessionTitlehookSpecificOutput の中にネストして指定する必要があります
  • セッション起動時(startup)と再開時(resume)の両方でこの設定が適用されます
  • タイトルに特殊文字を含む場合は、JSON エスケープ処理を適切に行ってください
  • タイトルが設定されない場合は、デフォルトのセッション名が使用されます

関連情報