statusline-generator
by daymade
Configures and customizes Claude Code statuslines with multi-line layouts, cost tracking via ccusage, git status indicators, and customizable colors. Activates for statusline setup, installation, configuration, customization, color changes, cost display, git status integration, or troubleshooting statusline issues.
安装
安装命令
git clone https://github.com/daymade/claude-code-skills/tree/main/statusline-generator文档
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
Quick Start
Basic Installation
Install the default multi-line statusline:
-
Run the installation script:
bashbash scripts/install_statusline.sh -
Restart Claude Code to see the statusline
The default statusline displays:
- Line 1:
username (model) [session_cost/daily_cost] - 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: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]
~/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.
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:
printf '\033[01;32m%s\033[00m \033[01;36m(%s)\033[00m:\033[01;37m%s\033[00m%s%s' \
"$username" "$model" "$short_path" "$git_info" "$cost_info"
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 (multi-line, ccusage, git, colors). Copy this to ~/.claude/statusline.sh for use.
scripts/install_statusline.sh
Automated installation script that copies the statusline script and updates settings.json.
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.
相关 Skills
by daymade
Diagnoses and fixes conflicts between Tailscale and proxy/VPN tools (Shadowrocket, Clash, Surge) on macOS. Covers five conflict layers - (1) route hijacking, (2) HTTP proxy env var interception, (3) system proxy bypass, (4) SSH ProxyCommand double tunneling, and (5) VM/container runtime proxy propagation (OrbStack/Docker). Includes SOP for remote development via SSH tunnels with proxy-safe Makefile patterns. Use when Tailscale ping works but SSH/HTTP times out, when browser returns 503 but curl works, when git push fails with "failed to begin relaying via HTTP", when Docker pull times out behind TUN/VPN, when setting up Tailscale SSH to WSL instances, or when bootstrapping remote dev environments over Tailscale.
by levnikolaevich
Orchestrates full decomposition (scope → Epics → Stories → RICE prioritization) by delegating ln-210 → ln-220 → ln-230. Sequential processing. Epic 0 for Infrastructure.
by daymade
Investigate and resolve Cloudflare configuration issues using API-driven evidence gathering. Use when troubleshooting ERR_TOO_MANY_REDIRECTS, SSL errors, DNS issues, or any Cloudflare-related problems. Focus on systematic investigation using Cloudflare API to examine actual configuration rather than making assumptions.