Claude Code StatuslineとStatus Barの完全ガイド【2026年最新】:ターミナルに何を表示すべきか、設定方法から活用ツールまで
室谷今回はClaude CodeのStatuslineの話をしましょう。.AI(ドットエーアイ)コミュニティでも「ターミナルの下部に情報を出せる」って気づいたメンバーが最近急に増えてきた感じがありますね。
テキトー教師そうですね。Statuslineを使い始めると「なんで今まで使ってなかったんだろう」ってなるんですよ。
講座でも「Claude Codeを使いながらコンテキストの残量が見えない」という悩みをよく聞くので、まさにその解決策の1つです。
講座でも「Claude Codeを使いながらコンテキストの残量が見えない」という悩みをよく聞くので、まさにその解決策の1つです。
室谷MYUUUでもエンジニアが長時間セッションで「突然レートリミットに当たった」というのが何回かあって・・・。Statuslineでリミットの残量を可視化してから、そういうトラブルが減りましたね。
テキトー教師コンテキストウィンドウの使用率をリアルタイムで確認できるのが、実務的には一番大きいと思いますよ。特に大きなコードベースを扱うときは、知らないうちにコンテキストを使い切ってしまう・・・という体験をした人は多いはずです。
室谷まず基本的なところから整理しましょうか。Claude Code StatuslineとStatus Barって何なのか、という話ですね。
Claude Code Statuslineとは何か

