Overview
cc-statusline offers extensive customization options to personalize your terminal experience while maintaining optimal performance.Installation-Time Customization
During theinit process, you’ll be asked to configure:
Feature Selection
Fromcli/prompts.ts:18-40:
Use ↑/↓ arrow keys to navigate, SPACE to toggle selection, and ENTER to continue.
Color Scheme
Fromcli/prompts.ts:42-46:
- 256-color ANSI palette
- Emoji indicators (📁 🌿 🤖 💰 etc.)
- Color-coded warnings (context, session)
- Syntax-highlighted values
- Plain text output
- Text prefixes instead of emojis (
dir:,git:,$,tok:) - No ANSI color codes
Debug Logging
Fromcli/prompts.ts:48-52:
Installation Location
Fromcli/prompts.ts:54-62:
- Project (./.claude)
- Global (~/.claude)
Recommended for most usersPros:
- Settings stay with the project
- Different statuslines per project
- Safe updates (no global conflicts)
- Easy to share via git
- Need to install in each project
- Multiple copies of the script
Color System
Modern 256-Color Palette
cc-statusline uses carefully selected colors from the 256-color ANSI palette: Fromfeatures/colors.ts:26-36:
Color Reference Table
| Element | Color Name | ANSI Code | RGB Approx | Use Case |
|---|---|---|---|---|
| Directory | Sky Blue | 38;5;117 | #87d7ff | Current path |
| Git Branch | Soft Green | 38;5;150 | #afd787 | Branch name |
| Model | Light Purple | 38;5;147 | #afafff | Model name |
| Version | Soft Yellow | 38;5;180 | #d7af87 | Version numbers |
| CC Version | Light Gray | 38;5;249 | #b2b2b2 | Claude Code version |
| Output Style | Gray | 38;5;245 | #8a8a8a | Style setting |
| Usage/Tokens | Lavender | 38;5;189 | #d7d7ff | Token counts |
| Cost | Light Gold | 38;5;222 | #ffd787 | Dollar amounts |
| Burn Rate | Bright Gold | 38;5;220 | #ffd700 | Highlighted rates |
Dynamic Colors
Some elements change color based on status:Context Remaining Colors
Frombash-generator.ts:187-193:
| Remaining | Color | Code | Visual |
|---|---|---|---|
| 0-20% | Coral Red | 38;5;203 | 🔴 Critical |
| 21-40% | Peach | 38;5;215 | 🟡 Warning |
| 41-100% | Mint Green | 38;5;158 | 🟢 Healthy |
Session Timer Colors
Fromfeatures/usage.ts:18-24:
| Time Left | Color | Code | Visual |
|---|---|---|---|
| 0-10% | Light Pink | 38;5;210 | ⏰ Almost reset |
| 11-25% | Light Yellow | 38;5;228 | ⚡ Getting close |
| 26-100% | Light Green | 38;5;194 | ✅ Plenty of time |
NO_COLOR Support
Fromfeatures/colors.ts:17-23:
Respecting NO_COLOR standard
Respecting NO_COLOR standard
cc-statusline follows the NO_COLOR standard:When
NO_COLOR is set:- All ANSI color codes are suppressed
- Emojis are replaced with text prefixes
- Progress bars remain (using ASCII characters)
- All information is still displayed
Layout Customization
3-Line Modern Layout (Default)
Frombash-generator.ts:217-292:
Compact Variant (Fewer Features)
Example:Theme System
Fromfeatures/colors.ts:63-90:
Currently, the theme is hardcoded to
'detailed' in the generator. Future versions may expose theme selection during installation.Manual Customization
You can manually edit.claude/statusline.sh to customize:
Change Emojis
Adjust Color Codes
Finding ANSI 256 color codes
Finding ANSI 256 color codes
To see all 256 colors in your terminal:Pick your favorite color code and use it in the statusline!
Modify Progress Bar Width
Reorder Lines
You can rearrange the output lines in the display section:Configuration Summary Display
Fromcli/prompts.ts:81-96:
Preview Your Changes
Before committing to customizations, test them:- Loads your statusline script
- Runs it with realistic mock data
- Shows exactly what the output will look like
- Reports performance metrics
Always preview after manual edits to catch syntax errors before they break your statusline!
Performance Impact of Features
| Feature | Overhead | Dependencies | Recommendation |
|---|---|---|---|
| Directory | ~1ms | None | Always enable |
| Git | ~5-15ms | git | Enable if using git |
| Model | ~1ms | None | Always enable |
| Context | ~5-10ms | jq | Enable with jq |
| Cost | ~10-15ms | jq | Enable with jq |
| Tokens | ~5ms | jq | Enable with jq |
| Session | ~100ms | jq + ccusage | Enable only if needed |
Best Practices
Start with Defaults
Begin with all features enabled, then disable what you don’t need
Use Preview
Always preview after making manual changes
Enable Logging When Debugging
Turn on debug logging only when troubleshooting
Respect NO_COLOR
Test your statusline with NO_COLOR=1 for accessibility
Troubleshooting Customizations
Statusline not showing after edit
Statusline not showing after edit
Likely cause: Syntax error in bash scriptDebug:Common mistakes:
- Missing quotes
- Unclosed parentheses
- Wrong variable names
Colors not working
Colors not working
Check:
- Is
NO_COLORset?echo $NO_COLOR - Does terminal support 256 colors?
echo $TERM - Is
use_colorbeing set correctly?
Want to reset to defaults
Want to reset to defaults
Simply re-run the init command:Your previous statusline will be backed up, and a fresh one generated.
Next Steps
Features Overview
Review all available features
Advanced Usage
Learn about preview and testing