Claude Code ステータスバーカスタマイズ:スクリプトとアイデア
初期セットアップの先へ:statusline スクリプトが受け取る JSON、表示すべきフィールド(モデル・トークン・コスト・コンテキスト・git)、配色とレイアウトのアイデア、そして使えるコミュニティスクリプトを紹介します。
要点だけ
- /statusline はスクリプトを書いてくれます。OS を伝え、グローバル設定と独立した .sh/.ps1 ファイルを求め、2 つのファイルを承認するだけ。~/.claude/settings.json の statusLine エントリと、それが指すスクリプトです。
- スクリプトは stdin から 1 つの JSON オブジェクトを受け取ります。model.display_name、workspace.current_dir、context_window.used_percentage、cost.total_cost_usd、rate_limits —— 表示したいものは自由に組み合わせられます。
- フィールドは番号付きリストで指示し、コンテキストバーはしきい値で色分け(50% 未満は緑、75% 超は赤)、トークンは K 単位に丸め、1 行が混雑したら複数行に分割します。
- またはコミュニティスクリプトを導入:npx contextbricks 一発で、モデル・git ブランチとコミット・レンガ風トークンメーター・週次上限の警告が揃います。/compact や /clear のタイミングは自分で決められます。
Claude Code's Hidden Status Line: Tokens, Model and Project, Your Way
チャンネル:호두의 AI 분석실 (Waldo AI Lab)5:27
ContextBricks: My Custom Claude Code Status Line
コミュニティスクリプト:Jeremy Dawes6:17
Status line — official documentation
公式ドキュメント:code.claude.com/docs
本ページの事実は公式 status line ドキュメントと上記の 2 本の録画と照合しています。引用した JSON フィールド名は公式リファレンスと完全に一致します。スクリーンショットはいずれも録画からのフレームです。
スクリーンショットは 호두의 AI 분석실 および Jeremy Dawes(ContextBricks)のチュートリアル映像からのフレームを、出典を明示のうえ各ステップにタイムスタンプ付きでリンクして使用しています。
ステータスバーをカスタマイズ、手順どおりに
まず /statusline のプロンプトを正しく書く
- 1
OS・スコープ・スクリプトファイル名まで伝える /statusline プロンプトを 1 通
/statusline を実行したら、最初に 3 つを伝えます。使っている OS(Mac、Linux、Windows、WSL のどれか)、グローバルに設定してほしいこと、スクリプトは独立した .sh ファイルにしてほしいこと(Windows は .ps1)。伝えないとセットアップエージェントが環境を推測し、シェルを外すことも。プロジェクト単位のスクリプトはそのリポジトリでしか出ません。プロンプトは 4 行で足りるので、メモに取って使い回しましょう。

用意した /statusline プロンプト:OS・グローバル・独立スクリプトファイル。貼り付けるだけ。動画 1:15 で見る - 2
セットアップエージェントが作る 2 つのファイルを承認する
読み書きの許可を与えると、エージェントが触った先を正確に報告してくれます。~/.claude/settings.json に statusLine 設定が入り、~/.claude/statusline-command.sh のようなスクリプトがステータスラインの内容を生成します。ロジックを独立ファイルにしておけば、後で Claude が編集するのはスクリプトだけで settings は安全。Claude Code を再起動すると行が現れます。

作成・更新されたファイル:settings.json に statusLine エントリ、内容はスクリプトが組み立てる。動画 3:20 で見る - 3
追加する前に、デフォルトの行仕様を読む
初期状態の行には、カレントディレクトリ、[Claude Opus 4.5] のようなモデル名、デフォルトでない場合の output style、vim モード、リポジトリ内なら git ブランチ、コンテキストウィンドウ使用率が並びます。例:Claude-project [Claude Opus 4.5] (git:main) 12%。設定はグローバルなので、このマシンのすべての Claude Code セッションに適用されます。

デフォルトの表示リストと、生成されたステータスラインの描画例。動画 2:45 で見る
行に表示するものを決める
- 4
欲しいフィールドは番号付きで指示する
追加項目を順序付きリストで頼むと、エージェントは番号付きの表示順で答えます。この実行では:モデル名、20 文字のプログレスバー、20% のようなパーセント、40000/200000 形式のトークン、git:main、そしてプロジェクトディレクトリ —— Claude 3.5 Sonnet [==== ] 20% 40000/200000 git:main Claude-project と描画されます。変更はスクリプトに書き込まれるので、Claude Code を再起動して確認します。

表示順 1-6 と描画例。すべてスクリプトに書き込まれています。動画 3:45 で見る - 5
各要素に意味のある色を割り当てる
要素ごとの配色を頼むと、スクリプトにはしきい値付きの ANSI コードが入ります。今回合意された表:モデル名シアン、プログレスバーは 50% 未満が緑・50〜75% が黄・75% 超が赤、パーセントはバーに準拠、トークンはマゼンタ、ブランチは緑、プロジェクト名は青、区切りはグレー。赤はコンテキストバー専用にし、警告色は本当に逼迫したときだけ光らせます。

要素ごとのカラーテーブル。プログレスバーにはしきい値付き。動画 4:15 で見る - 6
トークンを K 単位に丸め、/context と突き合わせる
21373/200000 のような生の数値は視認できません。K 単位を頼むと 21k/200k と表示され、エージェントは丸めている旨を添えます。検証も簡単:同じセッションで /context を実行して比べると、合計が一致します。デモでの小ネタ:丸めのせいで 22k と 23K のセッションが同じ表示になることがあります。一目で読む行としては十分です。

