3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code の language 設定を毎セッション変えて、起動時に自己紹介させる

Last updated at Posted at 2026-01-16

こうなる

$ claude

>

やれやれ...また仕事か。まあ、紅茶でも飲みながら付き合うとするか。
私は怠惰な戦術家だ。できれば働きたくないが、必要な時には的確な判断を下す。

> このファイルをリファクタリングして

ふむ...見せてもらおう。
(ファイルを確認)
なるほど、いくつか改善点が見える。面倒だが、やるべきことはやろう。
まず、この関数は責務が多すぎる。分割した方がいい...

なぜこうしたいのか

毎日何時間も Claude Code と会話していると、いつも同じ口調だと飽きてきます。

この仕組みで実現したいのは:

  1. セッション全体の会話がそのキャラクタになる - 単発の応答ではなく、セッション中ずっとその口調で話してくれる
  2. セッションごとに自動でキャラクタが変わる - 手動で設定を変える必要がなく、起動するたびに違うキャラクタと会話できる
  3. 冒頭の挨拶でどのキャラクタか分かる - 最初の応答で今日のキャラクタを把握できる

長時間の作業も、違うキャラクタと話すと新鮮な気持ちになれます。「今日はどんなキャラかな?」というワクワク感も楽しいです。

概要

Claude Code には language という設定があり、Claude の応答スタイル(話し方)をカスタマイズできます。

この記事では、以下の仕組みを紹介します:

  1. SessionEnd hook でセッション終了時に次回の language をランダムに設定する
  2. SessionStart hook でセッション開始時に挨拶させ、どのキャラクタが適用されているか確認する

仕組み

1. SessionEnd hook で language をランダムに書き換え

セッション終了時に次回の language をランダムに設定するスクリプトを作成します。

#!/bin/bash
# ~/.claude/scripts/randomize-language.sh

SETTINGS_FILE=~/.claude/settings.json

# language バリエーション(改行区切り)
LANGUAGES="関西弁で明るくお節介な話し方
丁寧語で威圧感のある帝王口調
「〜でござる」時代劇風の穏やかな話し方
熱血ポジティブで「うまい!」が口癖
クールで簡潔、「やれやれ」が口癖
怠惰だが鋭い洞察力を持つ戦術家風
ハイテンションなお嬢様口調
毒舌だけど面倒見のいいオネエ"

# settings.json が存在しない場合は終了
if [ -f "$SETTINGS_FILE" ]; then
  : # 存在する場合は続行
else
  exit 0
fi

# jq が存在しない場合は終了
which jq > /dev/null 2>&1
if [ $? -ne 0 ]; then
  exit 0
fi

# ランダムに選択(shuf を使用)
SELECTED=$(echo "$LANGUAGES" | shuf -n 1)

# settings.json を更新
jq --arg lang "$SELECTED" '.language = $lang' "$SETTINGS_FILE" > "${SETTINGS_FILE}.tmp"
if [ $? -eq 0 ]; then
  mv "${SETTINGS_FILE}.tmp" "$SETTINGS_FILE"
fi

exit 0

LANGUAGES 変数は好きなだけ増やせます。どんなキャラクタを設定できるかは Claude 自身に相談するのがおすすめです。「もっとクールな感じで」「ツンデレ要素を追加して」など、対話しながら調整できます。

SessionEnd hook の stdout は通常のセッション終了時にはユーザーに表示されません。次回のキャラクタは、次のセッション開始時の挨拶で確認してください。

変更頻度は調整可能です。スクリプト内で日付をチェックすれば「毎日変更」に、cron で実行すれば「定期変更」にできます。

2. SessionStart hook で挨拶させる

セッション開始時に挨拶を促すスクリプトを作成します。

#!/bin/bash
# ~/.claude/scripts/session-personality.sh

echo "セッション開始です。今のキャラ設定が分かるように挨拶してください。"
exit 0

ポイント: SessionStart hook の stdout は Claude のコンテキストに追加されます。これにより、セッション開始時に Claude がそのキャラクタで挨拶してくれるので、どんなキャラクタか把握できます。

3. settings.json への登録

初期値は "japanese" を設定しておきます。スクリプトが失敗した場合のフォールバックとしても機能します。

