結論:3項目から始め、停止判断だけを足す
Claude Codeのstatus lineは、まずmodel、作業directory、context_window.remaining_percentageの3項目を一行へ表示します。次に業務上の停止判断へ必要な場合だけ、session cost、5時間・7日rate limit、Git branchを足します。全fieldを並べず、absentやnullを正常値として扱い、遅いGit commandはsession単位でcacheします。
読者の困りごとは、context不足や利用上限を作業完了直前に知る一方、便利な情報を詰め込んだscriptが頻繁に実行されてterminalを遅くし、workspace trustやmanaged policyで突然消えることです。この記事を読むと、表示項目、更新負荷、停止基準を決められます。
次の行動:model・directory・remaining percentageだけのmock input testを作り、実sessionへ入れる前に一行出力を確認してください。
公式仕様:JSON入力・更新頻度・trustを知る
公式status line文書では、statusLineをcommand typeとしてsettingsへ設定し、Claude CodeがJSONをstdinへ渡します。scriptがstdoutへ出したtextがUI下部へ表示されます。JSONにはmodel、workspace、cwd、session_id、cost、context window、fast mode、effort、thinking、rate limitsなどが含まれます。ただしfieldはversion、provider、最初のresponse前後で欠けたりnullになったりします。
contextにはsize、used percentage、remaining percentage、current usageがあります。単純な停止判断にはpre-calculated percentageを使い、token内訳は原因分析が必要な時だけ表示します。rate limitsの5時間と7日windowはClaude.ai subscription利用者で最初のAPI response後に現れ、used percentageとreset epochを持ちます。fieldがない時に0%と断定せず、「未取得」として表示しない設計が安全です。
status line commandはactive session中に頻繁に動きます。git statusやgit diffを毎回実行すると大きいrepositoryで遅延するため、公式例は安定したsession_idをkeyに短時間cacheします。process IDは invocationごとに変わり、cache keyに適しません。新しい更新が来ると遅いin-flight scriptはcancelされるため、network callや重い集計を入れません。
shell commandなのでworkspace trustとhook policyの対象です。trust前はblankになりdebug logへskip理由が出ます。disableAllHooksや組織のallowManagedHooksOnlyが適用されると個人status lineが無効になる場合があります。policyを回避せず、managed settingsのownerへ必要項目を提案します。
表示候補を6軸で選ぶ
- context:remaining percentageを出し、作業分割やsummaryへ切り替える閾値を決めます。
- 利用量:subscriptionでfieldがある時だけ5時間・7日percentageとresetを出します。
- 費用:API利用ではsession costを参考値として出し、請求額の正本とは区別します。
- 作業場所:directoryとbranchを短く表示し、別repositoryへの誤操作を減らします。
- 実行状態:model、effort、thinking、fast modeは判断が変わる時だけ表示します。
- 性能:一行、短い文字、local command、5秒程度のcacheを優先し、network監視は別toolへ分けます。
status lineはdashboardではありません。contextが少ない時に「新taskを始めない」、rate limitが高い時に「高負荷jobを延期する」、branchが違う時に「writeを止める」という具体的な判断へ結び付く情報だけを残します。単に数字が動く表示は認知負荷を増やします。
安全に設定する7手順
- 表示によって変えたい行動を三つ以内にし、各fieldと停止閾値を対応させます。
- model、workspace、remaining percentageを含むmock JSONを作り、null版とfield absent版もtestします。
- stdinをJSON parserで読み、値をcommand文字列として再実行せず、表示用textへだけ変換します。
- 一行をterminal幅より短くし、secret、full path、customer名、prompt本文を表示しません。
- scriptを実行可能にしてlocalでmock入力を渡し、stdout一行、stderrなし、exit 0、短時間完了を確認します。
- settingsの
statusLineへcommandを指定し、workspace trustと組織hook policyを確認します。 claude --debugで初回exit codeを読み、Git情報が必要ならsession_id別cacheを追加して再計測します。
WindowsではGit Bashがある場合とPowerShellの場合でcommand実行経路が異なります。pathはforward slashを使い、PowerShell scriptはpowershell -NoProfile -Fileのように明示します。platformごとに同じscriptを無理に共有せず、同じ出力contractを共有してください。
チェックリストとHOLD条件
- 表示で変える行動が明確
- 項目は必要最小限
- remaining percentageを使う
- nullを処理する
- absent fieldを処理する
- secretを表示しない
- prompt本文を表示しない
- stdoutは一行
- stderrを確認した
- 短時間で終わる
- network callがない
- cache keyはsession_id
- workspace trustを確認した
- managed policyに従う
HOLDするのは、secretやcustomer識別子を表示する、JSON値をshellへ未escapeで渡す、毎回network APIを呼ぶ、Git全履歴を走査する、nullでscriptが落ちる、組織のmanaged hook制限を回避する場合です。空欄をClaude Code本体の障害と即断せず、debug logとpolicyを確認します。
よくある質問と次の行動
contextはusedとremainingのどちらを出しますか?
「あとどれだけ使えるか」で停止判断するならremainingが直感的です。組織でused閾値を統一している場合はusedを選び、両方は出さない方が読みやすくなります。
費用表示は請求額と一致しますか?
session costは運用上の参考値です。契約、credit、provider、集計時点で実請求と異なるため、請求dashboardやgateway記録を正本にします。
表示が突然消えました
scriptのexit、stdout、workspace trust、disableAllHooks、allowManagedHooksOnly、command pathを確認します。最初の実行理由はdebug logで読めます。
fieldと例は公式status line、設定優先順位は公式settings、費用の扱いは公式costsで再確認してください。
context対策はcontext管理、費用はcost管理、監視証跡は監査logへつなげます。Miraigentの無料診断では、表示項目、閾値、停止、policy ownerを整理します。

