Claude Code ステータスライン設定ガイド:/statusline 一発で完成(2026年版)
ターミナルの下部をリアルタイムダッシュボードに変えましょう——モデル、コンテキストウィンドウのプログレスバー、git ブランチ、フォルダ、コストをひと目で確認。内蔵の /statusline コマンドから色付きの仕上がりまで図解 12 ステップでたどり、表示されないときの直し方もまとめました。
要点まとめ
- /statusline は Claude Code に内蔵されたスラッシュコマンドです。一度実行して欲しいバーを一文で伝えれば、statusline-setup エージェントがスクリプトを書き、~/.claude/settings.json に statusLine ブロックを組み込んでくれます。
- Windows ではエージェントが 3 つの道を提示します:PowerShell プロファイルの変換、WSL や Git Bash の設定を指す方法、あるいはユーザー名・ディレクトリ・モデル・コンテキスト使用量を表示する新規デフォルトの作成です。
- スクリプトは標準入力(stdin)から 1 つの JSON ドキュメントを読みます——model.display_name、workspace.current_dir、context_window.used_percentage、cost.total_cost_usd などのフィールドが使えます。echo したものがそのままバーになり、ANSI カラーも複数行も自由です。
- すべてローカルで動き、トークンは消費しません。更新はセッションイベントのたびに発生し(refreshInterval で N 秒ごとの定期更新も可能)、いらなくなれば /statusline clear で丸ごと消せます。
How to Set Up a Custom Status Line in Claude Code CLI to Track API Costs and Context Usage (2026)
チャンネル:ProgrammingKnowledge23:32
Claude Code最該裝的不是Skill,是這個腳本|彩色進度條、費用、git 分支一眼看完
チャンネル:YAHA學堂8:44
Your Claude Code Terminal Should Look Like This (Status Line Setup)
チャンネル:Leon van Zyl9:02
How to Add a Custom Status Line in Claude Code on Windows 11 (Project-Level Setup)
チャンネル:Devtamin7:27
Status line — Claude Code documentation
公式ドキュメント:code.claude.com
ステップ 1–4 は Windows PowerShell、ステップ 5–12 は macOS で収録。静止画はクリーンな画面録画だけから採取——クリエイターの顔出しや焼き込みオーバーレイのあるフレームは一切使っていません。
OS を最初に伝える、スクリプトはグローバルかつ独立ファイルに置く、jq が必要、デバッグファイル技——これらのコツは上に挙げた追加動画 2 本から。深掘りセクションのフィールド名とリフレッシュ動作は公式のステータスラインドキュメントに準拠しています。
/statusline ウォークスルー——図解 12 ステップ
/statusline を実行して Claude に接続を任せる
- 1
ターミナルで Claude Code を起動する
PowerShell、ターミナル、どんなシェルでも claude と入力して起動します。新規セッションではウェルカムボックスと空のプロンプトだけ——入力欄の下の帯、つまりステータスラインの居場所は、~/.claude/settings.json に statusLine ブロックが追加されるまで存在しません。

Windows PowerShell の Claude Code v2.1.83 新規セッション——ウェルカムボックス、空のプロンプト、ステータス行はまだなし。0:22 から視聴 - 2
/statusline コマンドを入力する
スラッシュコマンドのメニューには素直に「Claude Code のステータスライン UI をセットアップ」とあります。Enter を押すだけ。この内蔵コマンドは自然言語を理解するので、スクリプトを手書きする必要はありません——もちろん、生成されたスクリプトは後から自由に編集できます。

自動補完は /statusline を「Claude Code のステータスライン UI をセットアップするコマンド」と紹介しています。0:32 から視聴 - 3
セットアップエージェントの質問に答える
専用の statusline-setup エージェントが引き継ぎます。Windows では標準のシェル設定が見つからないと報告し、3 つの道を提示します:PS1 プロファイルを貼り付けて変換してもらう、WSL や Git Bash の設定を指定する、あるいはユーザー名・ディレクトリ・モデル・コンテキスト使用量を表示するデフォルトで始める。どの道も最後は同じ settings.json ブロックに着地します。

Windows の 3 つの選択肢:PS1 を変換、カスタム設定を指定、または無難なデフォルトから開始。1:20 から視聴 - 4
書き込まれた設定とスクリプトを確認する
エージェントが終わるとバーのプレビューを表示し——ユーザー名、ディレクトリ、git ブランチ、モデル、コンテキスト率——すべての行き先を正確に告げます:設定は ~/.claude/settings.json、スクリプトは ~/.claude/statusline-command.sh。macOS と Linux では同じ流れで、ゼロから作る代わりに既存の .zshrc や .bashrc のプロンプトを変換することもできます。

