Claude Code を使っていると、「今どれくらいコンテキストを使った?」「このセッション、いくらかかってる?」が気になります。これを画面の下に常時表示できるのが、ステータスラインのカスタマイズです。
私は普段、こんな表示を出しています(コスト額はぼかしています)。

モデル名・コンテキスト使用率(バー付き)・コスト・経過時間が一目で分かります。実はこの表示が、別記事で紹介した「コンテキスト50%で /compact する」運用を支えています。
この記事では、これをコピペで再現する方法を、公式仕様に沿って解説します。
まずは結論:3つのやり方がある
/statuslineコマンドに丸投げ(いちばん簡単。AIが設定してくれる)- 自分で設定(settings.json + スクリプト。中身が分かる)
- ccusage を使う(コスト集計に強い既製ツール)
順に紹介します。「とりあえず欲しい」なら①、「仕組みも知りたい」なら②、「コスト管理を厚く」なら③です。
いちばん簡単:/statusline に頼む
Claude Code の中で /statusline を実行し、欲しい内容を日本語で伝えるだけで、設定ファイルとスクリプトを自動で作ってくれます。
/statusline モデル名とコンテキスト使用率をバーで、コストと経過時間も表示して
これで終わり、という手軽さです。まずはこれで十分な人も多いはず。「中身を自分で管理したい」人は次の②へ。
自分で設定する(仕組みが分かる)
仕組み:JSON が渡ってくる
ステータスラインは、Claude Code が現在のセッション情報を JSON で渡してくれるので、それを好きに整形して出力するだけです。主に使うフィールドはこちら。
| フィールド | 内容 |
|---|---|
model.display_name |
モデル名(例:Opus) |
context_window.context_window_size |
最大コンテキスト(200000 または 1000000) |
context_window.used_percentage |
コンテキスト使用率(%) |
cost.total_cost_usd |
セッションの推定コスト(米ドル) |
cost.total_duration_ms |
セッション経過時間(ミリ秒) |
スクリプト(コピペでOK)
~/.claude/statusline.sh を作って、以下を貼り付けます(jq が必要です)。
ポイントは、コンテキスト使用率に応じてバーの色を変える(緑→黄→赤)こと。残量がひと目で分かります。
#!/bin/bash
# Claude Code が JSON を標準入力で渡してくる
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name // "Unknown"')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
DUR=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')
# 使用率で色を変える(緑→黄→赤)
GREEN='\033[92m'; YELLOW='\033[93m'; RED='\033[91m'; RESET='\033[0m'
if [ "$PCT" -ge 90 ] 2>/dev/null; then COLOR="$RED"
elif [ "$PCT" -ge 70 ] 2>/dev/null; then COLOR="$YELLOW"
else COLOR="$GREEN"; fi
# 幅20のプログレスバー(█=使用済み, ░=残り)
WIDTH=20
FILLED=$(( PCT * WIDTH / 100 )); EMPTY=$(( WIDTH - FILLED ))
BAR=""
for ((i=0; i<FILLED; i++)); do BAR="${BAR}█"; done
for ((i=0; i<EMPTY; i++)); do BAR="${BAR}░"; done
# 経過時間(分m秒s)とコスト(小数2桁・ドル)
MINS=$(( DUR / 60000 )); SECS=$(( (DUR % 60000) / 1000 ))
COST_FMT=$(printf '$%.2f' "$COST")
# 出力
printf "${MODEL} | ${COLOR}${BAR}${RESET} ${PCT}%% | ${COST_FMT} | ${MINS}m${SECS}s"
実行権限を付けます。
chmod +x ~/.claude/statusline.sh
settings.json に登録
~/.claude/settings.json に次を追記します。
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
保存すると、次のやり取りから画面下にこんな表示が出ます(イメージ)。
Opus | ███░░░░░░░░░░░░░░░░░ 18% | $0.42 | 12m34s
モデル・コンテキスト(色付きバー)・コスト・時間が一目で分かります。バーは 緑→黄→赤 と変わるので、「そろそろ危ない」も直感的に掴めます。Gitブランチなどを足すのも自由です(公式ドキュメントに例が豊富)。
補足:
context_window.used_percentageやcost.*は、セッション開始直後や/compact直後は一時的に空になることがあります。スクリプト側で// 0のように既定値を入れておくと安全です。
コスト管理を厚くするなら ccusage
「コストをもっと詳しく(今日の合計・5時間枠の残りなど)」という人は、ccusage の statusline 機能が便利です。設定はこれだけ。
{
"statusLine": {
"type": "command",
"command": "BUN_BE_BUN=1 claude x ccusage statusline",
"padding": 0
}
}
セッション/今日/ブロックのコストや残り時間、コンテキスト使用率などをまとめて出してくれます。ccusage 自体はコスト可視化の定番ツールなので、コスト管理を重視するならこちらもおすすめです。
まとめ
- ステータスラインに モデル・コンテキスト%・コスト・時間 を出すと、無駄づかいに気づきやすい
- 手軽さ重視なら
/statuslineに丸投げ、仕組み重視なら自作スクリプト、コスト重視なら ccusage - 数字が常に見えていると、「コンテキストが膨らんできた →
/compact」の判断が速くなる
私の場合、この表示のおかげでコンテキスト50%を目安に区切る運用が習慣になり、ムダなコスト増を防げています。
あわせて読みたい:
・Claude Code 1ヶ月のトークンコストを実測|Max 5xは元が取れるのか?(コストの実測と節約。50%ルールの話も)
・Auto-update failed: no write permission to npm prefix の直し方(インストールのトラブル対処)
・Remote Control を使ってみた感想(スマホ・タブから操作)
・使用量上限・料金が変わった(2026年6月15日〜)(Agent SDKの別枠クレジット)
・ccusageでコストを可視化する方法(statusline以外の集計も)


コメント