skills/statusline-setup/SKILL.md
This skill should be used when the user asks to "create a status line", "customize status line", "set up statusline", "configure Claude Code status bar", "install ccstatusline", "add project colors to status line", "show git branch in status", "display token usage", or mentions Peacock colors, powerline, or status line configuration.
npx skillsauth add b-open-io/prompts statusline-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 troubleshootingdevelopment
This skill should be used when the user asks to "design a business card", "make a printable PDF", "render HTML to PDF", "generate a postcard", "build print collateral", "set up an HTML print pipeline", or needs help with bleed, safe areas, font embedding, or QR generation for print. Provides a Playwright-based pipeline with multiple bundled templates and theme variants for business cards (minimal, watercolor light, watercolor dark) and instructions for adding new templates.
tools
Get recent tweets from an X/Twitter user. Use when user asks "what has @username posted", "recent tweets from", "user's X posts", "show timeline for", "what is @user saying". Requires X_BEARER_TOKEN.
data-ai
Get X/Twitter user profile by username. Use when user asks "who is @username", "get X profile", "lookup Twitter user", "find X account", "user details", "follower count for". Requires X_BEARER_TOKEN.
data-ai
Search recent X/Twitter posts by query. Returns RAW TWEETS (last 7 days). Use when user asks "search X for", "find tweets about", "what are people saying about", "Twitter search", "raw tweets about". For AI summaries/sentiment, use x-research instead. Requires X_BEARER_TOKEN.