Help us improve
Share bugs, ideas, or general feedback.
From bopen-tools
Creates and customizes Claude Code status lines to display contextual info like model name, git branch, token usage, project colors, and session cost. Supports manual scripts or ccstatusline widget.
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsHow this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:statusline-setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create and customize Claude Code status lines to display contextual information like model name, git branch, token usage, project colors, and more.
Customizes the Claude Code statusline: add/remove segments (cost, git, model, context), switch color themes (catppuccin, dracula, nord), and modify display settings.
Develops custom status lines for Claude Code to display git branch, context usage, model name, and session costs using bash scripts that process JSON stdin input.
Interactive wizard sets up Claude Code's custom status line with progress bars, token counts, git branch, model name, and session info. Cross-platform for Mac/Linux/Windows via bash/PowerShell scripts.
Share bugs, ideas, or general feedback.
Create and customize Claude Code status lines to display contextual information like model name, git branch, token usage, project colors, and more.
Claude Code supports custom status lines displayed at the bottom of the interface. Status lines update when conversation messages change, running at most every 300ms.
When setting up a status line, first check for existing configuration and use AskUserQuestion to gather preferences.
# 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
Create a shell script that receives JSON data via stdin and outputs a single line with ANSI colors.
Quick setup:
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
Configure in settings:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0
}
}
Use the third-party ccstatusline for a widget-based approach with TUI configuration.
Quick setup:
bunx ccstatusline@latest
Configure in settings:
{
"statusLine": "bunx ccstatusline@latest"
}
The status line command receives structured JSON via stdin:
| Field | Description |
|---|---|
model.id | Model identifier (e.g., "claude-opus-4-6") |
model.display_name | Human-readable name (e.g., "Opus") |
workspace.current_dir | Current working directory |
workspace.project_dir | Original project directory |
cost.total_cost_usd | Session cost in USD |
cost.total_duration_ms | Total session duration |
context_window.context_window_size | Max context size |
context_window.current_usage | Current token usage object |
transcript_path | Path to session transcript JSON |
session_id | Unique session identifier |
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
SETTINGS=".vscode/settings.json"
if [[ -f "$SETTINGS" ]]; then
COLOR=$(jq -r '.["peacock.color"] // empty' "$SETTINGS")
fi
FILE_URL="vscode://file${LAST_FILE}"
echo -e "\033]8;;${FILE_URL}\a${FILENAME}\033]8;;\a"
For detailed implementation guidance, consult:
references/json-input-schema.md — Complete JSON input documentation with all fields, extraction examples in Bash/Python/Node.js, and null-value handlingreferences/scripting-patterns.md — ANSI color codes (256-color and true color), Powerline separators, Git integration patterns, project detection, clickable links (OSC 8), terminal integration, and formatting helpersreferences/ccstatusline-guide.md — Complete widget documentation, installation, configuration options, available widgets, multi-line setup, and troubleshooting