hardik | ~/Dev/project | main | Claude Opus 4.6 | ctx:42% のプレビューと 2 つのファイルパスでセットアップ完了。3:06 から視聴
欲しいバーを自然言語の一文で伝える
- 5
欲しいバーを正確にリクエストする
/statusline はいつでも再実行でき、バーを一文で伝えます:「モデル名とコンテキスト率をプログレスバーで表示して」のように。他の言語でのリクエストも有効です——このコマンドの正体はエージェントへのプロンプトだから。新しいリクエストは毎回同じスクリプトを書き直すだけで、重複は積み上がりません。

自然言語の一文——モデル名とコンテキスト率のプログレスバー——がインターフェースのすべてです。1:07 から視聴 - 6
statusline-setup ツールの働きを見る
Claude Code は内蔵の statusline-setup ツールを呼び出し、現在の ~/.claude/settings.json とステータスラインスクリプトを読んでから書き直します。Claude 自身のホバーカードが機能を要約しています:コンテキストウィンドウの使用量、コスト、git ステータスを監視するカスタムステータスバーを設定。

実行中の statusline-setup ツール——設定とスクリプトを読み込み中、ホバーには機能説明。1:12 から視聴 - 7
新しいバーと対面する
完了すると、エージェントはデザインを復唱します——太字シアンのモデル名、49% までは緑、50% で黄色、80% で赤に変わる 20 文字幅のコンテキストバー——そしてバーはすでにターミナルの下部で動いています。再起動は不要で、そのセッションのまま調整を頼めます。

エージェントの復唱の下、Opus 4.6 (1M context) のライブバーがコンテキスト 2% を表示。1:27 から視聴
生成されたスクリプトを読む
- 8
1 つの JSON ドキュメントが stdin に届く
生成されたスクリプトを開きましょう——macOS と Linux では ~/.claude/statusline.sh、Windows では .ps1 / statusline-command.sh 版。更新のたびに Claude Code がセッションの JSON スナップショットをスクリプトの標準入力へ流し込みます。生成された Bash は jq でパースします:.model.display_name、.workspace.current_dir、.cost.total_cost_usd、.cost.total_duration_ms、.context_window.used_percentage。

パース部:stdin からの 5 つの jq 読み取り、90% と 70% のコンテキストしきい値で BAR_COLOR を選択。5:46 から視聴 - 9
echo したものがそのままバーになる
スクリプトの末尾は純粋な表示ロジックです:printf でコストを整形、ミリ秒を分と秒に変換、ステータスラインの行ごとに echo が 1 つ——1 行目はモデル+フォルダ+git ブランチ、2 行目はバー・パーセント・コスト・タイマー。ANSI カラーエスケープも歓迎で、echo を 1 つ増やせば行も 1 つ増えます。

echo 2 行でステータス行 2 行:モデル+ディレクトリ+ブランチ、そしてバー・パーセント・コスト・タイマー。6:13 から視聴 - 10
同じやり方で git 対応を足す
git データはサブプロセス 1 回で手に入ります:git rev-parse --git-dir でリポジトリか判定、git branch --show-current でブランチ名を取得、git diff --cached --numstat と --numstat でステージング済み・変更済みファイル数を数えます。生成例ではステージング数を緑、変更数を黄色に色分けします——複数の Claude Code セッションをまたいで作業するときの安価なガードになります。

ステージング数と変更数から組み立てた GIT_STATUS。ANSI コードで緑と黄に着色。5:01 から視聴
設定ブロックを自分のものに:消す、書き直す、複数行化
- 11
すべては settings.json の 1 つのブロックに
~/.claude/settings.json をのぞけば、機能の全体は 1 つの statusLine オブジェクトです:type は "command"、command が実行するスクリプトを指します——この構成では bash ~/.claude/statusline-command.sh。/statusline clear を実行すればエージェントがブロックを削除し、新しいバーを伝えれば書き直します。リポジトリごとのバーが欲しければ、プロジェクト直下の .claude/settings.json でも動きます。

/statusline clear の差分:statusLine ブロックが settings.json から消え、いつでも書き直せる状態に。1:41 から視聴 - 12
発展編:複数行でコスト・経過時間・リポジトリリンクへ
行は自由に積めます。公式ドキュメントの複数行サンプルは、OSC 8 エスケープシーケンスでクリック可能なリポジトリリンクを 1 行目に表示し、2 行目にコンテキストバー、printf '$%.2f' で整形したセッションコスト、経過した分と秒を載せます。しきい値、レート制限のパーセント、vim モード——欲しい組み合わせを伝えては、ダッシュボードが気に入るまで繰り返しましょう。

