1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code statusline完全ガイド|設定方法とカスタマイズ例

Posted at

「あれ、今どのブランチで作業してたっけ?」

Claude Codeで集中してコーディングしていると、ふとこんな疑問が頭をよぎる。Claude Codeのstatusline機能を使えば、この問題は解決できる。

statuslineは、現在のGitブランチ、使用中のモデル名、コンテキストの消費状況まで、作業に必要な情報を常に画面下部に表示できる機能だ。しかもトークンを一切消費しない。

本記事では、statuslineの基本から実践的なカスタマイズまで、開発体験を向上させる具体的な方法を解説する。

Claude Codeのstatuslineとは?

statuslineは、Claude Codeのインターフェース下部に表示されるカスタマイズ可能な情報バーだ。Gitブランチ、モデル名、コンテキスト使用率などをリアルタイムで表示できる。

Oh-my-zshやStarshipのようなシェルプロンプトのカスタマイズに馴染みがあれば、その概念は理解しやすいだろう。

基本的な仕組み

statuslineは以下のように動作する。

  1. Claude Codeがセッション情報をJSON形式でスクリプトに渡す
  2. スクリプトが情報を処理し、フォーマットされたテキストを出力
  3. 出力がstatuslineとして表示される

更新は会話メッセージが変わるたびに行われ、最大でも300ミリ秒間隔で実行される。

トークン非消費という大きなメリット

statuslineの最大の利点は、トークンを一切消費しない点だ。

スクリプトはローカルマシン上で実行され、Claude APIへのリクエストとは完全に分離されている。どれだけ凝った情報を表示しても、使用量には影響しない。

詳細は公式ドキュメントを参照。

表示できる情報

statuslineで表示できる情報は多岐にわたる。カスタマイズの自由度が高いため、自分のワークフローに最適な組み合わせを構築できる。

標準的に取得できる情報

Claude Codeからスクリプトに渡されるJSONには、以下の情報が含まれる。

カテゴリ 情報
モデル モデルID、表示名(Opus、Sonnetなど)
ディレクトリ 現在の作業ディレクトリ、プロジェクトルート
コスト 累計コスト(USD)、セッション時間
コンテキスト 入力/出力トークン数、使用率、残り容量

スクリプトで追加できる情報

受け取った情報に加えて、スクリプト内で独自に取得する情報も表示できる。

  • Gitブランチ名と変更状態:未コミットの変更があるかどうか
  • 現在時刻:作業時間の把握に
  • Python仮想環境venvcondaの状態
  • カスタムコマンドの出力:任意のシェルコマンド結果

この柔軟性こそが、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ステップ

  1. /statuslineコマンドを実行して、まずは動作を確認する
  2. 自分が必要な情報(Gitブランチ、コンテキスト使用率など)を洗い出す
  3. 自作スクリプトかコミュニティツールで、最適なstatuslineを構築する

statuslineのカスタマイズに正解はない。自分のワークフローを振り返り、「これが見えたら便利だな」と思う情報を追加していけばいい。その自由度こそが、この機能の最大の魅力だ。

まずは今日、/statuslineと打ってみてほしい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?