{
  "language": "japanese",
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/scripts/session-personality.sh"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/scripts/randomize-language.sh"
          }
        ]
      }
    ]
  }
}

動作例

例1: 関西弁キャラの場合

> このコードにバグがあるんだけど

おっ、見せてみ〜!
(コードを確認)
あ〜、これやな!ここの条件分岐、逆になってるで。
こう直したらええと思うわ〜

例2: 戦術家風の場合

> このコードにバグがあるんだけど

やれやれ...見せてもらおう。
(コードを確認)
なるほど、原因は明白だ。この条件式が問題だな。
修正案を示そう。面倒だが、正確な仕事は必要だ。

例3: 熱血キャラの場合

> このコードにバグがあるんだけど

よっしゃ!見せてくれ!
(コードを確認)
うまい!...いや、バグを見つけたってことだ!
ここだ!この条件式を直せば完璧だぞ!

拡張: キャラクタのバリエーションを増やす

固定リストからランダムに選ぶ以外にも、バリエーションを増やす方法があります。

曜日・週でグルーピングする

週のタイミングに応じてキャラクタの傾向を変える方法です。グルーピング自体も Claude に相談して決められます。

週のタイミング キャラクタの傾向
週初め(月・火) 励まし系、前向き 「今週も頑張ろう!」
週中盤(水・木) 落ち着いた系、集中 「淡々とやっていこう」
週終わり(金) テンション高め、開放的 「あと少しで週末や!」
週末(土・日) のんびり系、リラックス 「ゆっくりやろうか」
# 曜日に応じてグループを選択する例
DOW=$(date +%u)  # 1=月曜, 7=日曜
case $DOW in
  1|2) GROUP="週初め系" ;;
  3|4) GROUP="週中盤系" ;;
  5)   GROUP="週終わり系" ;;
  *)   GROUP="週末系" ;;
esac

Git 状態やプロジェクト進行状態でグルーピングする

別の角度から、作業状況に応じてキャラクタの傾向を変える方法です。

状態 キャラクタの傾向
未コミットファイルが多い 心配性、慎重派 「コミットしなくて大丈夫?」
ブランチ名に fix 真剣モード、集中 「バグ退治、慎重にいこう」
ブランチ名に feature ワクワク系、前向き 「新機能!楽しみやな」
クリーンな状態 リラックス、余裕 「綺麗な状態やね、何から始める?」
# Git 状態に応じてグループを選択する例
UNCOMMITTED=$(git status --porcelain 2>/dev/null | wc -l)
BRANCH=$(git branch --show-current 2>/dev/null)

if [ "$UNCOMMITTED" -gt 5 ]; then
  GROUP="心配性系"
elif [[ "$BRANCH" == *fix* ]] || [[ "$BRANCH" == *hotfix* ]]; then
  GROUP="真剣系"
elif [[ "$BRANCH" == *feature* ]]; then
  GROUP="ワクワク系"
else
  GROUP="リラックス系"
fi

要素を組み合わせて 1,728 通りのバリエーションを作る

3つの独立した軸を組み合わせると、少ない定義で膨大なバリエーションを生成できます。

軸1: 語尾・話し方スタイル(12種)

# スタイル
1 丁寧標準語 「〜です」「〜ます」
2 関西弁 「〜やで」「せやな」
3 九州弁 「〜ばい」「〜たい」
4 東北弁 「〜だべ」「んだ」
5 お嬢様 「〜ですわ」「〜ですの」
6 武士・侍 「〜でござる」「〜候」
7 老賢者 「〜じゃのう」「〜かの」
8 体育会系 「〜っす」「〜っすね」
9 学者・博士 「〜である」「〜と言える」
10 ギャル 「〜じゃん」「マジ〜」
11 中二病 「我は〜」「〜なり」
12 江戸っ子 「〜だい」「〜てやんでい」

軸2: 性格・態度(12種)

# 性格 特徴
1 熱血 情熱的、全力
2 クール 冷静沈着
3 ツンデレ 素直じゃない
4 心配性 慎重派
5 お節介 世話焼き
6 天然 マイペース
7 毒舌 皮肉屋だが的確
8 楽天的 ポジティブ
9 悲観的 ネガティブ
10 真面目 堅物、規則重視
11 いたずら好き 茶目っ気
12 控えめ 謙虚

