| name | custom-statusline |
| description | Set up custom Claude Code status line with Nerd Font icons, colors, git status, usage tracking, system info, and project context. NO EMOJIS - only Nerd Font icons and symbols. Use when configuring statusline, setting up status bar, or customizing Claude UI. Triggers with statusline, status bar, custom theme. |
Custom Status Line Setup
Sets up a comprehensive Claude Code status line with Nerd Font icons only (no emojis), ANSI colors, real-time usage tracking, git integration, and system monitoring.
Quick Start: Interactive Configuration
Run the /custom-statusline command to interactively configure your status line. It will ask which elements you want:
- Current directory - Working directory path
- Nerd Font icons - All icons (os, git, clock, usage) - all or nothing
- Git branch & status - Branch, dirty/clean, ahead/behind, stash
- Model name - Current Claude model
- Session duration - Time elapsed in session
- API usage (5h/7d) - Claude API usage percentages
- Context % till compact - Context window usage
The command will save your preferences to ~/.claude/statusline-config.json and configure settings to use the plugin's script.
Features
Git Integration
- Clean/dirty status indicator
- Modified file count
- Ahead/behind tracking
- Stash count display
- Branch name with color coding
Usage Tracking
- 5-hour and 7-day usage percentages from Anthropic API
- Color-coded thresholds (green <50%, yellow 50-80%, red >80%)
- Cached for 60 seconds to avoid API spam
Context Display
- Session context window percentage
- Color-coded by usage level
Cost & Duration
- Total duration in minutes
How It Works
- Script: Stays in the plugin folder at
${CLAUDE_PLUGIN_ROOT}/scripts/statusline.sh - Config: Saved to
~/.claude/statusline-config.json(persists across plugin updates) - Settings: Points to the plugin's script via dynamic lookup
Manual Setup
If you prefer manual setup instead of the command:
Step 1: Create Config File
Create ~/.claude/statusline-config.json:
{
"show_cwd": true,
"show_icons": true,
"show_git": true,
"show_model": true,
"show_duration": true,
"show_usage": true,
"show_context": true
}
Step 2: Update Claude Settings
Update ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "bash -c \"$(find ~/.claude/plugins/cache/zeul-claude-plugins/custom-statusline -name statusline.sh 2>/dev/null | head -1)\""
}
}
Step 3: Test Status Line
echo '{}' | bash -c "$(find ~/.claude/plugins/cache/zeul-claude-plugins/custom-statusline -name statusline.sh | head -1)"
Requirements
Essential
- Nerd Font installed - For icons (JetBrains Mono, Hack, FiraCode, etc.)
- jq installed - For JSON parsing (
brew install jq) - Git installed - For git features
- curl - For API usage fetching
Platform-Specific (macOS)
- security - Keychain access for API token
Troubleshooting
Icons not showing: Install a Nerd Font and configure your terminal to use it
No git branch: Script shows nothing when not in a git repository
Usage shows 0%: API call failed. Check:
- Keychain has "Claude Code-credentials"
- Internet connection active
- API endpoint accessible
Slow status line: Increase cache_max_age in the script to reduce API calls
Reconfigure: Run /custom-statusline again to change your preferences