この記事の結論
Claude Codeの使用量は、本体がステータスラインに渡すrate_limitsを表示すれば常時見えます。設定と約40行のスクリプトの手順、出ないときの原因、自前計算116%と公式47%がずれた実測つき。
目次6項目
【実践講座】Claude Code 2daysセミナー(第二の脳構築講座)の詳細を見る →
Claude Codeの使用量は、本体がステータスラインのスクリプトに渡す rate_limits を表示するだけで常時見えます。/statusline に頼むか、設定の statusLine に約40行のスクリプトを登録します。5時間枠と週の枠の%が出るのは、ProかMaxの契約で、最初の応答が返った後です。
ステータスラインに使用量が出る仕組みと、5時間枠・週の枠が出ないときの原因
使用量の%は、自分で計算するものではありません。Claude Code本体が、ステータスラインのスクリプトに計算済みの値を渡してきます。スクリプトはそれを受け取って、1行に並べるだけです。
ステータスラインとは、Claude Codeの画面の下に出る1行で、自分で登録したスクリプトの出力がそのまま表示される帯のことです。本体はスクリプトを動かすたびに、セッションの情報をJSONで標準入力に渡します。rate_limits とは、そのJSONの中で、プランの使用量上限をどこまで使ったかを表す項目のことです。
2026年10月時点の公式ドキュメントで、使用量の表示に使う項目は次のとおりです。
| 項目 | 中身 |
|---|---|
rate_limits.five_hour.used_percentage | 5時間枠を使った割合(0〜100) |
rate_limits.five_hour.resets_at | 5時間枠が戻る時刻(Unix秒) |
rate_limits.seven_day.used_percentage | 週の枠を使った割合(0〜100) |
rate_limits.seven_day.resets_at | 週の枠が戻る時刻(Unix秒) |
context_window.used_percentage | いまの会話がコンテキストを使っている割合 |
model.display_name | いまのモデルの表示名 |
コンテキスト使用率とは、Claudeが1回の応答で読める量の上限に対して、いまの会話がどこまで埋まっているかの割合のことです。使用量の枠とは別の数字ですが、長い会話ほど枠の減りも速いので、並べて出しておくと役に立ちます。5時間枠と週の枠そのものの仕組みは、Claude Codeの料金と使用量上限の実測にまとめました。
設定したのに使用量が出ないときの原因は、公式ドキュメントの記載から次のように整理できます。
| 症状 | 原因 | 確かめること |
|---|---|---|
| モデル名は出るが、使用量だけ出ない | rate_limits は、そのセッションで最初の応答が返るまで入らない | 1回やり取りしてから見る |
| 同上 | rate_limits が入るのは、claude.aiのProとMaxの契約者(と、支出上限のあるClaude apps gatewayの配下) | 契約とログイン方法 |
| 5時間枠か週の枠の片方だけ消えた | 枠ごとに無いことがあり、戻る時刻を過ぎた枠は本体が外す | 次の応答の後に見る |
| ステータスラインごと出ない | そのフォルダを信頼する確認にまだ答えていない | claude --debug のログ |
| 同上 | スクリプトが実行できない・エラーで終わる・何も出力しない | 手で動かして確かめる |
| 同上 | 設定の disableAllHooks が true、または組織の allowManagedHooksOnly | 設定ファイルと管理者 |
フォルダの信頼がまだのときは、claude --debug のログに Status line command skipped: workspace trust not accepted と出ます。Claude Codeを開き直して、信頼の確認に答えると表示されます。
使用量をステータスラインに常時表示する手順(/statusline・statusLine・rate_limits)
方法は2つあります。Claude Codeに作らせる方法と、自分でスクリプトを書いて登録する方法です。早いのは前者、中身を自分で把握できるのは後者です。
手順1 /statusline に頼んで作らせる
Claude Codeの中で /statusline に続けて、出したい内容を文章で書きます。たとえば「5時間枠と週の枠の使用率と、コンテキストの使用率を出して」と頼みます。公式ドキュメントによると、Claude Codeが ~/.claude/ にスクリプトを作り、設定も自動で書き換えます。途中でファイルの編集の許可を求められたら、承認します。
消したいときも同じコマンドで、/statusline delete のように頼みます。
手順2 自分でスクリプトを書く
自分で書く場合の例です。公式の項目名だけを使い、5時間枠・週の枠・コンテキストの%を、しきい値で色を変えて出します。~/.claude/statusline-usage.py という名前で保存します。
#!/usr/bin/env python3
import json
import sys
from datetime import datetime
RESET = "\033[0m"
def color(pct):
if pct >= 85:
return "\033[1;31m" # 赤・太字
if pct >= 70:
return "\033[38;5;208m" # 橙
if pct >= 50:
return "\033[33m" # 黄
return "\033[32m" # 緑
def segment(label, pct, resets_at=None):
if pct is None: # 値がまだ無いときは出さない
return None
p = int(pct) # 切り捨て(実際より多く見せない)
text = f"{label} {color(p)}{p}%{RESET}"
if resets_at: # resets_at は Unix 秒
t = datetime.fromtimestamp(resets_at)
today = t.date() == datetime.now().date()
text += "→" + t.strftime("%H:%M" if today else "%m/%d %H:%M")
return text
try:
data = json.load(sys.stdin)
except ValueError:
data = {}
limits = data.get("rate_limits") or {}
five = limits.get("five_hour") or {}
week = limits.get("seven_day") or {}
ctx = data.get("context_window") or {}
parts = [
(data.get("model") or {}).get("display_name") or "Claude",
segment("5h", five.get("used_percentage"), five.get("resets_at")),
segment("週", week.get("used_percentage"), week.get("resets_at")),
segment("ctx", ctx.get("used_percentage")),
]
print(" │ ".join(p for p in parts if p) + ("" if limits else " │ 使用量 --"))
大事なのは、値が無い場合の扱いです。rate_limits は無いことがあり、コンテキストの%もセッションの最初は null のことがあります。公式ドキュメントも、無い項目と null に備えて書くよう勧めています。上の例は、無い項目は出さず、使用量がまるごと無いときだけ「使用量 --」と出します。
手順3 実行できるようにして、設定に登録する
ターミナルで chmod +x ~/.claude/statusline-usage.py を実行し、スクリプトを実行できるようにします。次に ~/.claude/settings.json に statusLine を足します。
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline-usage.py",
"refreshInterval": 30
}
}
type は "command"、command はスクリプトの場所か、その場で書いたシェルのコマンドです。refreshInterval は任意で、指定した秒数ごとにスクリプトを動かし直します(最小は1)。ほかに、左右の余白を足す padding(既定は0)があります。公式ドキュメントによると、設定は保存した時点で自動で読み直されます。
Windowsでは、command の中のパスを / で区切ります。Git Bashが入っていると、\ が消えてスクリプトが動かず、エラーも見えないと公式ドキュメントにあります。
手順4 見本のJSONを渡して、手元で確かめる
登録の前後に、スクリプトだけを動かして確かめられます。次の1行をターミナルで実行します。
echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":31},"rate_limits":{"five_hour":{"used_percentage":70.9,"resets_at":1791700000},"seven_day":{"used_percentage":14.2,"resets_at":1792000000}}}' | ~/.claude/statusline-usage.py
僕の環境でこのスクリプトに見本のJSONを渡したところ、Opus │ 5h 70%→(時刻) │ 週 14%→(日時) │ ctx 31% の形で1行が出ました。rate_limits を抜いたJSONと、空のJSONでは「使用量 --」になり、エラーでは終わりませんでした。ここまでが、当社で試した範囲です。
手順5 Claude Codeの画面で確かめる
Claude Codeを開き、1回やり取りします。最初の応答が返ると、5時間枠と週の枠の%が入ります。公式ドキュメントによると、スクリプトはセッションの開始時、新しい応答が届いたとき、/compact が終わったときなどに動き、枠の戻る時刻が来たときにも動き直します。
裏方で実際に起きた例:使用量の常時表示と、自前で計算した116%と公式47%のずれ
僕の会社は、2026年8月10日にこの表示を作りました。設定の画面を開かずに、5時間枠と週の枠を把握するためです。社内の記録からの転記です。
表示のうち、本体が渡す値だけで出している部分は、次の形でした。
Opus 5·xhigh │ 5h 70%→15:49 週 14% │ ctx 31%
左から、モデルと思考の深さ、5時間枠の%と戻る時刻、週の枠の%、コンテキストの%です。5時間枠と週の枠は、本体がスクリプトに渡す rate_limits をそのまま出しているだけで、追加の認証はしていません。色は、49%までが緑、50〜69%が黄、70〜84%が橙、85%以上が赤の太字です。%は切り捨てにして、実際より多く見せないようにしました。refreshInterval は30秒です。使用量の値が渡されていないときは、「使用量 取得不可」と出すようにしています。
当時のClaude Code(v2.1.177)が渡してきたのは、five_hour と seven_day の2つだけでした。モデル別の枠の%は、当社が確かめた範囲では、ステータスラインに渡る値に入っていませんでした。2026年10月時点の公式の項目一覧にも、モデル別の項目はありません。
もう1つ、同じ時期の失敗を書いておきます。2026年9月に、使用量がしきい値を超えたら重い作業を止める仕組みを自作しました。この仕組みは、公式の値を取れないとき、手元の会話ログから出したAPI換算の金額を、自分で決めた週の予算2,200ドルで割って%を出していました。
ところが同じ時点で、この計算は116%、公式の表示は全モデルで47%でした。2,200ドルという予算は、実際の枠の約4割でしかなかったのです。枠を半分以上残したまま、重い作業を止めていたことになります。この段階ガードは9月19日に止めました。
ステータスラインの rate_limits は、この種のずれが起きません。本体が持っている公式の値を、そのまま表示しているからです。
使用量の%を自前で計算しないための再発防止
この経験から、僕は次の4つをルールにしています。
- %は計算しない。渡された値をそのまま出す。 会話ログのトークン数から枠の%を逆算する方法は、枠の大きさを自分で仮定することになり、そこがずれます。
- 値が無いときは、無いと分かる表示にする。 0%と出すと、まだ余裕があると読み違えます。
- しきい値で色を変える。 数字を読まなくても、黄・橙・赤で気づけます。当社は50・70・85%で区切っています。
- 残量で判断が要るときは、公式の画面でもう一度確かめる。 Claude Codeの中なら
/usageで、プランの使用量のバーが見られます。
/usage の画面には、最近の使用量が、スキル・サブエージェント・プラグイン・MCPサーバーのどれに使われたかの内訳も出ます。ステータスラインで減り方に気づき、/usage で理由を見る、という使い分けです。使用量を見て作業を止める・引き継ぐところまで自動にしたい場合は、Claude Codeのフックの使い方に実録を書いています。
業務で使うときの注意(契約・デスクトップアプリ・金額の表示・チーム)
契約によっては出ません。 公式ドキュメントは、rate_limits が入る条件を、claude.aiのProとMaxの契約者か、支出上限を設定したClaude apps gatewayの配下としています。ゲートウェイの配下では、rate_limits.spend_limit に支出上限の使用率が入ります。
デスクトップアプリでは、別の場所で見ます。 公式のデスクトップアプリのページには、モデルの選択欄の横にある使用量のリングを押すと、コンテキストの使用量とプランの使用量が見られると書かれています。同じページに、ステータスラインについての記載はありません。僕の環境で2026年9月29日に確かめた範囲では、デスクトップアプリでは、ステータスラインから値を書き出す方法が使えませんでした。常時表示は、ターミナルで使うClaude Codeの機能として考えるのが安全です。
金額の表示は、請求額ではありません。 スクリプトには cost.total_cost_usd という項目も渡されますが、公式ドキュメントによると、手元で定価から計算した見積もりです。ProやMaxの契約では、使った分はプランに含まれるので、この金額は請求とは関係がありません。枠の残りを知りたいなら、見るのは%のほうです。
ほかの表示が一部消えます。 自分のステータスラインを設定すると、画面下のキー操作のヒントの多くが出なくなります。また、ステータスラインはシェルのコマンドを実行する仕組みなので、フックと同じく、信頼したフォルダでだけ動きます。
チームで配るとき。 statusLine はプロジェクトの設定にも書けますが、スクリプトの場所は人によって違います。当社は、各自の ~/.claude/settings.json に書く形にしています。画面を共有する場面では、フォルダ名やブランチ名を出していると、案件名が映り込む点にも気をつけます。
そのほかの困りごとは、Claude Codeのエラー・困りごと一覧から引けます。
使用量の見える化から、枠を食う原因の整理、社内ルールづくりまでを自社で回せるようにしたい方には、下のセミナーで具体的な作り方をお伝えしています。
よくある質問
ステータスラインを出すと、使用量やトークンは減りますか?
減りません。公式ドキュメントに、ステータスラインは手元のパソコンの中で動き、APIのトークンを使わないと書かれています。スクリプトが受け取るのは、Claude Code本体がすでに持っている情報です。ただし、遅いスクリプトは表示の更新を待たせるので、処理は軽くしておきます。
モデル別の上限の%も、ステータスラインに出せますか?
2026年10月時点の公式の項目一覧にあるのは、5時間枠、週の枠、ゲートウェイ配下の支出上限の3つで、モデル別の項目はありません。僕の会社が2026年8月に確かめた版でも、渡されたのは5時間枠と週の枠だけでした。モデル別は公式の使用量の画面で確かめます。
TeamやEnterpriseの契約でも、使用量の%は表示されますか?
公式ドキュメントは、使用量の項目が入る条件を、claude.aiのProとMaxの契約者か、支出上限を設定したClaude apps gatewayの配下と書いています。それ以外の契約では項目が入らない前提でスクリプトを書き、残量は /usage のプラン使用量のバーで確かめます。