Deepseek ArtifactsDeepseek Artifacts
Claude Code CLI · 2026

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. 1

    ターミナルで Claude Code を起動する

    PowerShell、ターミナル、どんなシェルでも claude と入力して起動します。新規セッションではウェルカムボックスと空のプロンプトだけ——入力欄の下の帯、つまりステータスラインの居場所は、~/.claude/settings.json に statusLine ブロックが追加されるまで存在しません。

    Claude Code v2.1.83 welcome box open in a Windows PowerShell terminal after typing claude, with an empty input prompt and no status line beneath it
    Windows PowerShell の Claude Code v2.1.83 新規セッション——ウェルカムボックス、空のプロンプト、ステータス行はまだなし。0:22 から視聴
  2. 2

    /statusline コマンドを入力する

    スラッシュコマンドのメニューには素直に「Claude Code のステータスライン UI をセットアップ」とあります。Enter を押すだけ。この内蔵コマンドは自然言語を理解するので、スクリプトを手書きする必要はありません——もちろん、生成されたスクリプトは後から自由に編集できます。

    Slash command /statusline typed into Claude Code with the autocomplete menu labelling it as the way to set up Claude Code’s status line UI
    自動補完は /statusline を「Claude Code のステータスライン UI をセットアップするコマンド」と紹介しています。0:32 から視聴
  3. 3

    セットアップエージェントの質問に答える

    専用の statusline-setup エージェントが引き継ぎます。Windows では標準のシェル設定が見つからないと報告し、3 つの道を提示します:PS1 プロファイルを貼り付けて変換してもらう、WSL や Git Bash の設定を指定する、あるいはユーザー名・ディレクトリ・モデル・コンテキスト使用量を表示するデフォルトで始める。どの道も最後は同じ settings.json ブロックに着地します。

    statusline-setup agent on Windows reporting it could not find standard shell config files and offering to paste a PS1, point at a WSL or Git Bash config, or set up a fresh statusline showing user, directory, model and context usage
    Windows の 3 つの選択肢:PS1 を変換、カスタム設定を指定、または無難なデフォルトから開始。1:20 から視聴
  4. 4

    書き込まれた設定とスクリプトを確認する

    エージェントが終わるとバーのプレビューを表示し——ユーザー名、ディレクトリ、git ブランチ、モデル、コンテキスト率——すべての行き先を正確に告げます:設定は ~/.claude/settings.json、スクリプトは ~/.claude/statusline-command.sh。macOS と Linux では同じ流れで、ゼロから作る代わりに既存の .zshrc や .bashrc のプロンプトを変換することもできます。

    Claude Code confirming your status line is configured with a preview reading hardik, ~/Dev/project, main, Claude Opus 4.6 and ctx:42%, and noting the config is in ~/.claude/settings.json with the script at ~/.claude/statusline-command.sh
    hardik | ~/Dev/project | main | Claude Opus 4.6 | ctx:42% のプレビューと 2 つのファイルパスでセットアップ完了。3:06 から視聴

欲しいバーを自然言語の一文で伝える

  1. 5

    欲しいバーを正確にリクエストする

    /statusline はいつでも再実行でき、バーを一文で伝えます:「モデル名とコンテキスト率をプログレスバーで表示して」のように。他の言語でのリクエストも有効です——このコマンドの正体はエージェントへのプロンプトだから。新しいリクエストは毎回同じスクリプトを書き直すだけで、重複は積み上がりません。

    Natural language request /statusline show model name and context percentage with a progress bar submitted to Claude Code, which replies Noodling while it works
    自然言語の一文——モデル名とコンテキスト率のプログレスバー——がインターフェースのすべてです。1:07 から視聴
  2. 6

    statusline-setup ツールの働きを見る

    Claude Code は内蔵の statusline-setup ツールを呼び出し、現在の ~/.claude/settings.json とステータスラインスクリプトを読んでから書き直します。Claude 自身のホバーカードが機能を要約しています:コンテキストウィンドウの使用量、コスト、git ステータスを監視するカスタムステータスバーを設定。

    Built-in statusline-setup tool configuring the status line while a white Configuration tooltip reads Customize your status line to monitor context window usage, costs and git status in Claude Code
    実行中の statusline-setup ツール——設定とスクリプトを読み込み中、ホバーには機能説明。1:12 から視聴
  3. 7

    新しいバーと対面する

    完了すると、エージェントはデザインを復唱します——太字シアンのモデル名、49% までは緑、50% で黄色、80% で赤に変わる 20 文字幅のコンテキストバー——そしてバーはすでにターミナルの下部で動いています。再起動は不要で、そのセッションのまま調整を頼めます。

    Claude Code summarising the freshly configured status line — a bold cyan model name and a 20 character context bar green to 49 percent, yellow to 79 and red above — above the live Opus 4.6 bar reading 2 percent
    エージェントの復唱の下、Opus 4.6 (1M context) のライブバーがコンテキスト 2% を表示。1:27 から視聴

