Claude Code Statusline Builder
Configures and customizes Claude Code statuslines with context window display (actual token counts), multi-line layouts, cost tracking via ccusage, git status indicators, human-readable formatting, and customizable colors. Activates for statusline setup, installation, configuration, customization, context window display, color changes, cost display, git status integration, or troubleshooting statusline issues.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.Install
git clone https://github.com/daymade/claude-code-skills.git /tmp/daymade__claude-code-skills && mkdir -p ~/.claude/skills/statusline-generator-daymade && cp -r /tmp/daymade__claude-code-skills/daymade-claude-code/statusline-generator/. ~/.claude/skills/statusline-generator-daymade/This copies the whole skill folder into
~/.claude/skills/statusline-generator-daymade/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)mkdir -p ~/.claude/skills/statusline-generator-daymade && curl -fsSL https://raw.githubusercontent.com/daymade/claude-code-skills/main/daymade-claude-code/statusline-generator/SKILL.md -o ~/.claude/skills/statusline-generator-daymade/SKILL.md - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Configures and customizes Claude Code statuslines with context window display (actual token counts), multi-line layouts, cost tracking via ccusage, git status indicators, human-readable formatting, and customizable colors. Activates for statusline setup, installation, configuration, customization, context window display, color changes, cost display, git status integration, or troubleshooting statusline issues.
What this skill does
Statusline Generator
Overview
This skill provides tools and guidance for creating and customizing Claude Code statuslines. It generates multi-line statuslines optimized for portrait screens, integrates with ccusage for session/daily cost tracking, displays git branch status, and supports color customization.
When to Use This Skill
This skill activates for:
- Statusline configuration requests for Claude Code
- Cost information display (session/daily costs)
- Multi-line layouts for portrait or narrow screens
- Statusline color or format customization
- Statusline display or cost tracking issues
- Git status or path shortening features
Dependencies
The statusline script needs to parse JSON from stdin. It auto-detects the available parser:
| Priority | Tool | Availability |
|---|---|---|
| 1 (preferred) | jq | macOS/Linux: brew install jq / apt install jq; Windows: choco install jq or scoop install jq |
| 2 (fallback) | python3 | Pre-installed on macOS and most Linux distros; Windows: winget install python3 or python.org |
If neither is available, context window and cost display will be skipped — git branch and path still work.
Other requirements:
git— for branch status (optional; gracefully skips outside repos)awk— for number formatting (installed on macOS/Linux by default; Git Bash on Windows includes it)ccusage— for session/daily cost tracking (optional; gracefully skips if missing)
Quick Start
Basic Installation
Install the default multi-line statusline:
-
Run the installation script:
bash scripts/install_statusline.sh -
Restart Claude Code to see the statusline
The default statusline displays:
- Line 1:
username (model) [session_cost/daily_cost] ctx: 89.5K/1.0M (9%) - Line 2:
current_path - Line 3:
[git:branch*+]
Manual Installation
Alternatively, manually install by:
- Copy
scripts/generate_statusline.shto~/.claude/statusline.sh - Make it executable:
chmod +x ~/.claude/statusline.sh - Update
~/.claude/settings.json:{ "statusLine": { "type": "command", "command": "bash /home/username/.claude/statusline.sh", "padding": 0 } }
Statusline Features
Multi-Line Layout
The statusline uses a 3-line layout optimized for portrait screens:
username (Sonnet 4.5 [1M]) [$0.26/$25.93] ctx: 89.5K/1.0M (9%)
~/workspace/java/ready-together-svc
[git:feature/branch-name*+]
Benefits:
- Shorter lines fit narrow screens
- Clear visual separation of information types
- No horizontal scrolling needed
Cost Tracking Integration
Cost tracking via ccusage:
- Session Cost: Current conversation cost
- Daily Cost: Total cost for today
- Format:
[$session/$daily]in magenta - Caching: 2-minute cache to avoid performance impact
- Background Fetch: First run loads costs asynchronously
Requirements: ccusage must be installed and in PATH. See references/ccusage_integration.md for installation and troubleshooting.
Model Name Shortening
Model names are automatically shortened:
"Sonnet 4.5 (with 1M token context)"→"Sonnet 4.5 [1M]""Opus 4.1 (with 500K token context)"→"Opus 4.1 [500K]"
This saves horizontal space while preserving key information.
Context Window Display
The statusline can show actual context window usage with human-readable token counts — not just a percentage. This is the most important statusline feature for long sessions.
Format:
ctx: 88.9K/1.0M (9%)
Components:
- Used tokens:
current_usage.input_tokens + cache_read_input_tokens + cache_creation_input_tokens - Total capacity:
context_window_sizefrom the input JSON - Percentage: Shown in parentheses as secondary info
- Human-readable:
<1000→ raw,≥1000→X.XK,≥1M→X.XM - Color-coded: Green (≤50%), Yellow (51–80%), Red (>80%)
Important: Use current_usage.* fields to compute actual context usage. total_input_tokens is the session-cumulative count and can exceed the context window size.
Full statusline input JSON schema (all available fields): references/context-window-schema.md.
Git Status Indicators
Git branch status shows:
- Yellow: Clean branch (no changes)
- Red: Dirty branch (uncommitted changes)
- Indicators:
*- Modified or staged files+- Untracked files- Example:
[git:main*+]- Modified files and untracked files
Path Shortening
Paths are shortened:
- Home directory replaced with
~ - Example:
/home/username/workspace/project→~/workspace/project
Color Scheme
Default colors optimized for visibility:
- Username: Bright Green (
\033[01;32m) - Model: Bright Cyan (
\033[01;36m) - Costs: Bright Magenta (
\033[01;35m) - Path: Bright White (
\033[01;37m) - Git (clean): Bright Yellow (
\033[01;33m) - Git (dirty): Bright Red (
\033[01;31m)
Customization
Changing Colors
Customize colors by editing ~/.claude/statusline.sh and modifying the ANSI color codes in the final printf statement. See references/color_codes.md for available colors.
Example: Change username to blue
# Find this line:
printf '\033[01;32m%s\033[00m \033[01;36m(%s)\033[00m%s\n\033[01;37m%s\033[00m\n%s' \
# Change \033[01;32m (green) to \033[01;34m (blue):
printf '\033[01;34m%s\033[00m \033[01;36m(%s)\033[00m%s\n\033[01;37m%s\033[00m\n%s' \
Single-Line Layout
Convert to single-line layout by modifying the final printf:
# Replace:
printf '\033[01;32m%s\033[00m \033[01;36m(%s)\033[00m%s\n\033[01;37m%s\033[00m\n%s' \
"$username" "$model" "$cost_info" "$short_path" "$git_info"
# With single-line + context:
printf '\033[01;36m[%s]\033[00m \033[01;35m%s\033[00m%s | %bctx: %s/%s (%s%%)\033[00m | \033[01;32m$%s\033[00m' \
"$model" "$short_dir" "$git_info" "$ctx_color" "$ctx_used_h" "$ctx_size_h" "$ctx_used_pct" "$cost"
# Output: [Sonnet 4.5 [1M]] project (main*) | ctx: 89.5K/1M (9%) | $0.42
Disabling Cost Tracking
If ccusage is unavailable or not desired:
- Comment out the cost section in the script (lines ~47-73)
- Remove
%sfor$cost_infofrom the finalprintf
See references/ccusage_integration.md for details.
Adding Custom Elements
Add custom information (e.g., hostname, time):
# Add variable before final printf:
hostname=$(hostname -s)
current_time=$(date +%H:%M)
# Update printf to include new elements:
printf '\033[01;32m%s@%s\033[00m \033[01;36m(%s)\033[00m%s [%s]\n...' \
"$username" "$hostname" "$model" "$cost_info" "$current_time" ...
Troubleshooting
Costs Not Showing
Check:
- Is
ccusageinstalled? Runwhich ccusage - Test
ccusagemanually:ccusage session --json --offline -o desc - Wait 5-10 seconds after first display (background fetch)
- Check cache:
ls -lh /tmp/claude_cost_cache_*.txt
Solution: See references/ccusage_integration.md for detailed troubleshooting.
Colors Hard to Read
Solution: Adjust colors for your terminal background using references/color_codes.md. Bright colors (01;3X) are generally more visible than regular (00;3X).
Statusline Not Updating
Check:
- Verify settings.json points to correct script path
- Ensure script is executable:
chmod +x ~/.claude/statusline.sh - Restart Claude Code
Git Status Not Showing
Check:
- Are you in a git repository?
- Test git commands:
git branch --show-current - Check git permissions in the directory
Resources
scripts/generate_statusline.sh
Main statusline script with all features (context window, multi-line, ccusage, git, colors). Copy to ~/.claude/statusline.sh for use.
scripts/install_statusline.sh
Automated installation script that copies the statusline script and updates settings.json.
references/context-window-schema.md
Complete statusline input JSON schema. Documents all fields under context_window, cost, model, workspace. Load for context window display implementation or debugging.
references/color_codes.md
Complete ANSI color code reference for customizing statusline colors. Load when users request color customization.
references/ccusage_integration.md
Detailed explanation of ccusage integration, caching strategy, JSON structure, and troubleshooting. Load when users experience cost tracking issues or want to understand how it works.
Related skills
Skill Builder & Optimizer
anthropics
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Org Change Management
alirezarezvani
Framework for rolling out organizational changes without chaos. Covers the ADKAR model adapted for startups, communication templates, resistance patterns, and change fatigue management. Handles process changes, org restructures, strategy pivots, and culture changes. Use when announcing a reorg, switching tools, pivoting strategy, killing a product, changing leadership, or when user mentions change management, change rollout, managing resistance, org change, reorg, or pivot communication.
Audio/Video Transcription
daymade
Transcribes audio and video files to text using Qwen3-ASR. Supports two modes — local MLX inference on macOS Apple Silicon (no API key, 15-27x realtime) and remote API via vLLM/OpenAI-compatible endpoints. Auto-detects platform and recommends the best path. Triggers when the user wants to transcribe recordings, convert audio/video to text, do speech-to-text, or mentions ASR, Qwen ASR, 转录, 语音转文字, 录音转文字. Also triggers for meeting recordings, lectures, interviews, podcasts, screen recordings, or any audio/video file the user wants converted to text.
Claude Export Conversation Fixer
daymade
Fixes broken line wrapping in Claude Code exported conversation files (.txt), reconstructing tables, paragraphs, paths, and tool calls that were hard-wrapped at fixed column widths. Includes an automated validation suite (generic, file-agnostic checks). Triggers when the user has a Claude Code export file with broken formatting, mentions "fix export", "fix conversation", "exported conversation", "make export readable", references a file matching YYYY-MM-DD-HHMMSS-*.txt, or has a .txt file with broken tables, split paths, or mangled tool output from Claude Code.