Claude Codeの画面下には、モデル名やコンテキストの使用率を出せるステータスラインがあります。
設定方法を、公式ドキュメントから整理しました。
- /statusline に、出したい内容を文章で伝えると自動で作ってくれる
- 手動では、settings.json の statusLine にコマンドを書く
- コマンドは、セッションのJSONを標準入力で受け取る
- Windowsでは、パスを / 区切りで書く
ステータスラインの実機での再現は含まず、公式ページの記載(2026年10月23日に再照合)に基づきます。
仕様や数値は変わることがあるので、最新は公式ページで確かめてください。
/statusline で作る
いちばん簡単なのは、/statusline に日本語や英語で頼む方法です。
公式の例は、次のとおりです。
/statusline show model name and context percentage with a progress bar~/.claude/ にスクリプトが作られ、設定も自動で更新されます。
消したいときは、/statusline delete のように頼むか、settings.json の statusLine を消します。
手動で設定する
先にJSONを標準入力から読み、表示文字列を標準出力へ返すstatusline.shを作成します。Bashで直接呼ぶ場合は実行権限も必要です。次の例はユーザー設定(~/.claude/settings.json)またはプロジェクト設定のJSONオブジェクト内へ追加する項目で、これだけではスクリプトは作成されません。既存設定を残し、項目間のカンマも確認してください。
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 2
}| 項目 | 内容 |
|---|---|
| padding | 任意。左右の余白の文字数。既定は0 |
| refreshInterval | 任意。更新の間隔(秒)。最小は1。時計のような表示に使う |
refreshIntervalがないときは、イベントが起きたときだけ更新されます。
連続した更新は通常300ミリ秒待ってまとめられます。ただしcommand自体の変更は即時実行されます。前の処理中に更新が来ると取り消されるため、スクリプトは短時間で終了するようにします。
受け取れる情報
コマンドには、セッションの情報がJSONで標準入力に渡されます。
| 項目 | 内容 |
|---|---|
| model.display_name | 使っているモデルの表示名 |
| context_window.used_percentage | コンテキストの使用率。入力トークンだけで計算し、序盤は空のことがある |
| rate_limits.five_hour.used_percentage | 5時間枠の使用率。claude.aiのPro・Maxのみ |
| rate_limits.seven_day.used_percentage | 7日枠の使用率。claude.aiのPro・Maxのみ |
| session_id | セッションのID |
rate_limitsは最初のAPI応答後に現れ、各期間の項目が独立して欠ける場合があります。リセット時刻を過ぎた期間は削除されるため、欠落を使用率0%と断定しないでください。context_windowは会話の容量で、契約の利用枠とは別です。
出力は複数行にでき、ANSIの色も使えます。
対応するターミナルなら、OSC 8のリンクも出せます。
ステータスラインを設定している間は、フッターの操作ヒントの多くが隠れます。
Windowsでの書き方
Windowsでは、Git Bashがあればそれで、なければPowerShellでコマンドが実行されます。
Git Bashはバックスラッシュを特別な文字として扱うので、commandの中のパスは / で区切ります。
PowerShellを使う公式のcommand例です。usernameを自分のユーザー名に置き換え、先にstatusline.ps1を作成してください。空白を含むパスはシェルの引用符とJSONのエスケープにも注意します。
"command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"たとえばstatusline.ps1には、次のようにJSONを読み取って表示する処理を保存します。
$data = $input | Out-String | ConvertFrom-Json
$model = $data.model.display_name
$used = $data.context_window.used_percentage
$context = if ($null -eq $used) { "pending" } else { "$used%" }
Write-Output "[$model] context: $context"
この最小例はモデル名とコンテキスト使用率を表示し、値がnullまたは未取得のときはpending、数値の0なら0%と表示します。
settings.jsonを保存すると設定が再読込みされ、スクリプトが実行されます。
スクリプトの内容だけを書き換えた場合は、次の応答など更新のきっかけが来たときに反映されます。
公式のシェルの例にはjqを使うものがあります。
jqはステータスライン全体の必須条件ではありません。公式のPowerShell例はConvertFrom-Json、Python例はjsonモジュールを使っています。選んだスクリプトがjqを呼ぶ場合にだけ、その依存関係を用意します。
表示されない場合は、サンプルJSONを標準入力に渡してスクリプト単体の出力と終了コードを確認します。
標準出力が空、または終了コードが0以外の場合はステータスラインが空になるため、エラーを直してからClaude Code側の表示を確かめます。
claude --debugではスクリプトの標準エラーと初回実行の終了コードも確認できます。
よくある質問:Claude Codeのステータスライン
ステータスラインとは、何ですか?
Claude Codeの画面下に出せる表示で、モデル名やコンテキストの使用率などを出せます。
いちばん簡単な設定方法は?
/statusline に、出したい内容を日本語や英語の文章で頼む方法です。
~/.claude/ にスクリプトが作られ、設定も自動で更新されます。
ステータスラインを消すには?
/statusline delete のように頼むか、settings.json の statusLine を消します。
手動で設定するには?
ユーザー設定(~/.claude/settings.json)かプロジェクト設定の statusLine に、コマンドを書きます。
コマンドには、セッションの情報がJSONで標準入力に渡されます。
padding と refreshInterval は、何を決めますか?
padding は任意で、左右の余白の文字数を決めます(既定は0)。
refreshInterval も任意で、更新の間隔を秒で決めます(最小は1)。
時計のような表示に使います。
refreshInterval がないときは、イベントが起きたときだけ更新されます。
どんな情報を表示できますか?
モデルの表示名(model.display_name)、コンテキストの使用率(context_window.used_percentage)、5時間枠・7日枠の使用率(rate_limits、claude.aiのPro・Maxのみ)、セッションのID(session_id)などです。
rate_limitsの各期間は最初のAPI応答後に現れ、欠落やリセット後の削除もあります。値がないときは「未取得」などと表示し、0%と区別してください。コンテキスト使用率は利用枠の使用率とは別です。
全項目は公式のJSON例を参照してください。
Windowsでは、どう書けばよいですか?
Git Bashがあればそれで、なければPowerShellでコマンドが実行されます。
Git Bashはバックスラッシュを特別な文字として扱うので、command の中のパスは / で区切ります。
表示や更新で、気をつける点は?
出力は複数行にでき、ANSIの色も使えます。
対応するターミナルなら、OSC 8のリンクも出せます。
ステータスラインを設定している間は、フッターの操作ヒントの多くが隠れます。
通常は300ミリ秒のデバウンスがあり、command変更は即時実行です。更新が重なると実行中のスクリプトが取り消されます。
jqを使うシェル例にはjqが必要ですが、PowerShellのConvertFrom-JsonやPythonのjsonで処理する実装も選べます。
参照:公式ステータスライン設定ガイド。2026年10月23日は資料照合のみで、生成・表示・Windows各シェル・欠落値・リンク操作の実機確認はしていません。表示されない場合は標準出力、実行権限、ワークスペースの信頼、管理者の設定制限も確認してください。
