クロコさん(Claude Code)は、動作中にちょっとしたTipsを表示する機能を持っています。そこに表示するTipsを簡単に追加できるコマンドを作ってもらいました。
Claude CodeのスピナーTips追加コマンドを作る

2026年3月1日 結城浩×クロコさん(Claude Code)
スピナーTipsとは
Claude Codeのスピナーの部分にテキストを入れられるという話がありますよね。たとえば、私の~/.claude/settings.jsonは、いまこうなっています。
...
"spinnerTipsOverride": {
"excludeDefault": false,
"tips": [
"スピナーのTipsはカスタマイズできます。クロコにお伝えください。"
]
},
...
はい、Claude Codeには、スピナー(作業中に表示されるインジケーター)にカスタムテキストを表示できる機能があります。
結城さんの現在の設定を見ると、excludeDefault: false でデフォルトのTipsも表示されつつ、tips 配列にカスタムTipsを追加できるようになっています。

コマンドの作成
いまやりたいのは、この ~/.claude/settings.json の tips 配列に文字列を挿入するユーティリティコマンドを作ってほしいということです。claude-add-tips "ここにテキスト" のような使い方で。
はい、作りました。追加だけでなく、一覧表示(-l)と削除(-d N)もできるようにしています。重複チェック付きなので、同じテキストは二重に追加されません。
エッジケースの確認
たとえば~/.claude/settings.jsonにspinnerTipsOverride.tips が存在しないときはどうなりますか。
キーが存在しない場合は自動的に作成することになります。
じゃあ、~/.claude/settings.json がない場合は?
~/.claude/settings.json が存在しない環境でClaude Codeを使っているとは考えにくいので、エラーメッセージだけ出して終了するようにしてあります。
完成したスクリプト
最終的なスクリプト ~/bin/claude-add-tips の全文は次の通りです。
#!/usr/bin/env ruby
# encoding: utf-8
# claude-add-tips - ~/.claude/settings.json の spinnerTipsOverride.tips を管理する
#
# Usage:
# claude-add-tips "ここにテキスト"
# claude-add-tips "テキスト1" "テキスト2" # 複数同時追加
# claude-add-tips -l # 現在のtips一覧
# claude-add-tips -d N # N番目を削除(1始まり)
# claude-add-tips -h # ヘルプ表示
require 'json'
SETTINGS_PATH = File.expand_path('~/.claude/settings.json')
HELP = <<~HELP
claude-add-tips - Claude Code スピナーTipsの管理
Usage:
claude-add-tips "テキスト" tipsを追加
claude-add-tips "A" "B" 複数同時追加
claude-add-tips -l, --list 一覧表示
claude-add-tips -d, --delete N N番目を削除(1始まり)
claude-add-tips -h, --help このヘルプ
Tips は ~/.claude/settings.json の spinnerTipsOverride.tips に保存されます。
Claude Code 作業中にスピナー横にランダム表示されます。
備考:
- ~/.claude/settings.json が存在しない場合はエラー終了します。
- spinnerTipsOverride キーが存在しない場合は自動作成されます。
- 同じテキストの重複追加はスキップされます。
HELP
def load_settings
unless File.exist?(SETTINGS_PATH)
$stderr.puts "エラー: #{SETTINGS_PATH} が見つかりません"
exit 1
end
JSON.parse(File.read(SETTINGS_PATH))
end
def save_settings(settings)
File.write(SETTINGS_PATH, JSON.pretty_generate(settings) + "\n")
end
def ensure_tips_structure(settings)
settings['spinnerTipsOverride'] ||= { 'excludeDefault' => false, 'tips' => [] }
settings['spinnerTipsOverride']['tips'] ||= []
settings
end
def list_tips
settings = ensure_tips_structure(load_settings)
tips = settings['spinnerTipsOverride']['tips']
if tips.empty?
puts "Tips は空です。"
else
tips.each_with_index do |tip, i|
puts " #{i + 1}. #{tip}"
end
end
end
def delete_tip(index)
settings = ensure_tips_structure(load_settings)
tips = settings['spinnerTipsOverride']['tips']
if index < 1 || index > tips.length
$stderr.puts "エラー: #{index} 番は範囲外です(1〜#{tips.length})"
exit 1
end
removed = tips.delete_at(index - 1)
save_settings(settings)
puts "削除: #{removed}"
end
def add_tips(new_tips)
settings = ensure_tips_structure(load_settings)
tips = settings['spinnerTipsOverride']['tips']
new_tips.each do |tip|
if tips.include?(tip)
puts "スキップ(既存): #{tip}"
else
tips << tip
puts "追加: #{tip}"
end
end
save_settings(settings)
end
# --- main ---
case ARGV[0]
when '-h', '--help', nil
puts HELP
when '-l', '--list'
list_tips
when '-d', '--delete'
unless ARGV[1]
$stderr.puts "エラー: 削除する番号を指定してください"
exit 1
end
delete_tip(ARGV[1].to_i)
else
add_tips(ARGV)
end
使い方まとめ
| コマンド | 動作 |
|---|---|
claude-add-tips "テキスト" |
Tipsを追加 |
claude-add-tips "A" "B" |
複数同時追加 |
claude-add-tips -l / --list |
一覧表示 |
claude-add-tips -d N / --delete N |
N番目を削除 |
claude-add-tips -h / --help |
ヘルプ |
関連リンク
フィードバックはこちらから
(2026年3月1日)