statusline-setup について
Claude Code のステータスラインを設定するためのガイドです。シェルスクリプトと ccstatusline の手順を示し、モデル、Git、トークン、費用などの情報を表示する例を紹介します。
主な機能
- 01スクリプトまたはccstatuslineで設定
- 02モデル、ディレクトリ、Gitブランチを表示
- 03コンテキストのトークン使用量とセッション費用を表示
- 04ANSIカラーとPowerline形式を設定
- 05クリック可能なファイルリンクを追加
活用シーン
- 01Claude Codeのカスタムステータスラインを設定
- 02セッション中にモデルとトークン使用量を確認
- 03現在のブランチと作業ディレクトリを表示
- 04ターミナルでファイル名をクリック可能にする
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ b-open-io/ prompts --skill statusline-setupインストール後、Claude Code で/statusline-setupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.clawnet/unsigned-skill.jsonexamples/ccstatusline-config.jsonpeacock-statusline.shsimple-statusline.shreferences/ccstatusline-guide.mdjson-input-schema.mdscripting-patterns.mdscripts/install-statusline.shrestore-statusline.sh詳細
ステータスラインの設定
Claude Code のステータスラインを作成、カスタマイズして、モデル名、Git ブランチ、トークン使用量、プロジェクトの色などのコンテキスト情報を表示します。
概要
Claude Code は、インターフェースの下部に表示されるカスタムステータスラインをサポートしています。ステータスラインは会話のメッセージが変更されると更新され、実行間隔は最短でも 300ms です。
対話型セットアップフロー
ステータスラインを設定するときは、まず既存の設定を確認し、AskUserQuestion を使って希望を確認してください。
事前確認:既存のステータスライン
# Check for existing configuration
if [[ -f ~/.claude/settings.json ]]; then
EXISTING=$(jq -r '.statusLine // empty' ~/.claude/settings.json)
if [[ -n "$EXISTING" ]]; then
# User has existing status line - ask about backup
fi
fi
セットアップの質問
- 方法:カスタムスクリプト(完全な制御)、ccstatusline(ウィジェットベースの TUI)、またはシンプルなインライン表示
- 機能:Git ブランチ、プロジェクトの色、トークン使用量、セッションコスト
- スタイル:Powerline、ミニマル、またはターミナルに合わせる
- エディター:Cursor、VS Code、Sublime、またはなし(クリック可能なリンクを使わない場合)
2 つの方法
1. 手動スクリプト(完全な制御)
標準入力経由で JSON データを受け取り、ANSI カラーを使った 1 行を出力するシェルスクリプトを作成します。
クイックセットアップ:
cat > ~/.claude/statusline.sh << 'EOF'
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(basename "$(echo "$input" | jq -r '.workspace.current_dir')")
echo "[$MODEL] $DIR"
EOF
chmod +x ~/.claude/statusline.sh
設定で構成:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0
}
}
2. ccstatusline(ウィジェットベース)
サードパーティの ccstatusline を使い、TUI で設定するウィジェットベースの方法を利用します。
クイックセットアップ:
bunx ccstatusline@latest
設定で構成:
{
"statusLine": "bunx ccstatusline@latest"
}
JSON 入力の構造
ステータスラインコマンドは、標準入力経由で構造化された JSON を受け取ります。
| フィールド | 説明 |
|---|---|
model.id | モデル識別子(例:"provider/model-id") |
model.display_name | 人が読みやすい名前(例:"Opus") |
workspace.current_dir | 現在の作業ディレクトリ |
workspace.project_dir | 元のプロジェクトディレクトリ |
cost.total_cost_usd | セッションのコスト(USD) |
cost.total_duration_ms | セッションの合計時間 |
context_window.context_window_size | 最大コンテキストサイズ |
context_window.current_usage | 現在のトークン使用量オブジェクト |
transcript_path | セッションのトランスクリプト JSON へのパス |
session_id | 一意のセッション識別子 |
よくあるパターン
Git ブランチの表示
if git rev-parse --git-dir > /dev/null 2>&1; then
BRANCH=$(git branch --show-current 2>/dev/null)
DIRTY=""
git diff --quiet HEAD 2>/dev/null || DIRTY="*"
echo "[$MODEL] $BRANCH$DIRTY"
fi
コンテキスト使用率
USAGE=$(echo "$input" | jq '.context_window.current_usage')
if [ "$USAGE" != "null" ]; then
TOKENS=$(echo "$USAGE" | jq '.input_tokens + .cache_creation_input_tokens + .cache_read_input_tokens')
SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
PERCENT=$((TOKENS * 100 / SIZE))
echo "Context: ${PERCENT}%"
fi
Peacock プロジェクトの色
SETTINGS=".vscode/settings.json"
if [[ -f "$SETTINGS" ]]; then
COLOR=$(jq -r '.["peacock.color"] // empty' "$SETTINGS")
fi
クリック可能なファイルリンク(OSC 8)
FILE_URL="vscode://file${LAST_FILE}"
echo -e "\033]8;;${FILE_URL}\a${FILENAME}\033]8;;\a"
参考ファイル
詳しい実装方法については、以下を参照してください。
references/json-input-schema.md— すべてのフィールドを網羅した JSON 入力の完全なドキュメント。Bash/Python/Node.js での抽出例と、null 値の処理も記載しています。references/scripting-patterns.md— ANSI カラーコード(256 色およびトゥルーカラー)、Powerline の区切り文字、Git 連携のパターン、プロジェクトの検出、クリック可能なリンク(OSC 8)、ターミナル連携、書式設定ヘルパーについて説明しています。references/ccstatusline-guide.md— ウィジェットの完全なドキュメント、インストール方法、設定オプション、利用可能なウィジェット、複数行のセットアップ、トラブルシューティングについて説明しています。
コメント
Markdown 対応