21373/200000 が 21k/200k に。/context でも同じ合計を確認。動画 4:30 で見る - 7
セッションを 2 つ立て、それぞれ独立して追跡されることを確認する
ターミナルを 2 つ開き、それぞれで Claude Code を起動します。各ステータスラインは自分のセッションだけを報告します。左は 11%・22k/200k、右は 9%・18k/200k で、各ウィンドウの /context とも一致します。だからこそブランチとプロジェクトを行に載せる価値があります。タブをいくら開いても、どのセッションが重いかは一瞥で分かり、いちいち /context を打つ必要がありません。

2 つの Claude Code セッション。各ステータスラインが自分のコンテキストを報告。動画 5:15 で見る
スクリプトを借りて、毎日読む
- 8
自作を省く:npx でコミュニティスクリプトを入れる
スクリプトを自分で書く必要はありません。ContextBricks は npx contextbricks の一発で入り、~/.claude/statusline.sh を書き出し、settings.json をバックアップ付きで更新します。機能リスト:モデル名、git repo:branch [commit] メッセージ、未コミット・先行・遅延の表示、セッション中の変更行数、レンガ可視化によるリアルタイムのコンテキスト使用率、トークン内訳。アンインストールは ./uninstall.sh。表示されたバックアップパスから以前のスクリプトに戻せます。

npx contextbricks:スクリプト導入、settings.json 更新、機能一覧まで完結。動画 0:20 で見る - 9
エージェントの作業中こそメーターを読む
カスタム行が威力を発揮するのは作業の途中です。デモでは [Sonnet 4.5]、+2381/-0 行に続き、18%(36k/200k tokens)のコンテキストバーと sys:4k tools:16k mcp:2k mem:10k msg:4k の内訳、残り 163k が表示されます。作者はトークン数を会話トランスクリプトの解析で数えています。API の数字ではない推定値ですが、compact と clear の判断には十分正確だと言います。

計画ドキュメントの執筆中に 36k/200k tokens とカテゴリ別内訳を一望。動画 5:00 で見る - 10
合図で締める:コミットが乗り、週次上限が近づく
git commit のあと、行にはブランチとコミットが載ります:contextbricks:master [ffe9523] Add comprehensive planning documentation。右端には 2 つ目の合図 —— Approaching weekly limit が現れます。コンテキスト率、コミットマーカー、上限警告の 3 点で、自動圧縮に作業の途中で割り込まれる前に、自分のタイミングで /compact や /clear をかけられます。

ブランチとコミットが行に現れ、右端に週次上限の警告。動画 6:02 で見る
スクリプトが読めるフィールド、一つずつ
行に現れるすべては、スクリプトが stdin から受け取る 1 つの JSON オブジェクトから来ます。セッション開始時、そして更新のたび —— 新しいアシスタントメッセージ、完了した /compact、権限モードの変更 —— に届きます。ここは公式フィールドのうち、1 行の価値があるものです。
- 1モデルと effort —— ラベルには model.display_name(Sonnet 4.5、Opus 4.5)、推論レベルを見せたいなら effort.level を添えます。
- 2場所 —— workspace.current_dir がカレントディレクトリの推奨フィールド、workspace.project_dir は起動ディレクトリ、workspace.repo.owner/.name は origin リモートから解析したリポジトリ。ブランチは git branch --show-current と組み合わせます。
- 3コンテキスト —— context_window.used_percentage と remaining_percentage は計算済み、context_window.current_usage は入力・出力・キャッシュ書き込み・キャッシュ読み取りを分け、context_window.context_window_size は既定 200000(拡張で 1000000)。
- 4お金と時間 —— cost.total_cost_usd はセッションコスト(/clear でリセット)、cost.total_duration_ms と total_api_duration_ms で実時間と API 待ちを分け、cost.total_lines_added と total_lines_removed もあります。
- 5上限 —— rate_limits.five_hour と rate_limits.seven_day は Pro・Max プランで used_percentage と resets_at を公開。ドキュメントには prompt_cache オブジェクトもあり、hit_ratio や expires_at でキャッシュ認識の行が作れます。
公式ドキュメントの実務ポイント:echo や print 1 回が 1 行になり、複数行レイアウトは print を増やすだけ。ANSI コードで色付けし、端末幅は COLUMNS と LINES 環境変数で得ます。そして条件次第で欠けるフィールドには .context_window.used_percentage // 0 のような jq フォールバックを必ず入れ、セッション開始直後の数秒でも行が壊れないようにします。
行がおかしいとき
壊れたステータスラインの原因はほぼ 5 つに集約されます。修正はどれもプロンプト 1 回かコマンド 1 つです。
- 1空白やダッシュ(--)—— 最初の API レスポンス前の null フィールドです。公式ドキュメントは jq フォールバック(// 0、// empty)を推奨。workspace trust の確認を承認しないと、行は空のままです。
- 2スクリプトが動かない —— chmod +x で実行権を付け、stderr ではなく stdout に書き、claude --debug でスクリプトのエラーを確認します。
- 3数字がおかしい —— ContextBricks の作者いわく、Claude はトークン計算を何度も間違えたそうです。生の JSON をデバッグファイルに書き出させ、それに合わせてスクリプトを書き直させ、最後に /context と突き合わせます。
- 4Windows のシェル問題 —— Git Bash が入っていれば Git Bash、なければ PowerShell。パスはスラッシュ表記にし、スクリプトは専用の .ps1 ファイルに。
- 51 行に詰め込みすぎ —— 複数行を頼む(パスとリポジトリ情報を 2 行目へ)、または減らす:トークンは K 単位、区切り色は 1 色、見ないフィールドは削る。
完全にやめるなら:/statusline delete(または /statusline clear)で機能を外せます。コミュニティ製は付属のアンインストーラーで —— ContextBricks は uninstall.sh を同梱し、以前のスクリプトへ戻すバックアップパスを表示します。
