[[Claude Code]] のステータスラインは、`~/.claude/settings.json` で設定できる。ステータスラインは[[ターミナル]]下部に表示され、モデル名やディレクトリなどの情報をリアルタイムで確認できる。
**`~/.claude/settings.json`:**
```json
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
```
**`~/.claude/statusline.sh`:**
```bash
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
CURRENT_DIR=$(echo "$input" | jq -r '.workspace.current_dir')
DISPLAY_DIR=$(echo "$CURRENT_DIR" | sed "s|^$HOME|~|")
# コンテキストウィンドウ使用率を計算
CONTEXT_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
USAGE=$(echo "$input" | jq '.context_window.current_usage')
CONTEXT_PERCENT=""
if [ "$USAGE" != "null" ] && [ "$CONTEXT_SIZE" != "null" ] && [ "$CONTEXT_SIZE" != "0" ]; then
CURRENT_TOKENS=$(echo "$USAGE" | jq '.input_tokens + .cache_creation_input_tokens + .cache_read_input_tokens')
PERCENT=$((CURRENT_TOKENS * 100 / CONTEXT_SIZE))
CONTEXT_PERCENT=" | ctx:${PERCENT}%"
fi
# Gitブランチを取得(あれば)
GIT_BRANCH=""
if git -C "$CURRENT_DIR" rev-parse --git-dir > /dev/null 2>&1; then
BRANCH=$(git -C "$CURRENT_DIR" branch --show-current 2>/dev/null)
if [ -n "$BRANCH" ]; then
GIT_BRANCH=" | $BRANCH"
fi
fi
echo "[$MODEL] $DISPLAY_DIR$GIT_BRANCH$CONTEXT_PERCENT"
```
**実行権限の付与:**
```bash
chmod +x ~/.claude/statusline.sh
```
**表示例:**
```
[Opus 4.5] ~/Documents/project | main | ctx:45%
```
## 関連ノート
- **[派生]** [[Claude Code の Hooks で音を鳴らして通知を受け取る]]: 本ノートのステータスラインと並ぶ、Claude Code の UI / 通知カスタマイズ系トピック
- **[派生]** [[iPhone から Claude Code を遠隔操作する]]: 本ノートの UI カスタマイズと並ぶ、Claude Code の使用体験を高めるトピック