テキトー教師Claude Codeを起動するとターミナルの下部に表示されるバー、あれが「Statusline」です。デフォルトでは何も表示されていないか、最低限の情報しか出ません。
ここをカスタマイズできる機能がClaude Code v1.x系から正式に搭載されました。
ここをカスタマイズできる機能がClaude Code v1.x系から正式に搭載されました。
室谷仕組みが面白いんですよね。Claude Codeが指定したシェルスクリプトを呼び出して、stdinにJSONを渡す。
そのスクリプトが返したテキストをステータスラインとして表示する、という設計になっています。
そのスクリプトが返したテキストをステータスラインとして表示する、という設計になっています。
テキトー教師「コマンドを指定すれば、好きな情報を好きな形式で表示できる」という設計です。シンプルですが、これがめちゃくちゃ自由度が高い。
スクリプトの中でbashの計算を走らせることもできますし、gitコマンドを叩くこともできます。
スクリプトの中でbashの計算を走らせることもできますし、gitコマンドを叩くこともできます。
室谷公式ドキュメントでは
statusLineという設定キーを~/.claude/settings.jsonに追加することで有効化できます。設定の形式はこういうものです。{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
テキトー教師type: "command"で「外部コマンドを実行する」という設定になります。commandに実行するスクリプトのパスを書けばOKです。スクリプトはstdinからJSONを受け取り、表示したいテキストをstdoutに出力します。
室谷ちなみに
disableAllHooks: trueという設定をすると、HookもStatuslineも全部無効化されます。逆に言うと、StatuslineとHookは同じ設定レイヤーにある機能ということですね。Statuslineに渡されるJSONの構造

室谷スクリプトの書き方の前に、JSONの構造を把握しておく必要があります。Claude Codeが渡してくるJSONはこういう形式です。
{
"model": {
"id": "claude-sonnet-4-6-20251022",
"display_name": "Claude Sonnet 4.6"
},
"context_window": {
"total_input_tokens": 12400,
"total_output_tokens": 3200,
"context_window_size": 200000,
"used_percentage": 7.8
},
"cost": {
"total_cost_usd": 0.04,
"total_lines_added": 42,
"total_lines_removed": 7,
"total_duration_ms": 180000
},
"workspace": {
"current_dir": "/Users/yourname/projects/my-app"
},
"worktree": {
"name": "my-app-payments"
},
"rate_limits": {
"five_hour": {
"used_percentage": 42,
"resets_at": 1742651200
},
"seven_day": {
"used_percentage": 18,
"resets_at": 1743120000
}
}
}
テキトー教師フィールドが充実していますね。モデル名、コンテキスト使用率、セッションコスト、作業ディレクトリ、gitワークツリー情報、そしてレートリミットの残量まで・・・。
これだけあれば、必要な情報はほぼ全部カバーできます。
これだけあれば、必要な情報はほぼ全部カバーできます。
室谷rate_limitsフィールドはClaude Code v1.2.80以降で追加されました。これが追加されたことで「あと何時間でリミットがリセットされるか」をターミナル上で自動表示できるようになりました。Proプランを使っている人には特に刺さる機能ですよね。
テキトー教師コミュニティのメンバーさんから「突然レートリミットに当たって作業が止まった」という話はよく聞きます。このフィールドを活用すれば、事前に「そろそろ限界が近い」とわかります。
特に
特に
five_hourの使用率が80%を超えたら注意、というような表示ができると実用的ですね。| フィールド | 説明 |
|---|---|
model.display_name | 現在使用中のモデル名(例: Claude Sonnet 4.6) |
model.id | フルのモデルID |
context_window.used_percentage | コンテキストウィンドウの使用率(%) |
context_window.total_input_tokens | 入力トークン数 |
context_window.total_output_tokens | 出力トークン数 |
context_window.context_window_size | コンテキストウィンドウの最大サイズ |
cost.total_cost_usd | セッションの累計コスト(USD) |
cost.total_lines_added | 追加した行数 |
cost.total_lines_removed | 削除した行数 |
workspace.current_dir | 現在の作業ディレクトリ |
worktree.name | gitワークツリー名(v1.2.80以降) |
rate_limits.five_hour.used_percentage | 5時間レートリミットの使用率(v1.2.80以降) |
rate_limits.seven_day.used_percentage | 7日間レートリミットの使用率(v1.2.80以降) |
室谷このテーブルを見ると、「情報量が豊富だからこそ、何を表示するかの設計が大事」という感じがしますね・・・。全部表示しようとすると、ステータスラインが長くなりすぎて逆に読みにくくなります。
テキトー教師まさに。「自分のユースケースで本当に必要な情報は何か」から考えるのが大事です。
私がおすすめするのは「モデル名・コンテキスト使用率・セッションコスト」の3つをまず表示して、慣れたら追加していく、というアプローチです。
私がおすすめするのは「モデル名・コンテキスト使用率・セッションコスト」の3つをまず表示して、慣れたら追加していく、というアプローチです。
基本的なStatuslineスクリプトの作り方
室谷では実際にスクリプトを作っていきましょう。まず最もシンプルな構成から。
テキトー教師jqというJSONパーサーが必要です。macOSならbrew install jq、Linuxならapt install jqでインストールできます。まずこれを入れておいてください。
室谷jqを入れたら、~/.claude/statusline.shを作ります。最もシンプルな例がこれです。#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
INPUT_TOKENS=$(echo "$input" | jq -r '.context_window.total_input_tokens')
OUTPUT_TOKENS=$(echo "$input" | jq -r '.context_window.total_output_tokens')
CONTEXT_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
TOTAL_TOKENS=$((INPUT_TOKENS + OUTPUT_TOKENS))
PERCENT_USED=$((TOTAL_TOKENS * 100 / CONTEXT_SIZE))
echo "[$MODEL] Context: ${PERCENT_USED}%"
テキトー教師これを実行可能にして・・・
chmod +x ~/.claude/statusline.sh
そして~/.claude/settings.jsonに設定を追加します。
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
Claude Codeを再起動すれば、ターミナルの下部に[Claude Sonnet 4.6] Context: 7%のような表示が出るようになります。
室谷シンプルですが、これだけで「今どのモデルを使っているか」「コンテキストをどれだけ使っているか」が一目でわかります。MYUUUのエンジニアにこれを設定してもらったとき、みんな「これめちゃくちゃ便利じゃないですか」ってなりましたよw
テキトー教師コンテキスト使用率が見えるようになると、
/compactコマンドを使うタイミングが自然とわかるようになるんですよ。「80%を超えたらコンパクトする」みたいなルールを自分の中で持ちやすくなります。動作確認:スクリプトをテストする方法
テキトー教師スクリプトを作ったけど何も表示されない、というときのデバッグ方法です。まずjqが入っているか確認してください。
jq --version
室谷入っていない場合は
brew install jq(macOS)またはapt install jq(Ubuntu/Debian)でインストールします。次に、スクリプトをモックデータで手動テストできます。echo '{"model":{"display_name":"Sonnet 4.6"},"context_window":{"total_input_tokens":1000,"total_output_tokens":500,"context_window_size":200000}}' | ~/.claude/statusline.sh
テキトー教師これで
[Sonnet 4.6] Context: 0%のような出力が出れば、スクリプト自体は正しく動いています。出力が出ない場合はスクリプトに実行権限がついているか(ls -la ~/.claude/statusline.sh)を確認してください。コスト表示とレートリミット監視を追加する
テキトー教師基本ができたら、コスト表示も追加しましょう。仕事でClaude Codeを使っているなら、セッションのコストを把握するのは大事ですね。
室谷APIキーで使っている人はコストが直接請求されますし、Proプランの人もレートリミットの観点から「消費量」を意識するのは重要です・・・。拡張バージョンがこれです。
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
INPUT_TOKENS=$(echo "$input" | jq -r '.context_window.total_input_tokens')
OUTPUT_TOKENS=$(echo "$input" | jq -r '.context_window.total_output_tokens')
CONTEXT_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd')
TOTAL_TOKENS=$((INPUT_TOKENS + OUTPUT_TOKENS))
PERCENT_USED=$((TOTAL_TOKENS * 100 / CONTEXT_SIZE))
printf "[%s] Context: %d%% | $%.2f" "$MODEL" "$PERCENT_USED" "$COST"
テキトー教師$0.04のように表示されます。講座でもAPIキーで使っているメンバーさんには、コスト表示は必須で設定してもらっています。「あれ、今日のセッション意外と使ってるな」という気づきになりますから。
室谷v1.2.80以降なら、レートリミットの残量も追加できます。これが加わると実用性がぐっと上がりますね。
Proプランの5時間制限に引っかかりやすい人には特に重要です。
Proプランの5時間制限に引っかかりやすい人には特に重要です。
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
PERCENT_USED=$(echo "$input" | jq -r '.context_window.used_percentage')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd')
RL_5H=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // "N/A"')
RL_RESET=$(echo "$input" | jq -r '.rate_limits.five_hour.resets_at // ""')
# リセット時刻を人間が読める形式に変換(macOS/Linux両対応)
if [ -n "$RL_RESET" ] && [ "$RL_RESET" != "null" ]; then
RESET_TIME=$(date -d @"$RL_RESET" "+%H:%M" 2>/dev/null || date -r "$RL_RESET" "+%H:%M" 2>/dev/null)
else
RESET_TIME="--:--"
fi
printf "[%s] Ctx: %.0f%% | $%.2f | 5h: %.0f%% (reset %s)" \
"$MODEL" "$PERCENT_USED" "$COST" "$RL_5H" "$RESET_TIME"
テキトー教師これを設定すると、たとえば
[Sonnet 4.6] Ctx: 12% | $0.04 | 5h: 42% (reset 14:30)のような表示になります。「5時間制限の42%を使っていて、14:30にリセットされる」という情報が一目瞭然ですね。
室谷「今日の午後に重要な作業があるから、それまでに5時間リミットを回復させておこう」という判断ができるようになります。これ、実務的にはかなりデカいです・・・。
/statuslineスラッシュコマンドで簡単セットアップ
テキトー教師実は、スクリプトを手で書かなくても設定できる方法があります。
/statuslineというスラッシュコマンドを使う方法です。
室谷これは知らなかった人も多いかも・・・。Claude Code内で
「モデル名とコンテキスト使用率を表示したい」と伝えると、必要なスクリプトと設定ファイルを自動で作成してくれます。
/statuslineと入力すると、対話的にStatuslineの設定をガイドしてくれます。「モデル名とコンテキスト使用率を表示したい」と伝えると、必要なスクリプトと設定ファイルを自動で作成してくれます。
テキトー教師コミュニティのメンバーさんでbashスクリプトを書いたことがない方は、まずこのコマンドから試すのをおすすめします。「インストールして」と言えばClaude Codeが全部やってくれますから(笑)
室谷具体的には、Claude Codeのセッション中にこう入力します。
/statusline モデル名とコンテキスト使用率、セッションコストを表示するステータスラインを設定してください
これだけで、Claude Codeがスクリプトを書いて、設定ファイルを更新して、再起動の案内もしてくれます。
テキトー教師手動でスクリプトを書くより速いですし、Claude Codeに書かせた方が文法ミスも少ないです(笑)。カスタマイズしたくなったら、生成されたスクリプトをベースに自分で修正していくのが現実的なアプローチですよね。
ccstatusline:本格的なStatuslineツール

室谷自前でスクリプトを書くのもいいですが、もっと本格的な表示をしたい場合は「ccstatusline」というオープンソースツールが使えます。GitHub上でstar数が6,600以上あって、かなり人気ですね。
テキトー教師機能が充実しているんですよ。30種類以上のウィジェットが用意されていて、モデル、コンテキスト使用率、コスト、Gitブランチ、ワークツリー名、レートリミット、トークン速度など、ほぼ全ての情報を表示できます。
室谷インストールはnpmで一発です。
npm install -g ccstatusline
インストール後、対話式のTUI(テキストユーザーインターフェース)で設定できます。
ccstatusline config
テキトー教師TUIで見た目を確認しながら設定できるので、bashスクリプトをいじる必要がないのがいいですよね。設定内容を
~/.claude/settings.jsonに自動で書き込んでくれます。
室谷海外のClaude Codeユーザーコミュニティでも「ccstatuslineを入れて生産性が上がった」という声が多いですね。パワーライン形式で見た目もかっこいいし・・・。
テキトー教師v2.2.xからは「トークン速度ウィジェット」が追加されたそうで、「1分あたり何トークン処理しているか」という情報も表示できます。モデルの応答速度を比較するのに使えます。
室谷一方で、ccstatuslineはTypeScriptで書かれたNode.jsアプリケーションなので、Node.jsがインストールされている環境が必要です。その点だけ注意ですね。
ccusage:Statuslineとは別の補完ツール
テキトー教師Statuslineの話の中で「ccusage」に触れておく必要があります。これはStatuslineとは役割が違って、セッション全体の使用量をダッシュボードで確認するツールです。
室谷Statuslineがリアルタイムの状態表示なのに対して、ccusageは「過去のセッションを振り返る」ための分析ツールですね。コスト推移、セッション履歴、日次・月次のサマリーを確認できます。
テキトー教師チームでClaude Codeを使っている場合、月末に「今月いくら使ったか」を把握するのに重宝します。Statuslineでリアルタイムを監視しながら、ccusageで月次レポートを確認する、という組み合わせが実用的です。
室谷インストールはこちらも簡単です。
npm install -g ccusage
テキトー教師起動すると、過去のセッション一覧とコスト内訳が表示されます。
ccusage --dayで今日の使用量、ccusage --monthで今月の使用量が確認できます。
室谷ただ、ccusageはClaude Codeのローカルセッションデータを読み取る仕組みなので、別のマシンでのセッションデータは取得できません。あくまで「このマシン上でのClaude Code使用量」のトラッキングになります。
テキトー教師MYUUUでは複数マシンで使っているエンジニアもいるので、そこは注意が必要ですね。とはいえ、1台のマシンでメインに使っている人には十分実用的なツールです。
gitワークツリーとの連携
テキトー教師git worktreeを使ってClaude Codeを並列実行している人には、Statuslineでワークツリー情報を表示するのが特に重要です。
室谷「複数のターミナルウィンドウを開いて、それぞれ別のワークツリーでClaude Codeを走らせる」というワークフローをやっている人が増えていますよね。そうなると「今どのブランチにいるのか」が分からなくなる・・・。
テキトー教師Statuslineに
worktree.nameと現在のブランチを表示しておくと、ウィンドウを切り替えた瞬間にわかります。これは講座でも「gitワークツリーを教えたとき」とセットで教えるようにしています。
室谷workspace.current_dirを使えば、プロジェクトのパスも表示できます。たとえば/Users/tom/projects/my-app-paymentsを表示するのではなく、paymentsのように最後のディレクトリ名だけを表示する、というのが実用的です。CURRENT_DIR=$(echo "$input" | jq -r '.workspace.current_dir')
DIR_NAME=$(basename "$CURRENT_DIR")
テキトー教師ワークツリー名とディレクトリ名を組み合わせると、「今どのプロジェクトのどの機能ブランチにいるか」が一目でわかる表示になります。並列作業が多い人には特におすすめです。
claude code context usage status lineの活用:コンテキスト管理の実践
室谷コンテキストウィンドウの管理という観点から、Statuslineをどう活用するかについて深掘りしておきましょう。前回のセッションでコンテキストの話をしましたが、今回はそれと連動する部分ですね。
テキトー教師context_window.used_percentageを監視することで、コンテキストの残量を常に把握できます。実際の運用では「使用率が70%を超えたら要注意」くらいの感覚で使っています。
室谷コンテキストが90%を超えてから対応しようとすると、もう手遅れになるケースが多い・・・。70〜80%のタイミングで
/compactを実行してコンテキストを圧縮するのが、スムーズな作業継続のコツです。
テキトー教師Statuslineでパーセンテージを常時表示していると、「あ、そろそろコンパクトしないと」というタイミングが体感でわかるようになってきます。数回経験すれば自然と身につきます。
室谷高度な使い方として、Statuslineで閾値に応じて色を変える、というものがあります。ANSI カラーコードを使えばターミナル上で色付き表示ができます。
#!/bin/bash
input=$(cat)
PERCENT_USED=$(echo "$input" | jq -r '.context_window.used_percentage')
MODEL=$(echo "$input" | jq -r '.model.display_name')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd')
# 使用率に応じて色を変える
PERCENT_INT=$(printf "%.0f" "$PERCENT_USED")
if [ "$PERCENT_INT" -ge 90 ]; then
COLOR="\033[31m" # 赤
elif [ "$PERCENT_INT" -ge 70 ]; then
COLOR="\033[33m" # 黄
else
COLOR="\033[32m" # 緑
fi
RESET="\033[0m"
printf "[%s] ${COLOR}Ctx: %.0f%%${RESET} | \$%.2f" "$MODEL" "$PERCENT_USED" "$COST"
テキトー教師これで使用率が70%以上で黄色、90%以上で赤になります。視覚的に「やばい」とわかる仕組みです。
ターミナルが色に対応している必要がありますが、最近のターミナルはほとんど対応しています。
ターミナルが色に対応している必要がありますが、最近のターミナルはほとんど対応しています。
claude code status commandとconfig:設定をチームで共有する
室谷Statuslineの設定を自分だけでなく、チームで統一したい場合の話もしておきましょう。
テキトー教師~/.claude/settings.jsonはユーザースコープなので、自分のマシンにしか適用されません。チーム全体に適用したい場合は、.claude/settings.json(プロジェクトルートの.claudeフォルダ)に設定を入れるとgitで共有できます。
室谷ただし、プロジェクトスコープのStatusline設定には注意点があります。スクリプトのパスをハードコードすると、チームメンバーそれぞれのホームディレクトリのパスが違うので動きません。
テキトー教師解決策としては、スクリプトを絶対パスではなく
.claude/フォルダ相対で管理して、~/.claude/settings.json側でそのスクリプトを参照する形にするのがおすすめです。または、チーム全員が同じパスにスクリプトを置くという運用ルールを作るか。
室谷もう一つの方法として、
ここからもStatuslineの設定を確認・変更できます。
/configコマンドを使う方法があります。Claude Code内で/configを実行すると、タブ形式のSettings UIが開きます。ここからもStatuslineの設定を確認・変更できます。
テキトー教師設定の確認は、この
/configのUIから「Status Line」のタブを見るのが一番わかりやすいです。設定が正しく適用されているかをビジュアルで確認できます。よくある質問とトラブルシューティング
室谷最後に、Statuslineを使う上でよくある質問と問題の解決方法をまとめておきましょう。
テキトー教師「設定したのにStatuslineが表示されない」というのが一番多い質問です。確認ポイントが複数あります。
室谷まず確認することをリストにまとめると、こうなります。
jqがインストールされているか(jq --versionで確認)- スクリプトに実行権限がついているか(
chmod +x ~/.claude/statusline.sh) ~/.claude/settings.jsonの記述が正しいか(JSON形式が壊れていないか)- Claude Codeを設定変更後に再起動したか
テキトー教師もう一つよくあるのが「Statuslineは表示されるけど情報が空欄になる」というケース。これはスクリプトが実行されているけど、JSONから値を取得できていない状態です。
まずモックデータでスクリプトを手動テストしてみてください。
まずモックデータでスクリプトを手動テストしてみてください。
室谷rate_limitsフィールドがnullになる場合は、Claude Codeのバージョンを確認してください。この機能はv1.2.80以降で追加されました。古いバージョンを使っている場合はアップデートが必要です。
claude --version
テキトー教師アップデートは
npm update -g @anthropic-ai/claude-code、またはclaude updateコマンドで実行できます。最新バージョンに更新してから再確認してください。
室谷あとは、
disableAllHooks: trueという設定が~/.claude/settings.jsonや.claude/settings.jsonに入っていると、Statuslineも無効化されてしまいます。これが原因でStatuslineが表示されないケースもありました。
テキトー教師チームのプロジェクト設定に
disableAllHooks: trueが入っていて、自分のユーザー設定のStatuslineが動かない・・・というパターンは盲点ですよね。設定の優先順位を把握しておくのが大事です。まとめ
室谷Claude Code Statuslineは、設定すれば「現在のモデル」「コンテキスト使用率」「セッションコスト」「レートリミット残量」など、作業に必要な情報をターミナル下部に常時表示できる機能です。
テキトー教師設定方法をまとめると、まず
jqをインストールして、~/.claude/statusline.shにスクリプトを書いて、~/.claude/settings.jsonにstatusLineの設定を追加するだけです。スクリプトを書きたくない場合は、Claude Code内で/statuslineコマンドを使えば自動的に設定してくれます。
室谷本格的に使いたい場合はccstatusline(
npm install -g ccstatusline)を試してみてください。30種類以上のウィジェットをGUIで設定できて、見た目もきれいです。
テキトー教師セッション履歴の分析にはccusageが便利です。「今月いくら使ったか」「最もコストがかかったセッションはどれか」を後から振り返れます。
Statuslineでリアルタイム監視、ccusageで月次分析、という組み合わせがおすすめです。
Statuslineでリアルタイム監視、ccusageで月次分析、という組み合わせがおすすめです。
室谷特にgit worktreeで並列作業をしている人は、Statuslineにワークツリー名を表示しておくだけで「今どのブランチにいるか」の混乱が激減します。一度設定したら外せなくなりますよw
テキトー教師コンテキスト使用率を常時表示することで、「いつ/compactするか」の判断もしやすくなります。Claude Codeをより快適に使うための設定として、Statuslineは最初に整えておく価値があります。
