- 作業中にコンテキストウィンドウの使用状況を監視したい
- セッションコストを追跡する必要がある
- 複数のセッション間で作業し、それらを区別する必要がある
- git ブランチとステータスを常に表示したい
esc to interrupt、? for shortcuts フォールバック、および hold space to speak 音声入力 ヒントが含まれます。会話内に ID が表示されたときにフッターにクリック可能なリンクバッジを追加する場合は、スクリプトを記述せずに footerLinksRegexes を設定してください。
以下は、最初の行に git 情報を表示し、2 番目の行にカラーコード化されたコンテキストバーを表示する 複数行ステータスライン の例です。

ステータスラインを設定する
/statusline コマンド を使用して Claude Code にスクリプトを生成させるか、手動でスクリプトを作成 して設定に追加します。
/statusline コマンドを使用する
/statusline コマンドは、表示したい内容を説明する自然言語の指示を受け入れます。Claude Code は ~/.claude/ にスクリプトファイルを生成し、設定を自動的に更新します:
ステータスラインを手動で設定する
ユーザー設定(~/.claude/settings.json、~ はホームディレクトリ)または プロジェクト設定 に statusLine フィールドを追加します。type を "command" に設定し、command をスクリプトパスまたはインラインシェルコマンドに指定します。スクリプト作成の完全なチュートリアルについては、ステータスラインをステップバイステップで構築する を参照してください。
command フィールドはシェルで実行されるため、スクリプトファイルの代わりにインラインコマンドを使用することもできます。この例では jq を使用して JSON 入力を解析し、モデル名とコンテキスト割合を表示します:
padding フィールドは、ステータスラインコンテンツに追加の水平スペース(文字単位)を追加します。デフォルトは 0 です。このパディングはインターフェイスの組み込みスペースに加えて追加されるため、ターミナルエッジからの絶対距離ではなく相対的なインデントを制御します。
オプションの refreshInterval フィールドは、イベント駆動更新 に加えて、N 秒ごとにコマンドを再実行します。最小値は 1 です。ステータスラインが時計などの時間ベースのデータを表示する場合、またはメインセッションがアイドル状態の間にバックグラウンドサブエージェントが git 状態を変更する場合に設定します。イベントのみで実行する場合は設定しないままにします。
オプションの hideVimModeIndicator フィールドは、プロンプトの下にある組み込みの -- INSERT -- テキストを非表示にします。スクリプトが vim.mode 自体をレンダリングする場合は、これを true に設定して、モードが 2 回表示されないようにします。
ステータスラインを無効にする
/statusline を実行し、ステータスラインを削除またはクリアするよう指示します(例:/statusline delete、/statusline clear、/statusline remove it)。settings.json から statusLine フィールドを手動で削除することもできます。
ステータスラインをステップバイステップで構築する
このチュートリアルでは、現在のモデル、作業ディレクトリ、コンテキストウィンドウ使用状況の割合を表示するステータスラインを手動で作成することで、/statusline が内部で何をセットアップするかを示します。
/statusline を実行して、表示したい内容を説明すると、これらすべてが自動的に設定されます。
1
JSON を読み取り、出力を出力するスクリプトを作成する
Claude Code は stdin 経由でスクリプトに JSON データを送信します。このスクリプトは
jq(コマンドラインの JSON パーサーで、インストールが必要な場合があります)を使用して、モデル名、ディレクトリ、コンテキスト割合を抽出し、フォーマットされた行を出力します。これを ~/.claude/statusline.sh に保存します(~ はホームディレクトリ、macOS では /Users/username、Linux では /home/username など):2
実行可能にする
スクリプトを実行可能にマークして、シェルが実行できるようにします:
3
設定に追加する
Claude Code にスクリプトをステータスラインとして実行するよう指示します。この設定を ステータスラインはインターフェイスの下部に表示されます。Claude Code は設定を自動的に再読み込みし、ファイルを保存するとすぐにスクリプトを実行します。
~/.claude/settings.json に追加します。これは type を "command"(「このシェルコマンドを実行する」という意味)に設定し、command をスクリプトに指定します:ステータスラインの仕組み
Claude Code はスクリプトを実行し、stdin 経由で JSON セッションデータ を渡します。スクリプトが stdout に出力したものを Claude Code が表示します。ステータスラインはローカルで実行され、API トークンを消費しません。ヘルプメニューと権限プロンプトを含む特定の UI 相互作用中は一時的に非表示になります。
ステータスラインが更新されるタイミング
スクリプトはセッション開始時(再開時を含む)に 1 回実行されます。その後、以下の場合に再度実行されます:- 新しいアシスタントメッセージが到着したとき
/compactが完了したとき- 権限モードが変更されたとき
- Vim モードが切り替わったとき
statusLine設定でcommandを変更したときrefreshIntervalタイマーが経過したとき(設定した場合)- スクリプトが最後に受け取ったデータ内の レート制限ウィンドウ が
resets_at時刻に到達したとき - スクリプトが最後に受け取ったデータ内のウォーム プロンプトキャッシュ が
expires_at時刻に到達したとき
command 自体への変更はデバウンスをスキップします。Claude Code は新しいコマンドをすぐに実行します。スクリプトがまだ実行中に新しい更新がトリガーされた場合、Claude Code は実行中のスクリプトをキャンセルします。スクリプトを編集した場合、変更は更新トリガーが次に実行されるときに表示されます。
イベント駆動型トリガーは、メインセッションがアイドル状態の場合(例えば、コーディネーターがバックグラウンドサブエージェントを待機している場合)、静かになる可能性があります。アイドル期間中に時間ベースまたは外部ソースのセグメントを最新に保つには、refreshInterval を設定して、固定タイマーでもコマンドを再実行します。
スクリプトが出力できるもの
スクリプトは、1 行のプレーンテキスト以上のものを出力できます:- 複数行:各
echoまたはprintステートメントは別の行として表示されます。複数行の例 を参照してください。 - 色:
\033[32mのような ANSI エスケープコード を使用して緑色を表示します(ターミナルがサポートしている必要があります)。git ステータスの例 を参照してください。 - リンク:OSC 8 エスケープシーケンス を使用してテキストをクリック可能にします(macOS では Cmd+クリック、Windows/Linux では Ctrl+クリック)。iTerm2、Kitty、WezTerm などのハイパーリンクをサポートするターミナルが必要です。クリック可能なリンクの例 を参照してください。
ターミナルに出力をサイズ調整する
Claude Code はスクリプトの出力をキャプチャするため、ターミナルに直接接続しません。そのため、tput cols と言語レベルの幅検出はスクリプト内からターミナルサイズを読み取ることができません。代わりに COLUMNS および LINES 環境変数を読み取ってください。Claude Code はスクリプトを実行する前に、これらを現在のターミナルサイズに設定します。
利用可能なデータ
Claude Code は以下の JSON フィールドを stdin 経由でスクリプトに送信します:完全な JSON スキーマ
完全な JSON スキーマ
ステータスラインコマンドは stdin 経由でこの JSON 構造を受け取ります:不在の可能性があるフィールド(JSON に存在しない):
session_name:--nameまたは/renameでカスタム名が設定されている場合、または AI が生成したセッションタイトルが存在する場合に表示されます。my-app-3fなどのデフォルト表示名はこのフィールドに入力されませんprompt_id:最初のユーザー入力の後のみ表示workspace.git_worktree:現在のディレクトリがリンク git worktree 内にある場合のみ表示workspace.repo:git リポジトリ内でoriginリモートが設定されている場合のみ表示effort:現在のモデルが推論努力パラメータをサポートしている場合のみ表示vim:vim モードが有効な場合のみ表示agent:--agentフラグまたはエージェント設定が設定されている場合のみ表示pr:現在のブランチのオープン PR または GitLab マージリクエストが見つかった場合のみ表示。PR またはマージリクエストがマージまたはクローズされると削除されます。pr.review_stateとpr.kindは独立して不在の可能性がありますworktree:worktree セッション 中のみ表示。存在する場合、branchとoriginal_branchもフックベースの worktree では不在の可能性がありますrate_limits:Claude.ai Pro および Max サブスクライバー、または支出制限を設定する Claude apps gateway の背後にある場合のみ表示。セッションの最初の API レスポンスの後のみ表示。各ウィンドウ(five_hour、seven_day、spend_limit)は独立して不在の可能性があり、Claude Code はresets_at時刻が経過するとウィンドウを削除します。jq -r '.rate_limits.five_hour.used_percentage // empty'を使用して、不在を適切に処理します。prompt_cache:メイン会話の最初の API レスポンスの後に表示。prompt cache フィールド を参照してください
null の可能性があるフィールド:context_window.current_usage:セッションの最初の API 呼び出しの前はnull。また/compactの直後は次の API 呼び出しが再度入力されるまでnullcontext_window.used_percentage、context_window.remaining_percentage:セッションの早期段階ではnullの可能性があります
コンテキストウィンドウフィールド
context_window オブジェクトは、最新の API レスポンスからのライブコンテキストウィンドウを説明します。
- 結合合計(
total_input_tokens、total_output_tokens):コンテキストウィンドウに現在あるトークン。total_input_tokensはinput_tokens、cache_creation_input_tokens、およびcache_read_input_tokensの合計です。total_output_tokensは最新レスポンスからの出力トークンです。両方とも最初の API レスポンスの前は0です。 - コンポーネント別使用状況(
current_usage):カテゴリ別に分類された同じトークン数。キャッシュヒットを新規入力から分離する必要がある場合に使用します。
current_usage オブジェクトには以下が含まれます:
input_tokens:現在のコンテキストの入力トークンoutput_tokens:生成された出力トークンcache_creation_input_tokens:キャッシュに書き込まれたトークンcache_read_input_tokens:キャッシュから読み取られたトークン
used_percentage フィールドは入力トークンのみから計算されます:input_tokens + cache_creation_input_tokens + cache_read_input_tokens。output_tokens は含まれません。
current_usage から手動でコンテキスト割合を計算する場合、used_percentage と一致させるために同じ入力のみの式を使用します。
current_usage オブジェクトはセッションの最初の API 呼び出しの前は null です。また /compact の直後は null であり、次の API 呼び出しが再度入力されるまで null のままです。
支出制限フィールド
支出制限が設定された Claude apps gateway の背後では、rate_limits.spend_limit オブジェクトが適用される支出制限を説明します。このオブジェクトはセッションの最初の API レスポンスの後に表示され、Claude Code v2.1.251 以降が必要です。スクリプトはそのフィールドを別々のタイミングで受け取ります:
used_percentageとresets_at:すべてのレスポンスに含まれるため、spend_limitが存在する場合は常に存在します。used_percentageは 0~100 の範囲、または制限を超えると 100 を超える値になり、resets_atは制限の期間がリセットされる Unix エポック秒です。used_usd、limit_usd、period:これまでの推定支出額と制限額(米ドル)、および制限の対象期間(daily、weekly、monthlyのいずれか)。ゲートウェイはused_usdをトークン数から計算する ため、これは推定値であり、請求額ではありません。Claude Code は、リクエストを送信している間、約 5 分ごとに別のリクエストでゲートウェイからこれらを読み取ります。金額はused_percentageより約 5 分古い場合があるため、両者が一時的に一致しないことがあります。Claude Code とゲートウェイの両方で v2.1.284 以降が必要です。
spend_limit が存在する場合でも、used_usd、limit_usd、period はオプションとして扱ってください。スクリプトはこれらより先に割合を受け取ります。また、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を設定するとそのリクエストがオフになるため、これらは不在のままになります。スクリプトでは、jq -r '.rate_limits.spend_limit.used_usd // empty' のように、それぞれをフォールバック付きで読み取ってください。
Prompt cache フィールド
prompt_cache オブジェクトは、セッションのメイン会話が prompt cache をどのように使用しているかを要約します。Claude Code は API のレスポンスのキャッシュトークン数から計算するため、すべてのプロバイダーで機能します。
オブジェクトはメイン会話の最初の API レスポンスの後に表示されます。Claude Code はこれらの統計情報でサブエージェントリクエストをカウントしません。Claude Code v2.1.251 以降が必要です。
テーブルは各フィールドとその意味を示しています。タイムスタンプは Unix エポック秒で、rate_limits.*.resets_at と同じ単位です。短いステータスラインは通常、これらの 1 つまたは 2 つを表示します。warm と hit_ratio はキャッシュ状態を最も直接的に要約します。
Claude Code はターミナルで同じ統計情報を表示します。
/usage コマンドの Prompt cache (main) 行 を参照してください。
最後のミスの原因
last_miss_cause オブジェクトは、Claude Code が最新のミスの可能な原因として特定したものを報告します。その causes 配列は tools_changed、system_prompt_changed、ttl_expired_5m、または likely_server_side などの 1 つ以上の原因名を保持します。オブジェクトはセッションの最初のミスまで null であり、Claude Code が最新のミスの原因を特定できなかった場合は再び null になります。Claude Code v2.1.260 以降が必要です。
2 つの原因はオブジェクトにカウントを追加します:
tools_addedとtools_removed:tools_changedを使用して、リクエストに追加または削除されたツールの数system_char_delta:system_prompt_changedを使用して、システムプロンプトの長さの変化(文字数)
例
これらの例は一般的なステータスラインパターンを示しています。任意の例を使用するには:- スクリプトを
~/.claude/statusline.sh(または.py/.js)などのファイルに保存します - 実行可能にします:
chmod +x ~/.claude/statusline.sh - 設定 にパスを追加します
jq を使用して JSON を解析します。Python と Node.js には組み込みの JSON 解析があります。
コンテキストウィンドウの使用状況
現在のモデルとコンテキストウィンドウの使用状況を視覚的なプログレスバーで表示します。各スクリプトは stdin から JSON を読み取り、used_percentage フィールドを抽出し、塗りつぶされたブロック(▓)が使用状況を表す 10 文字のバーを構築します:

git ステータスと色
ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを使用して git ブランチを表示します。このスクリプトはターミナルの色に ANSI エスケープコード を使用します:\033[32m は緑、\033[33m は黄、\033[0m はデフォルトにリセットします。

コストと期間の追跡
セッションの API コストと経過時間を追跡します。cost.total_cost_usd フィールドは現在のセッションのすべての API 呼び出しの推定コストを累積します。cost.total_duration_ms フィールドはセッション開始からの総経過時間を測定し、cost.total_api_duration_ms は API レスポンスを待つのに費やされた時間のみを追跡します。
各スクリプトはコストを通貨としてフォーマットし、ミリ秒を分と秒に変換します:

複数行を表示する
スクリプトは複数の行を出力して、より豊かなディスプレイを作成できます。
print または echo ステートメントは別の行を作成します:
クリック可能なリンク
この例は GitHub リポジトリへのクリック可能なリンクを作成します。Cmd(macOS)または Ctrl(Windows/Linux)を押しながらクリックして、ブラウザでリンクを開きます。
printf '%b' を使用します。これはバックスラッシュエスケープを異なるシェル間でより確実に解釈します:
レート制限の使用状況
claude.ai サブスクリプションのレート制限使用状況、または Claude アプリゲートウェイの支出制限に対する支出額をステータスラインに表示します。サブスクライバーの場合、rate_limits オブジェクトには、ローリング five_hour ウィンドウと週間 seven_day ウィンドウが含まれます。各ウィンドウは used_percentage(0~100)とウィンドウがリセットされる Unix エポック秒の resets_at を提供します。ゲートウェイの背後では、支出制限フィールド で説明されている spend_limit オブジェクトを読み取ります。
rate_limits オブジェクトは claude.ai Pro および Max サブスクライバー、または支出制限を持つ Claude アプリゲートウェイの背後にある場合のみ存在し、最初の API レスポンスの後のみです。各スクリプトは不在のフィールドを適切に処理し、ゲートウェイの背後では spend: $314.12 / $500 を出力します。ドル額のフィールドが不在の間は spend: 63% を出力します:
高コストな操作をキャッシュする
ステータスラインスクリプトはアクティブなセッション中に頻繁に実行されます。git status や git diff などのコマンドは、特に大規模なリポジトリでは遅い場合があります。この例は git 情報を一時ファイルにキャッシュし、5 秒ごとにのみ更新します。
キャッシュファイル名は、セッション内のステータスラインの呼び出し間で安定している必要がありますが、異なるリポジトリの同時セッションが互いのキャッシュされた git 状態を読み取らないように、セッション間で一意である必要があります。$$、os.getpid()、process.pid のようなプロセスベースの識別子は、呼び出しのたびに変わり、キャッシュを無効にします。代わりに JSON 入力から session_id を使用します:これはセッションの有効期間中は安定しており、セッションごとに一意です。
各スクリプトは git コマンドを実行する前に、キャッシュファイルが不在であるか 5 秒より古いかを確認します:
Windows 設定
Windows では、Claude Code はステータスラインコマンドを Git Bash 経由で実行します。Git Bash がインストールされている場合、または Git Bash がない場合は PowerShell を通じて実行します。 Git Bash は引用符なしのバックスラッシュをエスケープ文字として扱うため、C:\Users\username\script.mjs のような Windows スタイルのパスはセパレーターが削除された状態でスクリプトランナーに到達し、目に見えるエラーなしでコマンドが失敗します。command 文字列のファイルパスを以下の例に示すようにフォワードスラッシュで記述します。~ 短縮形も機能し、Windows ホームディレクトリに展開されます。
PowerShell スクリプトをステータスラインとして実行するには、powershell 経由で呼び出します。これは Claude Code がコマンドを Git Bash または PowerShell を通じてルーティングするかどうかに関わらず機能します:
サブエージェントステータスライン
subagentStatusLine 設定は、エージェントパネルに表示される各 サブエージェント のカスタム行本体をレンダリングします。デフォルトの name · description · token count 行を独自のフォーマットに置き換えるために使用します。
columns フィールド、および行ごとに 1 つのエントリを持つ tasks 配列が含まれます。tasks 配列については タスクフィールド で説明します。
オーバーライドしたい各行に対して stdout に 1 つの JSON 行を書き込みます。形式は {"id": "<task id>", "content": "<row body>"} です。content 文字列はそのままレンダリングされます。ANSI 色と OSC 8 ハイパーリンクを含みます。タスクの id を省略して、その行のデフォルトレンダリングを保持します。空の content 文字列を出力して、その行を非表示にします。
statusLine に適用される同じトラストと disableAllHooks および allowManagedHooksOnly ゲートが subagentStatusLine に適用されます。プラグインは、settings.json でデフォルトの subagentStatusLine を配布できます。ただし、フックとは異なり、プラグインが管理設定の enabledPlugins で強制的に有効化されている場合でも、プラグイン値は allowManagedHooksOnly の下で実行されません。
タスクフィールド
tasks 配列の各エントリは、以下のフィールドで 1 つのサブエージェント行を記述します。省略可能と記載されたフィールドは値がない場合に省略されるため、スクリプトではそれらが存在しない場合に備えてください。
ヒント
- モック入力でテストする:
echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh - 出力を短く保つ:ステータスバーの幅は限られているため、長い出力は切り詰められたり、不適切にラップされたりする可能性があります
- 遅い操作をキャッシュする:スクリプトはアクティブなセッション中に頻繁に実行されるため、
git statusなどのコマンドは遅延を引き起こす可能性があります。これを処理する方法については、キャッシング例 を参照してください。
トラブルシューティング
ステータスラインが空白の場合は、まずステータスラインが表示されないを確認してください。信頼していないフォルダや失敗するスクリプトによっても空白になります。これについてはワークスペーストラストが必要とスクリプトエラーまたはハングで説明しています。ステータスラインが表示されない
ステータスラインを設定したのにインターフェースの下部に何も表示されない場合は、次の項目を確認してください:- スクリプトが実行可能であることを確認します:
chmod +x ~/.claude/statusline.sh - スクリプトが stdout に出力し、stderr に出力していないことを確認します
- スクリプトを手動で実行して、出力を生成することを確認します
- Windows で Git Bash がインストールされている場合、
commandパスのバックスラッシュはスクリプトが実行される前にエスケープ文字として消費される可能性があります。パスでは前方スラッシュを使用してください。Windows 設定を参照してください。 - 設定の優先順位が適用された後、
disableAllHooksが管理設定外でtrueの場合、Claude Code は管理設定からのstatusLineのみを実行し、管理statusLineがない場合はステータスラインが無効になります。この設定を削除するか、それを設定するファイルでfalseに設定して、再度有効にします。disableAllHooksを参照してください。 - 組織が管理設定で
allowManagedHooksOnlyを設定している場合、カスタムステータスラインは警告なく消えます:これらの管理設定のstatusLine値からのみステータスラインを取得できます。allowManagedHooksOnlyで実行される内容を参照して完全な動作を確認し、この設定が自分に適用されるかどうかを管理者に確認してください。 claude --debugを実行すると、ステータスラインの呼び出しごとにスクリプトの stderr が、セッション内の最初の呼び出しではその終了コードがログに記録されます- Claude に設定ファイルを読み取り、
statusLineコマンドを直接実行するよう依頼して、エラーを表示します
ステータスラインが -- または空の値を表示する
フィールドは最初の API レスポンスが完了する前は null の可能性があるため、jq の // 0 のようなフォールバックを使用してスクリプトで null 値を処理してください。複数のメッセージの後も値が空のままの場合は、Claude Code を再起動します。
コンテキスト割合が予期しない値を表示する
ステータスラインは最後の API レスポンスからのカウントを報告し、/context はそのレスポンス以降に追加されたメッセージの推定値を加算するため、次のレスポンスまで /context の値の方が高くなることがあります。最も単純で正確なコンテキスト状態には used_percentage を使用します。used_percentage の計算式については、コンテキストウィンドウフィールドを参照してください。
OSC 8 リンクがクリック可能でない
リンクがクリック可能かどうかは、ターミナル、Claude Code がそのターミナルでハイパーリンクサポートを検出するかどうか、SSH や tmux がエスケープシーケンスを取り除くかどうか、そしてスクリプトがそれをどのように出力するかによって決まります:- ターミナルが OSC 8 ハイパーリンクをサポートしていることを確認します(iTerm2、Kitty、WezTerm)
- Terminal.app はクリック可能なリンクをサポートしていません
-
リンクテキストが表示されているがクリック可能でない場合、Claude Code がターミナルのハイパーリンクサポートを検出できていない可能性があります。Claude Code を起動する前に
FORCE_HYPERLINK環境変数を設定して、検出を上書きします:PowerShell では、最初に現在のセッションで変数を設定します: - SSH と tmux セッションは設定に応じて OSC シーケンスをストリップする可能性があります
-
エスケープシーケンスが
\e]8;;のようなリテラルテキストとして表示される場合は、echo -eの代わりにprintf '%b'を使用して、より確実なエスケープ処理を行います
エスケープシーケンスでの表示の不具合
複雑なエスケープシーケンス(ANSI 色、OSC 8 リンク)は、他の UI 更新と重複する場合、時々破損した出力を引き起こす可能性があります。エスケープコード付きの複数行ステータスラインは、プレーンテキストの単一行よりもレンダリングの問題が発生しやすくなります。 破損したテキストが表示される場合は、スクリプトをプレーンテキスト出力に簡略化してみてください。ワークスペーストラストが必要
ワークスペーストラストダイアログを受け入れるまで、ステータスラインは空白のままです。statusLine はシェルコマンドを実行するため、Claude Code は設定ファイルのフックと同じワークスペーストラストルールの下で実行します。フォルダのダイアログを受け入れるか、その信頼がそれに拡張される親ディレクトリのダイアログを受け入れるだけで十分です。
それまでの間、claude --debug は Status line command skipped: workspace trust not accepted をログに記録します。Claude Code を再起動し、トラストダイアログを受け入れて有効にします。
スクリプトエラーまたはハング
Claude Code は、スクリプトが終了コード 0 で終了した後にのみ、その出力を表示します:- ゼロ以外のコードで終了するか、出力を生成しないスクリプトは、ステータスラインを空白にします
- 遅いスクリプトは、完了するまでステータスラインの更新をブロックします。古い出力を避けるために、スクリプトを高速に保ちます。
- 遅いスクリプトの実行中に新しい更新がトリガーされた場合、実行中のスクリプトはキャンセルされます
- 設定する前に、モック入力を使用してスクリプトを独立してテストします
通知がステータスラインの行を共有する
フルスクリーンレンダリングの外では、Claude Code は通知をステータスラインと同じ行に表示します。フルスクリーンレンダリングでは、Claude Code は通知に独自の行を提供します。- MCP サーバーエラーおよび自動更新などのシステム通知は、行の右側に表示されます。コンテキスト低警告などの一時的な通知もこの領域を循環します。
- 詳細モードを有効にすると、この領域にトークンカウンターが追加されます。これは最後の API レスポンスが報告したコンテキストのサイズを示すもので、スピナーの横に表示されるターンごとのカウントではありません
- 狭いターミナルでは、これらの通知がステータスラインの出力を切り詰める可能性があります