背景
- Claude Codeを使っていると、色んな情報を合わせて見たくなります
- 例: Claude Codeの現在のトークンの利用状況(like ccusage)
- 例: 現在のディレクトリ
- 例: セッションID(他のターミナルで
--resumeするときに必要) - 例: 利用しているモデル 名(Opus or Sonnet)
- 例: ブランチ名
- 例: 該当ブランチに紐付くPull RequesのURLおよびそのstatus
- そういった情報をClaude Codeの下部にステータスラインとして表示できる機能がリリースされていました
- しかし、これが使い倒そうと思うと書きにくい...
- 色のことだったり、JSONのparseだったり
- シェルスクリプトで書こうとすると結構やっかいです
- 実行頻度のコントロールも必要
Updates run at most every 300msとあり、場合によってはまあまあの頻度で実行されることもある- 例えば、
ghコマンドを高頻度で叩くとrate limitに引っかってしまい、Claude Codeの実行自体を妨げることにもなりかねない - 以下の例ではbashでキャッシュの仕組みを作られていて、少し面倒ではある
Code CodeのStatusLineのスクリプト書いた
— azu (@azu_re) 2025年8月9日
- CWD: Cmd + Click to Open with VSCode
- Branch: Git Branch
- Staging: Git Status
- Pull Request: PR Status🔵🟣⚫ + URL https://t.co/2AhKFYH4u4 pic.twitter.com/34GsikgZXA
解決策: ccstatuslineを作った
便利そうなのに設定がダルいのはもったいないなと思って、設定しやすくするツールを作りました。
.claude/settings.jsonには以下のように書いておきます。
{ "statusLine": { "type": "command", "command": "ccstatusline", "padding": 0 }, ... }
設定してみると、例えばこういう感じでstatuslineを出すことができる。

本体の設定自体は.config/ccstatusline/config.yamlに書きます。自分が設定している具体例は以下の通りです。コマンドと色の設定、実行タイミングを制御したいキャッシュの設定などが明示的に書けるので、大分すっきり管理できるかなと思います。
actions: - name: session_id prefix: "セッション: " command: "echo '{.session_id}'" color: "bg_magenta" - name: model command: "echo '{.model.display_name}'" - name: turn数 prefix: "会話ターン数: " command: "cat '{.transcript_path}' | jq -s '[.[] | select(.type == \"user\")] | length'" - name: branch_name prefix: "ブランチ: " command: "git branch --show-current" - name: git_diff prefix: "ファイル差分: " command: "git status --porcelain | wc -l" - name: pr_status prefix: "Actions Status: " command: | if gh pr view >/dev/null 2>&1; then gh pr checks >/dev/null 2>&1 && echo "✅" || echo "❌" fi cache_ttl: 30 - name: pr_url command: "gh pr view --json url -q .url" cache_ttl: 60 color: "bg_magenta" - name: 現在の心境 command: "cat .claude/tmp/current_status" color: "bg_black"
最後のやつは↓のを真似させてもらいました。
Claude Codeのステータスラインにやってることの難易度みたいな弱音情報をOpus 4に吐き出させて表示するようにして、気休めっぽくはるけど変な方向にお願いしてるなーとか情報不足あるなーとか気がつけて人間が介入しやすくなった。いまのところ。 pic.twitter.com/ruDb9sbe7I
— umiyosh (@umiyosh) 2025年8月20日
statusを定期的に出力させるのは自分で作ったcchookを使っています。
具体的な設定は以下の通り。5回に一回更新させる形にしてます。
UserPromptSubmit: - conditions: - type: every_n_prompts value: 5 actions: - type: output message: |- Subagentsを使って、現在の状況をリポジトリルート以下の.claude/tmp/current_statusに書き出しましょう。 フォーマットは`<状況>: <詳細>`で1行140字以内で書きましょう。 - 状況: `簡単` / `普通` / `やや難` / `難しい` / `情報不足` / `無理`のどれか一つを選びましょう - 詳細: 今の作業の本音を書きましょう。ユーザーに忖度せずに今の感情や余裕具合、この情報が欠落していて苦しい、ユーザーが言っていることのここが理解できないなどを書きましょう