軸3: 専門家の視点(12種)

# 専門家 比喩の例
1 料理人 「素材を活かす」「火加減」
2 スポーツコーチ 「攻め時」「チームワーク」
3 軍師・戦略家 「布陣」「退却も戦略」
4 自然研究者 「生態系」「根を張る」
5 音楽家 「リズム」「ハーモニー」
6 建築設計士 「土台」「設計図」
7 冒険家・旅人 「道のり」「寄り道」
8 園芸家 「種を蒔く」「剪定」
9 医師 「診断」「予防」
10 動物学者 「習性」「共生」
11 職人 「磨く」「一点物」
12 探偵 「手がかり」「真犯人」

12 × 12 × 12 = 1,728 通り

組み合わせの実装例

#!/bin/bash
STYLES=("丁寧標準語" "関西弁" "九州弁" "東北弁" "お嬢様" "武士・侍" "老賢者" "体育会系" "学者・博士" "ギャル" "中二病" "江戸っ子")
PERSONALITIES=("熱血" "クール" "ツンデレ" "心配性" "お節介" "天然" "毒舌" "楽天的" "悲観的" "真面目" "いたずら好き" "控えめ")
EXPERTS=("料理人" "スポーツコーチ" "軍師・戦略家" "自然研究者" "音楽家" "建築設計士" "冒険家・旅人" "園芸家" "医師" "動物学者" "職人" "探偵")

S=${STYLES[$((RANDOM % 12))]}
P=${PERSONALITIES[$((RANDOM % 12))]}
E=${EXPERTS[$((RANDOM % 12))]}

LANG="${S}で話す、${P}な性格の${E}として振る舞ってください"

組み合わせ例(5パターン)

例1: 九州弁 × 控えめ × 音楽家

自己紹介:
あ、どうも...今日もよろしくお願いしますたい。
自分、あんまり目立つのは得意じゃなかとですけど、
コードのリズムとか、ハーモニーとか、そういうのは気になるっちゃんね...

抱負:
今日は...静かに、でも良いメロディを奏でられたらいいなと思っとります...

例2: 中二病 × 心配性 × 料理人

自己紹介:
フッ...我は闇の料理人...だが、この素材、本当に大丈夫であろうか...
賞味期限とか、アレルギーとか...少し心配なり...

抱負:
今日の調理...火加減を間違えたら全てが台無しになるなり...
慎重に、慎重に進めねば...我の心臓が持たぬ...

例3: 東北弁 × ツンデレ × 園芸家

自己紹介:
あー、別にあんたのために来たわけじゃねぇだべ。
ただ、この畑...いや、コードが気になっただけだべさ。

抱負:
今日は種蒔きから始めるだべ...べ、別にあんたの成長を見たいわけじゃねぇけど、
ちゃんと水やりはするだべよ...

例4: 関西弁 × お節介 × 動物学者

自己紹介:
おー、来た来た!ちょっとあんた、ご飯ちゃんと食べてる?
ほら、動物もな、栄養取らんと元気出ぇへんねん。コードも一緒やで!

抱負:
今日はこのコードの生態系をしっかり観察したるわ!
あ、そこ縄張り争いしてへん?仲良く共生せなあかんで〜

例5: ギャル × 悲観的 × 園芸家

自己紹介:
あー、まじかー...また仕事じゃん...
てか、この種蒔いても、どうせ枯れるっしょ...まあいいけど...

抱負:
今日も剪定とかするけどさー、切りすぎたらマジ終わるじゃん...
まあ、なんとかなんないかなー...ならないかー...

まとめ

  • Claude Code の language 設定で、セッション全体の応答スタイルをカスタマイズできる
  • SessionEnd hook でランダムに切り替えると、セッションごとに違うキャラクタと会話できる
  • SessionStart hook で挨拶させれば、どのキャラクタか一目瞭然
  • 曜日や Git 状態でグルーピングしたり、3軸の組み合わせで 1,728 通りに拡張することも可能

ちょっとした遊び心ですが、長時間の作業も楽しくなるのでおすすめです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?