注釈付きのサンプル:1 行目に OSC 8 のリポジトリリンク、2 行目にバー・コスト・経過時間。7:31 から視聴
ステータスラインスクリプトが受け取る stdin の JSON
Claude Code はスクリプトを呼び出すとき、セッションの JSON スナップショットを標準入力に渡します。公式ドキュメントにある、知っておきたいフィールドは以下の通りです——どれでも /statusline の一文に盛り込めば、エージェントが接続してくれます:
- 1セッションの基本——session_id、transcript_path、cwd、version。最初のプロンプト送信後は session_name と prompt_id も加わります。
- 2model.id と model.display_name——バーの先頭に置かれることの多い、現在の Claude モデル。
- 3workspace.current_dir、workspace.project_dir、workspace.added_dirs。フォルダがホストされたリポジトリに属する場合は workspace.git_worktree と repo.owner / repo.name も。
- 4context_window.used_percentage と remaining_percentage——used は入力・キャッシュ作成・キャッシュ読み取りのトークンを数えますが、出力トークンは含みません。
- 5context_window.current_usage はその内訳で、input_tokens、output_tokens、cache_creation_input_tokens、cache_read_input_tokens に分かれます。最初の API 呼び出し前と /compact 直後は null。
- 6cost.total_cost_usd、cost.total_duration_ms、cost.total_api_duration_ms、cost.total_lines_added、cost.total_lines_removed——コストとペースを表示するバー向け。
- 7Pro/Max プランには rate_limits.five_hour と rate_limits.seven_day(used_percentage と resets_at 付き)。ゲートウェイ構成では spend_limit のペアが現れます——各ウィンドウは独立して欠けることがあるので、ガードを忘れずに。
- 8そのほか——exceeds_200k_tokens、fast_mode、effort.level、thinking.enabled、output_style.name、vim.mode、agent.name、pr.number / pr.url / pr.review_state、そして worktree.* ファミリー。
フィールド名は公式のステータスラインドキュメントに準拠しています。同ドキュメントには Bash・Python・Node.js のできあいのスクリプト、Windows PowerShell 版、遅いマシン向けの git キャッシュレシピも載っています。
トラブルシューティング:ステータスラインが出ない・おかしい・更新されない
ステータスラインの失敗はほぼ 5 つの原因に集約されます。どれも同じセッション内で直せます——再インストールは不要です。
- 1まったく表示されない——まず ~/.claude/settings.json の JSON が壊れていないか確認。収録では、コマンドパスの余計な 1 文字を直してセッションを再起動するまで沈黙していた Windows セットアップがありました。権限プロンプトが開いている間もバーは隠れ、ワークスペースが信頼されるまでスクリプトは実行されません。
- 2エラーなしの真っ白なバー——スクリプトが非ゼロで終了したか、何も出力していません。手で実行してみましょう。たとえば echo '{"model":{"display_name":"Opus"}}' | bash ~/.claude/statusline.sh。出力を読み、claude --debug はスクリプトの stderr も記録します。
- 31 つのプロジェクトでしか動かない——ブロックがホームディレクトリでなくプロジェクト直下の .claude/settings.json に落ちています。~/.claude/settings.json に移せば、どのプロジェクトでもバーが出ます。
- 4数値がおかしい——スクリプトが間違ったプロパティを読んでいる可能性が高いです。生の stdin JSON をデバッグファイルに吐かせて読み、フィールドを修正しましょう。収録の macOS セッションはまさにこの方法でパーセンテージを自己修復しました。
- 5macOS や Linux でスクリプトはあるのに何も描かれない——jq が入っていません。インストールし(brew install jq、sudo apt install jq、Windows なら相当物)、その後ステータスラインの更新を Claude に頼んでスクリプトを再生成させましょう。
バーの更新頻度(とコスト)
スクリプトはセッション開始時に 1 回走り、その後は何かが起きたときに走ります:新しいアシスタントメッセージ、/compact の完了、権限モードや vim モードの変更、コマンド自体の編集、レート制限ウィンドウのリセット、温まったプロンプトキャッシュの失効。更新は 300 ミリ秒でデバウンスされ、実行中の走行は新しいものが来ると取り消されます。
更新はイベント駆動なので、アイドル中——たとえば長いサブエージェントの実行を待っている間——はバーが静かになります。refreshInterval を statusLine ブロックに足せば、時間依存のデータのために N 秒ごとにスクリプトを再実行します。どれも API には触れません:スクリプトはローカルで走り、トークンは消費せず、echo の行が 1 つ増えるごとに別の行として描かれます。
いじり好きのためにダイヤルが 2 つあります:hideVimModeIndicator はスクリプト自身が vim モードを描く場合に内蔵の -- INSERT -- 表示を消し、別個の subagentStatusLine 設定はサブエージェントにエージェントパネル専用のカスタム行を与えます。