生成されたスクリプトを読む

  1. 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。

    Top of statusline.sh parsing the stdin JSON with jq into MODEL, DIR, COST and PCT variables, then choosing BAR_COLOR red at 90 percent context used and yellow at 70
    パース部:stdin からの 5 つの jq 読み取り、90% と 70% のコンテキストしきい値で BAR_COLOR を選択。5:46 から視聴
  2. 9

    echo したものがそのままバーになる

    スクリプトの末尾は純粋な表示ロジックです:printf でコストを整形、ミリ秒を分と秒に変換、ステータスラインの行ごとに echo が 1 つ——1 行目はモデル+フォルダ+git ブランチ、2 行目はバー・パーセント・コスト・タイマー。ANSI カラーエスケープも歓迎で、echo を 1 つ増やせば行も 1 つ増えます。

    Lower half of statusline.sh turning DURATION_MS into minutes and seconds, appending the git branch from git rev-parse, and echoing the model row plus the bar, percentage, cost and elapsed time row
    echo 2 行でステータス行 2 行:モデル+ディレクトリ+ブランチ、そしてバー・パーセント・コスト・タイマー。6:13 から視聴
  3. 10

    同じやり方で git 対応を足す

    git データはサブプロセス 1 回で手に入ります:git rev-parse --git-dir でリポジトリか判定、git branch --show-current でブランチ名を取得、git diff --cached --numstat と --numstat でステージング済み・変更済みファイル数を数えます。生成例ではステージング数を緑、変更数を黄色に色分けします——複数の Claude Code セッションをまたいで作業するときの安価なガードになります。

    Close-up of GIT_STATUS logic colouring staged counts green and modified counts yellow with ANSI escape codes next to the BRANCH detection in a Claude Code statusline script
    ステージング数と変更数から組み立てた GIT_STATUS。ANSI コードで緑と黄に着色。5:01 から視聴

設定ブロックを自分のものに:消す、書き直す、複数行化

  1. 11

    すべては settings.json の 1 つのブロックに

    ~/.claude/settings.json をのぞけば、機能の全体は 1 つの statusLine オブジェクトです:type は "command"、command が実行するスクリプトを指します——この構成では bash ~/.claude/statusline-command.sh。/statusline clear を実行すればエージェントがブロックを削除し、新しいバーを伝えれば書き直します。リポジトリごとのバーが欲しければ、プロジェクト直下の .claude/settings.json でも動きます。

    Diff of ~/.claude/settings.json deleting the statusLine block with type command pointing at bash /Users/matt/.claude/statusline-command.sh after /statusline cleared the config
    /statusline clear の差分:statusLine ブロックが settings.json から消え、いつでも書き直せる状態に。1:41 から視聴
  2. 12

    発展編:複数行でコスト・経過時間・リポジトリリンクへ

    行は自由に積めます。公式ドキュメントの複数行サンプルは、OSC 8 エスケープシーケンスでクリック可能なリポジトリリンクを 1 行目に表示し、2 行目にコンテキストバー、printf '$%.2f' で整形したセッションコスト、経過した分と秒を載せます。しきい値、レート制限のパーセント、vim モード——欲しい組み合わせを伝えては、ダッシュボードが気に入るまで繰り返しましょう。

    statusline.sh snippet building a clickable repo link with printf OSC 8 escapes and printing line one with model and branch plus line two with context bar, cost and duration
    注釈付きのサンプル: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. 1まったく表示されない——まず ~/.claude/settings.json の JSON が壊れていないか確認。収録では、コマンドパスの余計な 1 文字を直してセッションを再起動するまで沈黙していた Windows セットアップがありました。権限プロンプトが開いている間もバーは隠れ、ワークスペースが信頼されるまでスクリプトは実行されません。
  2. 2エラーなしの真っ白なバー——スクリプトが非ゼロで終了したか、何も出力していません。手で実行してみましょう。たとえば echo '{"model":{"display_name":"Opus"}}' | bash ~/.claude/statusline.sh。出力を読み、claude --debug はスクリプトの stderr も記録します。
  3. 31 つのプロジェクトでしか動かない——ブロックがホームディレクトリでなくプロジェクト直下の .claude/settings.json に落ちています。~/.claude/settings.json に移せば、どのプロジェクトでもバーが出ます。
  4. 4数値がおかしい——スクリプトが間違ったプロパティを読んでいる可能性が高いです。生の stdin JSON をデバッグファイルに吐かせて読み、フィールドを修正しましょう。収録の macOS セッションはまさにこの方法でパーセンテージを自己修復しました。
  5. 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 設定はサブエージェントにエージェントパネル専用のカスタム行を与えます。

Claude Code ステータスライン FAQ

関連ガイド