Claude Codeの「Thinking...」を変える - スピナーカスタマイズ完全ガイド
Claude Codeを使っていると、処理中に表示されるスピナーテキストを何度も目にします。
「Thinking...」「Analyzing...」「Processing...」
英語の短いフレーズがランダムに切り替わる、あの待ち時間の表示です。実はこれ、settings.jsonを1行変えるだけで自由にカスタマイズできます。
この記事では、基本的な設定方法から、時間帯やタスクに連動する動的生成スクリプトまで、スピナーを開発体験の向上に活用する方法を紹介します。
はじめに - スピナーとは
スピナーとは、Claude Codeが処理中に画面に表示されるテキストのことです。Claude Codeが考えている間、ユーザーは数秒〜数十秒の待ち時間を過ごします。この時間は1日の作業時間で累計するとかなりの量になります。
デフォルトでは英語の短いフレーズ(「Thinking...」「Pondering...」など)が表示されますが、settings.jsonで好きなテキストに差し替えられます。日本語もOKです。
「待ち時間を有効活用する」という発想から出発して、最終的にはタスクリマインダーとして機能するところまで発展させました。
基本設定方法
settings.jsonの構造
スピナーの設定は~/.claude/settings.json内のspinnerVerbsフィールドで行います。
{
"spinnerVerbs": {
"mode": "replace",
"verbs": [
"テキスト1",
"テキスト2",
"テキスト3"
]
}
}
| フィールド | 説明 |
|---|---|
mode |
"replace" でデフォルトの英語動詞を完全置換。"append" で追加 |
verbs |
文字列の配列。処理中にランダムで表示される |
最小構成の例
まずは5個程度のテキストを設定するだけで十分です。
{
"spinnerVerbs": {
"mode": "replace",
"verbs": [
"考え中",
"ちょっと待ってて",
"脳のデフラグ中",
"閃きそう",
"もうちょっとで出る"
]
}
}
設定後、次にClaude Codeが処理を始めたタイミングから反映されます。再起動は不要です。
動詞コレクションの設計
535個の「楽しい動詞」
最初は5〜10個から始まりましたが、作り出すと止まらなくなります。最終的に16カテゴリ・535個の動詞セットができあがりました。
| カテゴリ | 個数 | 例 |
|---|---|---|
| 日常・つぶやき | 46 | 「布団の誘惑と戦い中」「冷蔵庫を3回開けた」 |
| 日本あるある | 37 | 「確定申告より複雑」「了解です(了解してない)」 |
| アニメ・漫画・ゲーム | 52 | 「卍解まであと少し」「精神と時の部屋で修行中」 |
| 宗教・神秘 | 40 | 「般若心経ラップ中」「地獄の沙汰もプロンプト次第」 |
| 哲学・思想 | 37 | 「トロッコ問題より難しい」「われ思う、ゆえに遅延する」 |
| 文学(日本) | 39 | 「吾輩はAIである。名前はまだ考え中」「山月記の虎になりかけ中」 |
| 文学(海外) | 32 | 「朝起きたら虫になってた(出社はする)」「百年の孤独を味わい中」 |
| 科学・テクノロジー | 36 | 「シュレーディンガーの猫がまだ箱の中」「P≠NP問題より難しいかもしれない」 |
| 食べ物 | 22 | 「糠漬けくらいじっくり仕込み中」「カレーは飲み物(処理も飲み物)」 |
| 映画(洋画) | 34 | 「マトリックスの赤い薬を飲んだ」「メメントの記憶喪失中」 |
| 映画(ジブリ) | 27 | 「千と千尋みたいに名前を忘れかけ中」「ラピュタ「バルス!」は最終手段」 |
| 音楽(洋楽) | 22 | 「ボヘミアンラプソディくらい壮大な思考中」 |
| 音楽(邦楽) | 24 | 「スピッツの空も飛べるはず」「B'zのウルトラソウル「ハイッ!」」 |
| 不条理・日常の歪み | 38 | 「廊下が無限に続いてる」「来ないバス」 |
| 仕事・社会 | 22 | 「会議のための会議」「ファイル名が最終版の最終版」 |
| 歴史・偉人 | 22 | 「織田信長「是非も無し」」「アインシュタインのE=mc²」 |
一見ふざけているようですが、カテゴリの偏りなく作ることで、どんな気分の時でも目に入って楽しめるようになっています。
プロジェクト別の専用動詞
プロジェクトごとに専用の動詞セットを用意することもできます。
たとえば、菌糸ネットワーク型マルチエージェントシステム「kinoko」では、501個のきのこ動詞を設定しています。
[
"菌糸を伸ばし中",
"胞子を散布中",
"宿主に寄生中",
"地下ネットワーク拡張中",
"丁寧に腐敗中",
"胞子のgit pushなう",
"菌糸のマージコンフリクト",
"腐敗駆動開発",
"菌糸でSSH接続中",
"寄生先の脆弱性スキャン中"
]
プロジェクトの.claude/settings.jsonに設定すれば、そのプロジェクトのディレクトリで作業しているときだけ適用されます。プロジェクトのテーマに合った動詞で雰囲気が出ます。
spinner-gen.sh: 動的動詞生成
設計思想
「楽しい動詞」だけでも十分良いのですが、ある日ふと思いました。
「ここにタスクを表示したらいいのでは?」
Claude Codeの待ち時間は、目に入る頻度が高い。そこに今日やるべきタスクやカレンダーの予定が表示されたら、自然とリマインダーになるはずです。
この発想から、5つのデータソースを統合してスピナー動詞を動的に生成するspinner-gen.shを作りました。
5つのデータソース
| # | ソース | 内容 | 例 |
|---|---|---|---|
| 1 | 楽しい動詞 | fun-verbs.json(535個) | 「般若心経ラップ中」 |
| 2 | 日記の未完了タスク | 当日の日記ファイルから- [ ]を抽出 |
「確定申告の書類整理」 |
| 3 | カレンダーの予定 | 日記ファイル内の時刻指定イベント | 「15:00 MTG」 |
| 4 | 習慣トラッカー | 未達成の習慣項目 | 「運動する 🔥2」 |
| 5 | アイデンティティ動詞 | 自分がなりたい像に基づく動詞 | 「哲学的にデバッグ中」 |
プリセット
用途に応じて4つのプリセットを用意しています。
# 楽しい動詞のみ(デフォルト)
./spinner-gen.sh --preset fun
# タスク中心(仕事集中時)
./spinner-gen.sh --preset focus
# 全部ミックス
./spinner-gen.sh --preset mixed
# 時間帯で自動切り替え(推奨)
./spinner-gen.sh --preset auto
--dry-runオプションをつけると、settings.jsonを更新せずに出力内容だけ確認できます。
./spinner-gen.sh --preset auto --dry-run
時間帯ロジック(autoプリセット)
autoプリセットでは、時間帯に応じて各データソースの配分を自動で切り替えます。
| 時間帯 | 楽しい動詞 | タスク | カレンダー | 習慣 | アイデンティティ |
|---|---|---|---|---|---|
| 朝(5〜9時) | 10% | 0% | 30% | 40% | 20% |
| 昼(9〜18時) | 0% | 60% | 30% | 10% | 0% |
| 夕(18〜22時) | 40% | 25% | 15% | 10% | 10% |
| 夜(22〜5時) | 70% | 0% | 0% | 10% | 20% |
朝は習慣トラッカーの比重を高くしています。朝のルーティンで「運動する 🔥3」のような連続記録がスピナーに表示されると、今日もやろうという気になります。
昼はタスクとカレンダーが中心。仕事中に次のMTGの時刻やTODOが目に入ります。
夕方以降は楽しい動詞の比重が上がります。疲れてきた時間帯に「般若心経ラップ中」が表示されると、ちょっと笑えます。
夜は楽しい動詞とアイデンティティ動詞が中心。リラックスした時間に自分の方向性を再確認するような動詞が流れます。
さらに、土日はどの時間帯でも楽しい動詞の比率が+20%されます。
autoプリセットの出力例
朝8時に実行した場合(習慣重め):
=== Preset: auto ===
=== Time weights: 10 0 30 40 20 ===
[
"運動する 🔥3",
"日記を書く 🔥15",
"ストレッチ 🔥7",
"15:00 MTG",
"終日 有給",
"哲学的にデバッグ中",
"リズムに乗ってコーディング中",
"布団の誘惑と戦い中",
...
]
=== Total: 50 verbs ===
昼14時に実行した場合(タスク重め):
=== Preset: auto ===
=== Time weights: 0 60 30 10 0 ===
[
"確定申告の書類整理",
"PRレビュー",
"spinner記事を書く",
"15:00 MTG",
"17:00 歯医者",
"運動する 🔥3",
...
]
=== Total: 50 verbs ===
各ソースから不足がある場合は、楽しい動詞で自動補完します。たとえば日記にタスクが3個しかなくても、残り枠は楽しい動詞で埋まるので、常に50個のスピナー動詞が生成されます。
実践: 待ち時間をタスクリマインダーにする
発想の転換
最初は純粋に「Thinking...が飽きたから日本語にしたい」という動機でした。楽しい動詞を設定して、スピナーを見ることが待ち時間の気分転換になっていました。
そこからの転換点は、「ここにタスクを表示したらいいのでは?」という気づきです。
Claude Codeの処理待ちは1日に何十回も発生します。その度にスピナーが目に入る。これは意図せず「リマインダー」の条件を満たしています。
Towerシステム(朝ルーティン)との連携
普段、日記と習慣管理にtowerというシステムを使っています。毎朝Claude Codeに「おはよう」と話しかけると、日記のテンプレートが生成され、カレンダーの予定と習慣トラッカーが記入されます。
spinner-gen.shはこの日記ファイルを読み取ります。
毎朝「おはよう」→ towerが日記を生成
↓
spinner-gen.shが日記のタスク・予定・習慣を読み取り
↓
settings.jsonのスピナー動詞を更新
↓
Claude Codeの処理待ち中にタスクが表示される
つまり、朝ルーティンでタスクを書くだけで、Claude Codeを使っている間ずっとタスクがリマインドされ続けます。
忘れっぽい人にこそ効果的です。
既知の問題
スピナーには文字化けバグが存在します。たまに全テキストが化けて読めなくなることがあります。
発生条件は明確に特定できていませんが、別のペインやウィンドウに移動して戻ると治ります。致命的な問題ではありませんが、気になる方はご注意ください。原因は引き続き調査中です。
活用のヒント
タスクリマインダーとして(最も実用的)
上記のspinner-gen.shを朝の起動時に実行すれば、その日のタスクが自動でスピナーに載ります。最もROIの高い使い方です。
プロジェクト別の雰囲気作り
プロジェクトの.claude/settings.jsonに専用の動詞を設定すると、そのプロジェクトで作業するときだけテーマに合ったスピナーが表示されます。チームメンバーと共有すれば、プロジェクトの一体感にもつながります。
チームでの共有
settings.jsonはリポジトリにコミットできます。チーム全員で同じスピナー動詞を共有すると、ちょっとした会話のきっかけにもなります。
まとめ
Claude Codeのスピナーカスタマイズは、設定ファイル1行の変更から始められます。
- まずは5個の動詞を設定してみる: これだけで待ち時間の体験が変わる
- 楽しい動詞を増やす: カテゴリ別に設計すると飽きない
- タスクリマインダーにする:
spinner-gen.shで日記やカレンダーと連動 - 時間帯で自動切り替え: autoプリセットで「朝は習慣、昼はタスク、夜は楽しく」
待ち時間はなくせませんが、その時間を自分の好きなもので埋めることはできます。開発体験を少しだけ良くする、小さなカスタマイズとしてお試しください。
関連記事
生成AI導入のご相談
この記事で紹介したような開発環境のカスタマイズやAI活用に興味がある方は、お気軽にご相談ください。
- GitHub Actionsを使った自動化
- Claude Code / ChatGPTの業務活用
- 週報・月報の自動生成システム
中小企業・スタートアップ向けに、エンジニアが直接サポートいたします。