「あれ、今どのブランチで作業してたっけ?」
Claude Codeで集中してコーディングしていると、ふとこんな疑問が頭をよぎる。Claude Codeのstatusline機能を使えば、この問題は解決できる。
statuslineは、現在のGitブランチ、使用中のモデル名、コンテキストの消費状況まで、作業に必要な情報を常に画面下部に表示できる機能だ。しかもトークンを一切消費しない。
本記事では、statuslineの基本から実践的なカスタマイズまで、開発体験を向上させる具体的な方法を解説する。
Claude Codeのstatuslineとは?
statuslineは、Claude Codeのインターフェース下部に表示されるカスタマイズ可能な情報バーだ。Gitブランチ、モデル名、コンテキスト使用率などをリアルタイムで表示できる。
Oh-my-zshやStarshipのようなシェルプロンプトのカスタマイズに馴染みがあれば、その概念は理解しやすいだろう。
基本的な仕組み
statuslineは以下のように動作する。
- Claude Codeがセッション情報をJSON形式でスクリプトに渡す
- スクリプトが情報を処理し、フォーマットされたテキストを出力
- 出力がstatuslineとして表示される
更新は会話メッセージが変わるたびに行われ、最大でも300ミリ秒間隔で実行される。
トークン非消費という大きなメリット
statuslineの最大の利点は、トークンを一切消費しない点だ。
スクリプトはローカルマシン上で実行され、Claude APIへのリクエストとは完全に分離されている。どれだけ凝った情報を表示しても、使用量には影響しない。
詳細は公式ドキュメントを参照。
表示できる情報
statuslineで表示できる情報は多岐にわたる。カスタマイズの自由度が高いため、自分のワークフローに最適な組み合わせを構築できる。
標準的に取得できる情報
Claude Codeからスクリプトに渡されるJSONには、以下の情報が含まれる。
| カテゴリ | 情報 |
|---|---|
| モデル | モデルID、表示名(Opus、Sonnetなど) |
| ディレクトリ | 現在の作業ディレクトリ、プロジェクトルート |
| コスト | 累計コスト(USD)、セッション時間 |
| コンテキスト | 入力/出力トークン数、使用率、残り容量 |
スクリプトで追加できる情報
受け取った情報に加えて、スクリプト内で独自に取得する情報も表示できる。
- Gitブランチ名と変更状態:未コミットの変更があるかどうか
- 現在時刻:作業時間の把握に
-
Python仮想環境:
venvやcondaの状態 - カスタムコマンドの出力:任意のシェルコマンド結果
この柔軟性こそが、statuslineの魅力だ。「こんな情報が見たい」と思ったら、スクリプトを書けば実現できる。
始め方:2つのアプローチ
statuslineの設定方法は大きく2つある。
アプローチ1:/statuslineコマンド(初心者向け)
最も簡単な方法は、Claude Code内で/statuslineコマンドを実行することだ。
/statusline
このコマンドを実行すると、Claude Codeが対話的にセットアップを手伝ってくれる。特定の表示をリクエストすることも可能だ。
/statusline Gitブランチと現在時刻を表示
まずはこの方法で試してみて、後から細かい調整を行うのがおすすめだ。
アプローチ2:手動設定(カスタマイズ重視)
より細かい制御が必要な場合は、手動でスクリプトを作成する。
ステップ1:スクリプトファイルの作成
touch ~/.claude/statusline.sh
chmod +x ~/.claude/statusline.sh
ステップ2:スクリプトの記述
以下は最小限のstatuslineスクリプトだ。
#!/bin/bash
# stdinからJSONを読み込む
input=$(cat)
# jqでモデル名とディレクトリを抽出
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
# 出力
echo "[$MODEL] 📁 ${DIR##*/}"
ステップ3:設定ファイルへの登録
~/.claude/settings.jsonに以下を追加する。
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
これでClaude Codeを再起動すれば、カスタムstatuslineが表示される。
実践的なカスタマイズ例
ここからは、実際に使えるstatuslineの例を紹介する。
例1:変更状態付きGitブランチ
作業中のブランチと未コミットの変更状態を表示するスクリプト。
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
GIT_BRANCH=""
if git rev-parse --git-dir > /dev/null 2>&1; then
BRANCH=$(git branch --show-current 2>/dev/null)
if [ -n "$BRANCH" ]; then
# 未コミットの変更をチェック
if ! git diff-index --quiet HEAD -- 2>/dev/null; then
# 変更あり:オレンジ色でアスタリスク付き
GIT_BRANCH=$(printf ' | \033[38;5;208m🌿 %s*\033[0m' "$BRANCH")
else
# クリーン:グリーン
GIT_BRANCH=$(printf ' | \033[38;5;77m🌿 %s\033[0m' "$BRANCH")
fi
fi
fi
printf '[%s] 📁 %s%s\n' "$MODEL" "${DIR##*/}" "$GIT_BRANCH"
出力例
[Opus] 📁 my-project | 🌿 main(緑色)
[Opus] 📁 my-project | 🌿 feature/auth*(オレンジ色)
色とアスタリスクで状態が視覚的にわかる。コミット忘れの防止にも役立つ。
例2:コンテキスト使用率の表示
長いセッションでは、コンテキストウィンドウの残り容量が気になる。以下のスクリプトで使用率を表示できる。
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
PERCENT=$(echo "$input" | jq -r '.context_window.used_percentage // 0')
# 使用率に応じて色を変える
if (( $(echo "$PERCENT > 70" | bc -l) )); then
COLOR="\033[38;5;196m" # 赤
elif (( $(echo "$PERCENT > 40" | bc -l) )); then
COLOR="\033[38;5;220m" # 黄
else
COLOR="\033[38;5;77m" # 緑
fi
printf '[%s] Context: %b%.1f%%\033[0m\n' "$MODEL" "$COLOR" "$PERCENT"
コンテキストが70%を超えると赤色で警告される。自動コンパクト(80%時点で発動)の前に対処できる。
コミュニティツールの活用
スクリプトを自分で書くのが面倒な場合は、コミュニティ製のツールを活用する選択肢もある。
ccstatusline
GitHubで3,000以上のスターを獲得している人気ツール。
- Powerlineスタイル対応:矢印型のセパレータで美しい見た目
- TUIによる設定:対話的なインターフェースで設定可能
- 豊富なウィジェット:モデル名、Git情報、トークン使用量など
npx ccstatusline@latest
詳細はccstatusline GitHubを参照。
claude-code-usage-bar
トークン使用量とコスト管理に特化したツール。ワンライナーでインストール可能。
curl -fsSL "https://raw.githubusercontent.com/leeguooooo/claude-code-usage-bar/main/web-install.sh" | bash
詳細はclaude-code-usage-bar GitHubを参照。
どちらを選ぶべきか
| 基準 | ccstatusline | claude-code-usage-bar |
|---|---|---|
| 見た目重視 | ◎ Powerline対応 | ○ シンプル |
| 設定の簡単さ | ○ TUIあり | ◎ ワンライナー |
| 機能の豊富さ | ◎ 多機能 | ○ 使用量特化 |
見た目と機能を重視するならccstatusline、シンプルさを重視するならclaude-code-usage-barがおすすめだ。
まとめ
Claude Codeのstatuslineは、小さな機能でありながら、開発体験に大きな影響を与える。
「どのブランチで作業しているか」「コンテキストはどれくらい残っているか」といった情報を常に視界に入れておくことで、余計な確認作業が減り、コーディングに集中できる。
今日から始める3ステップ
-
/statuslineコマンドを実行して、まずは動作を確認する - 自分が必要な情報(Gitブランチ、コンテキスト使用率など)を洗い出す
- 自作スクリプトかコミュニティツールで、最適なstatuslineを構築する
statuslineのカスタマイズに正解はない。自分のワークフローを振り返り、「これが見えたら便利だな」と思う情報を追加していけばいい。その自由度こそが、この機能の最大の魅力だ。
まずは今日、/statuslineと打ってみてほしい。