Claude Codeのステータスラインにコスト・コンテキスト使用率を表示する設定【コピペ可】

Claude Code

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

私は普段、こんな表示を出しています(コスト額はぼかしています)。

Claude Codeのステータスライン例。モデル名・コンテキスト使用率バー・コスト・経過時間を表示
私のステータスライン。モデル名/コンテキスト使用率(バー+%)/コスト/経過時間を1行で表示

モデル名・コンテキスト使用率(バー付き)・コスト・経過時間が一目で分かります。実はこの表示が、別記事で紹介した「コンテキスト50%で /compact する」運用を支えています。

この記事では、これをコピペで再現する方法を、公式仕様に沿って解説します。


まずは結論:3つのやり方がある

  1. /statusline コマンドに丸投げ(いちばん簡単。AIが設定してくれる)
  2. 自分で設定(settings.json + スクリプト。中身が分かる)
  3. 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_percentagecost.* は、セッション開始直後や /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以外の集計も)


コメント

タイトルとURLをコピーしました