ββββββββββββ ββββββ βββ ββββββ ββββ βββ ββββββββββββββββββββββ βββββββββββββ ββββββ ββββββββββββββββ βββββββββββββββββββββββββββ ββββββ ββββββ βββββββββββββββββββββββββ ββββββ ββββββ βββ βββ ββββββ βββββββββββββββββββββββββββββββββββββββ ββββββ βββ βββ βββββββββββ βββββββββ ββββββ ββββββ ββββββββββββββββββββββββββββββ βββββββββββ ββββββββ ββββββ ββββββ βββββ ββββββββββββββββββββββ βββββββββββββββββ ββββββ ββββββββββββ ββββββββββββββ βββββββ βββββββββββ βββββββββββββββββββββββββββββββββββββ ββββββββββββββ ββββββββ βββββββββββ ββββββββ βββ ββββββββ βββ βββ ββββββββββββββ βββββββββ βββββββββ ββββββββ βββ ββββββββ βββ βββ ββββββββββββββ βββββββββββββββββββ ββββββββ βββ βββ βββ βββ βββββββββββββββββββββββββββββββ ββββββββββββββ ββββββββ βββ βββ βββ βββ βββββββ ββββββββββββββββββββββ βββββββββββββ
π¨ Transform your terminal with 18 atomic components across 1-9 configurable lines
Block metrics β’ Burn rate monitoring β’ Cache efficiency β’ Cost projections β’ Atomic precision β’ Clean separators β’ Rich information display β’ Stunning themes β’ Real-time monitoring β’ MCP integration β’ Islamic prayer times β’ Ultimate customization
π¨ Catppuccin Mocha Theme in VS Code Terminal
π Before Installing: This tool requires jq
and curl
- macOS:
brew install jq
- Linux:
sudo apt install jq curl
orsudo yum install jq curl
- Windows: Use WSL or install via package manager
Choose your preferred installation method:
# Download and inspect the installer (strongly recommended)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh -o install.sh
# Review what it does - look for:
# β Only creates files in ~/.claude/statusline/
# β Downloads from this GitHub repo
# β No sudo or system modifications
less install.sh
# Run when you're satisfied it's safe
bash install.sh
π Quick Security Check: Open install.sh
and verify it only:
- Creates directories in
~/.claude/
- Downloads files from
raw.githubusercontent.com/rz1989s/claude-code-statusline
- Doesn't use
sudo
or modify system files - Uses
curl
with proper GitHub raw URLs - No network calls to external domains
# Direct install without inspection (for trusted users)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash
# 1. Create directory structure
mkdir -p ~/.claude/statusline/{lib,examples}
# 2. Download core files
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/statusline.sh -o ~/.claude/statusline/statusline.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/examples/Config.toml -o ~/.claude/statusline/Config.toml
# 3. Download library modules (automated)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash -s -- --modules-only
# 4. Make executable and test
chmod +x ~/.claude/statusline/statusline.sh
~/.claude/statusline/statusline.sh --version
# Confirm installation success
~/.claude/statusline/statusline.sh --version
ls -la ~/.claude/statusline/lib/ # Should show 10+ module files
# Test with sample input
echo '{"workspace": {"current_dir": "'"$(pwd)"'"}, "model": {"display_name": "Test"}}' | ~/.claude/statusline/statusline.sh
π Transparency First - Here's exactly what happens:
β
Creates one directory: ~/.claude/statusline/
(in your home folder only)
β
Downloads 31 text files: Shell scripts from this GitHub repository
β
Creates one config file: Config.toml
with default settings you can edit
β
No system changes: Everything stays in your home folder
β Does NOT:
- Modify any system files or PATH
- Install packages globally or change your OS
- Require admin/sudo permissions
- Send data anywhere or phone home
- Modify your shell config (.bashrc, .zshrc, etc.)
π Security: All files are downloaded from this public GitHub repository - you can inspect every line of code before running.
- Installation
- Recent Updates
- Features
- Theme Gallery
- Screenshot Showcase
- Advanced Setup
- Configuration
- What Each Line Shows
- System Requirements
- Documentation
- Contributing
- License
- Acknowledgments
π REVOLUTIONARY BLOCK METRICS SYSTEM
- 4 NEW Block Metrics Components - Real-time ccusage monitoring with 75% resource reduction
- Unified Data Collection - Single API call feeds all metrics (burn rate, tokens, cache efficiency, projections)
- Burn Rate Monitoring - Critical token consumption tracking (π₯3.5k/min $2.10/hr)
- Cache Efficiency - Performance optimization insights (Cache: 94% hit)
- Cost Projections - Budget planning and limit avoidance (Proj: $16.48)
- Resource Optimized - Minimal background processes, smart 30s caching
π REVOLUTIONARY INSTALLER OVERHAUL
- 3-Tier Download Architecture - Complete installer architectural overhaul eliminates GitHub rate limits forever
- Tier 1: Direct Raw URLs - Unlimited requests, no API usage, fastest installation method (handles 99% of cases)
- Tier 2: GitHub API Fallback - Optional token support increases limits from 60/hour to 5,000/hour
- Tier 3: Comprehensive Retry - Exponential backoff and intelligent verification with detailed troubleshooting
- 100% Download Guarantee - Either all modules download successfully or clear failure with actionable guidance
- Zero Intervention Required - Primary method handles installations automatically without user interaction
β‘ INSTALLATION IMPROVEMENTS
- Eliminates GitHub Rate Limits - Direct raw URLs bypass API limitations completely
- Enhanced Error Handling - Exponential backoff and comprehensive retry mechanisms
- Performance Benefits - Fastest installation method using direct raw URLs
- Backward Compatible - All existing installation methods preserved and enhanced
π ADDITIONAL FIXES
- Fixed Prayer Time Calculation - Resolved "24h 0m" display bug, now shows "(0m)" for exact matches
- Enhanced Test Coverage - Added comprehensive test cases for prayer time edge scenarios
π IMPACT: Bulletproof installation system - Reliable, fast installation regardless of GitHub API availability, with 100% download guarantee and zero user intervention required.
π― REVOLUTIONARY SIMPLIFICATION: SINGLE SOURCE OF TRUTH ARCHITECTURE
Transform your configuration experience with the most significant architectural simplification ever:
-
π§Ή Configuration Breakthrough - Eliminated triple redundancy system:
- β Before: 13 example configs + hardcoded defaults + jq fallbacks = chaos
- β After: ONE comprehensive Config.toml with all 227 settings = clarity
-
π― Zero Hunting - All parameters pre-filled in Config.toml, just edit values
-
π§ Zero Code Defaults - No more DEFAULT_CONFIG_* constants scattered in lib/config.sh
-
β‘ Pure Extraction - No jq fallbacks (
// "default"
), reads directly from TOML -
π Simplified Structure - Only examples/Config.toml + README.md (no confusion)
π― USER EXPERIENCE TRANSFORMATION
# BEFORE: Hunt for parameter names across 13 config files
# ~/.claude/statusline/examples/Config.modular-compact.toml
# ~/.claude/statusline/examples/Config.modular-atomic.toml
# ... 11 more files to choose from
# AFTER: Edit ONE comprehensive file with ALL settings
# ~/.claude/statusline/Config.toml (227 settings included!)
theme.name = "catppuccin" # Theme selection
display.lines = 5 # Line count (1-9)
display.line1.components = ["repo_info", "commits", "version_info"]
labels.commits = "Commits:" # Display labels
# ... ALL 227 settings right here!
π― ULTIMATE CUSTOMIZATION: ATOMIC COMPONENT BREAKTHROUGH
Transform your statusline with 18 atomic components that eliminate separator issues and provide maximum control:
-
π¬ Atomic Components - Single-purpose units for maximum control:
commits
- Shows ONLY commit count (pure atomic)submodules
- Shows ONLY submodule status (pure atomic)cost_monthly
- Shows ONLY 30-day costs (pure atomic)cost_weekly
- Shows ONLY 7-day costs (pure atomic)cost_daily
- Shows ONLY daily costs (pure atomic)
-
π¨ Clean Visual Separation - No more
30DAY $660.87 7DAY $9.31 DAY $36.10
! Now:30DAY $660.87 β 7DAY $9.31 β DAY $36.10
-
π§© Maximum Control - Want only commits without submodules? Use
commits
component only -
βοΈ Pure Atomic Architecture - No legacy bundled components, each component shows unique data only
-
π 8 Example Configs - Including new
Config.modular-atomic.toml
showcase
βοΈ ATOMIC CONFIGURATION EXAMPLES
# Show only specific git info
display.line1.components = ["repo_info", "commits", "version_info"]
# Custom cost tracking - pick exactly what you need
display.line2.components = ["cost_monthly", "cost_daily"]
# Pure atomic components
display.line3.components = ["commits", "cost_weekly", "mcp_status"]
π― MAJOR ARCHITECTURAL BREAKTHROUGH: MODULAR COMPONENT SYSTEM
- Complete Component Architecture - 18 individual component modules with standardized interfaces (
collect_data()
,render()
,get_config()
) - Configurable 1-9 Line Display - Flexible line layouts from minimal 1-line to comprehensive 9-line configurations
- Component Registry System - Advanced component management with dependency tracking and enablement states
- Mix & Match Flexibility - Arrange any component on any line position (MCP on line 1, prayer times on line 2, etc.)
- Backward Compatibility - Legacy 5-line system preserved as fallback with seamless migration path
π§© INDIVIDUAL COMPONENT MODULES
repo_info.sh
- Repository directory and git status displaycommits.sh
- Commit count (pure atomic)submodules.sh
- Submodule tracking (pure atomic)version_info.sh
- Claude Code version with intelligent cachingtime_display.sh
- Current time formatting and displaymodel_info.sh
- Claude model identification with emoji indicatorscost_repo.sh
- Repository session cost trackingcost_monthly.sh
- 30-day costs (pure atomic)cost_weekly.sh
- 7-day costs (pure atomic)cost_daily.sh
- Daily costs (pure atomic)cost_live.sh
- Live billing block cost monitoringmcp_status.sh
- MCP server health and connection statusreset_timer.sh
- Block reset countdown and timer managementprayer_times.sh
- Islamic prayer times integration
βοΈ FLEXIBLE TOML CONFIGURATION SYSTEM
# Compact 3-line layout
display.lines = 3
display.line1.components = ["repo_info", "commits", "submodules"]
display.line2.components = ["model_info", "cost_repo"]
display.line3.components = ["mcp_status"]
# Custom reordering - prioritize what matters to you!
display.line1.components = ["mcp_status", "prayer_times"]
display.line2.components = ["repo_info", "version_info"]
ποΈ ENHANCED MODULAR ARCHITECTURE
- 91.5% Code Reduction - Main orchestrator reduced from monolithic script to clean 368-line module loader
- Component-Based Data Flow - Standardized interfaces enable consistent behavior and easy testing
- Advanced Configuration Parsing - Modular line configuration with component arrangement flexibility
- Enhanced Maintainability - Individual components can be developed, tested, and maintained independently
π IMPACT: Revolutionary transformation from fixed 5-line display to fully configurable 1-9 line modular system, enabling personalized statusline layouts that adapt to any workflow preference.
π MAJOR NEW FEATURE: ISLAMIC PRAYER TIMES
- Complete Prayer Times Display - All 5 daily Islamic prayers (Fajr, Dhuhr, Asr, Maghrib, Isha) with real-time status indicators
- AlAdhan API Integration - Accurate prayer time calculations using the trusted AlAdhan API with multiple calculation methods (ISNA, MWL, Makkah, etc.)
- Visual Status Indicators - β for completed prayers, time remaining display (e.g., "3h 29m") with green highlighting for upcoming prayers, elegant formatting with π Islamic indicator
- Intelligent Caching - 1-hour cache duration for optimal performance, location-aware cache keys, automatic refresh
π HIJRI CALENDAR WITH AUTHENTIC ISLAMIC TIMEKEEPING
- Maghrib-Based Day Changes - Proper Islamic calendar where Hijri date changes at Maghrib (sunset), not midnight - authentic to Islamic tradition
- Real-Time Hijri Date Display - Current Islamic date with Arabic month names (e.g., "2 JumΔdΓ‘ al-Ε«lΓ‘ 1452")
- Moon Phase Indicator - π symbol when Islamic day changes at Maghrib time
- Multiple Calculation Standards - Support for Umm Al-Qura and other Hijri calculation methods
π§ COMPREHENSIVE CONFIGURATION SYSTEM
- Full Prayer Customization - Calculation methods (ISNA/MWL/Makkah), Madhab selection (Shafi/Hanafi), manual/auto location modes
- Location Intelligence - Auto-detection or manual coordinates, timezone override support
- Display Preferences - 12h/24h time formats, completed indicators, next prayer highlighting, countdown timers
- Hijri Calendar Options - Arabic month names, weekday display, Maghrib change indicators, manual adjustments
ποΈ ENHANCED ARCHITECTURE
- New Prayer Module -
lib/prayer.sh
with 400+ lines of Islamic timekeeping logic following existing modular patterns - Modular Display System - Configurable 1-9 line statusline with flexible component arrangement and dedicated Islamic prayer times
- Comprehensive Testing - Complete unit test suite in
tests/unit/test_prayer_functions.bats
with edge case coverage - Performance Optimized - < 2s execution with intelligent caching, graceful API fallbacks, minimal external dependencies
π IMPACT: Muslim developers now have accurate Islamic timekeeping integrated seamlessly into their development workflow with authentic religious observance support.
π CRITICAL BUG FIXES
- Fixed DAY $0.00 display issue - Resolved timeout-related failure where
ccusage daily
commands were timing out at 3s when they need ~3.5s to complete - Enhanced configuration fallback logic - Improved handling of empty string values in TOML config parsing
β‘ PERFORMANCE & RELIABILITY IMPROVEMENTS
- Standardized all timeouts to 10s minimum - Increased reliability for external command execution
DEFAULT_VERSION_TIMEOUT
: 2s β 10sDEFAULT_CCUSAGE_TIMEOUT
: 3s β 10sCACHE_CONFIG_ATOMIC_TIMEOUT
: 5s β 10s
- Updated all configuration examples - Ensures consistent timeout values across all TOML templates
π DOCUMENTATION ENHANCEMENTS
- Streamlined CLAUDE.md - Enhanced developer experience with clearer quick reference section
- Updated cache timing documentation - Improved accuracy of cache behavior explanations
- Better configuration guidance - Updated examples to reflect new timeout standards
π IMPACT: Eliminated DAY cost display bug, improved system reliability, and enhanced timeout handling
- π XDG-Compliant Cache Security - Migrated from
/tmp
to secure user-isolated directories following XDG Base Directory specification - π SHA-256 Integrity Protection - Advanced checksum validation with automatic corruption detection and recovery
- π Enhanced Git Branch Validation - Unicode and emoji support using
git check-ref-format
for authentic validation - π§Ή Comprehensive Resource Cleanup - Signal traps (EXIT/INT/TERM/HUP) prevent resource leaks under any termination scenario
- βοΈ Advanced TOML Configuration - Expanded cache configuration with 40+ settings for fine-tuned performance control
- π§ Intelligent Error Handling - Context-aware error messages with actionable recovery suggestions and automatic fallback systems
- π Real-Time Performance Analytics - Hit/miss ratios, response times, efficiency classification, and memory usage monitoring
- π Cache Integrity Auditing - Built-in tools for cache health monitoring, corruption detection, and migration recommendations
- π§ͺ 77+ Comprehensive Tests - Unit, integration, and performance regression test coverage with multi-instance validation
- π Performance Classification - EXCELLENT/GOOD/MODERATE/POOR ratings with optimization recommendations
- π Universal Operation Caching - Optimizes ALL external commands, not just API calls
- π 70-90% Performance Improvement - Dramatic reduction in external command execution
- π Command Existence Caching - Session-wide caching eliminates repeated PATH lookups
- π§ Git Operations Caching - Intelligent duration-based caching for all git commands
- π Enhanced External Commands - Improved
claude --version
andclaude mcp list
caching - π₯οΈ System Information Caching - Permanent caching for OS type, architecture
- β‘ Sub-50ms Responses - Lightning-fast statusline execution (from 200-500ms)
- π‘οΈ Universal Multi-Instance Safety - Zero race conditions across all operations
- π°οΈ Smart Duration Strategy - From session-wide to real-time based on change frequency
- π§ Intelligent Startup Detection - Force refresh on first startup across all cached operations
- π οΈ Enhanced Installer - Fixed curl failure by ensuring directory creation before download
- π Improved Path Management - Enhanced installation path handling for better compatibility
- π― Streamlined Architecture - Simplified version management for easier maintenance
- π Bug Fixes - Resolved missing model emojis in statusline display
- π Updated Documentation - Comprehensive documentation enhancements and project organization
- β Contributor Ready - Finalized CONTRIBUTING.md with complete development guidelines
- π Single Source of Truth - Introduced
version.txt
as master version file for entire codebase - π οΈ Version Management Scripts - Automated tools for version synchronization and consistency checks
- π Dynamic Version Reading - All components now read version from centralized source
- π¦ Automated Package Sync - Scripts maintain package.json synchronization with version.txt
- β System Verification - Comprehensive testing tools for version consistency
- π Complete Documentation - Full guide for centralized version management workflow
- π Improved Error Messages - Enhanced module loading error messages with specific troubleshooting guidance
- π Function Documentation - Added comprehensive documentation to core.sh functions
- π§ͺ Enhanced Testing - New test coverage for module loading functionality
- π Better Diagnostics - Clearer error messages help users resolve issues faster
Contains internal v2.0.6-refactored architecture while maintaining v1.3.x compatibility
- ποΈ Modular Architecture - Complete refactor from 3930-line monolithic script to clean modular system
- π¦ 9 Specialized Modules - Core, security, config, themes, git, MCP, cost, display, and cache modules
- π― 91.4% Code Reduction - Main orchestrator reduced to 338 lines with preserved functionality
- π§ Enhanced Maintainability - Clear separation of concerns and dependency management
- β‘ Improved Performance - Optimized module loading and reduced complexity
- π 100% Backward Compatible - All existing functionality and configuration preserved
- β Comprehensive Timeout Validation - Enhanced bounds checking with contextual suggestions
- π§ Smart Configuration Validation - Prevents dangerous timeout values (0s, >60s)
- π Enhanced CLI Documentation - Detailed timeout configuration guidance
- π οΈ New Helper Functions -
parse_timeout_to_seconds()
andvalidate_timeout_bounds()
- π‘ Contextual Error Messages - Specific suggestions for optimal timeout ranges
- π Backward Compatible - All existing configurations continue to work
- π TOML Configuration Files - Modern, structured configuration with
Config.toml
- π§ Rich CLI Interface - Generate, test, validate, and manage configurations
- π Single Config Location -
~/.claude/statusline/Config.toml
(simple and consistent) - π Environment Overrides -
ENV_CONFIG_*
variables override all settings - π Live Reload - Hot configuration reloading with
--watch-config
- π¨ Theme System - Built-in themes with full custom color support
- β Configuration Validation - Built-in testing and error checking with auto-fix suggestions
- π¦ Migration Tools - Seamless migration from inline configuration
- β‘ 100% Backwards Compatible - Existing inline configuration continues to work
- π¨ Three Stunning Themes - Classic, Garden (pastels), and Catppuccin Mocha
- π° Real-time Cost Tracking - Complete integration with ccusage
- π MCP Server Monitoring - Live status of Model Context Protocol servers
- β° Block Reset Timer - Track your 5-hour conversation blocks with countdown
- π Git Integration - Repository status, commit counting, and branch information
- β‘ Performance Optimized - Smart caching and configurable timeouts
Experience three beautifully crafted themes that transform your terminal into a work of art:
- π Catppuccin Mocha - Rich, warm colors with excellent contrast
- πΏ Garden Theme - Soft pastels for a gentle, soothing aesthetic
- β‘ Classic Theme - Traditional terminal colors with modern polish
- π¨ Custom Themes - Full RGB/256-color/ANSI color customization
π― BREAKTHROUGH: Fully Configurable 1-9 Line Display System
Transform your statusline from a fixed layout to a completely personalized information dashboard! The revolutionary modular system gives you complete control over what information appears where.
π Key Modular Features:
- π 1-9 Line Flexibility - From ultra-minimal 1-line to comprehensive 9-line displays
- π§© 18 Individual Components - Mix, match, and reorder any component on any line
- ποΈ Component Registry - Advanced management with dependency tracking
- β‘ Real-time Reconfiguration - Change layouts instantly with environment variables
- π Backward Compatible - Legacy 5-line system preserved as fallback
π Example Layout Transformations:
Ultra-Minimal (2-line):
display.lines = 2
display.line1.components = ["repo_info", "model_info"]
display.line2.components = ["cost_repo"]
Creative Reordering (6-line):
display.lines = 6
display.line1.components = ["mcp_status", "version_info"] # MCP first!
display.line2.components = ["prayer_times", "time_display"] # Prayer times priority
display.line3.components = ["repo_info", "model_info"] # Repository info
display.line4.components = ["commits", "submodules"] # Atomic git stats
display.line5.components = ["cost_repo", "cost_monthly", "cost_live"] # All costs together
display.line6.components = ["reset_timer"] # Timer when active
π Default 5-Line Layout (Customizable):
Line 1: Repository & Environment (Components: repo_info
, commits
, submodules
, version_info
, time_display
)
- Working directory with elegant
~
notation - Git branch with clean/dirty status indicators
- Today's commit count tracking
- Claude Code version (intelligently cached)
- Git submodule count
- Current time display
Line 2: Model & Cost Tracking (Components: model_info
, cost_repo
, cost_monthly
, cost_weekly
, cost_daily
, cost_live
)
- Current Claude model with emoji indicators
- Repository session costs
- 30-day, 7-day, and daily spending totals
- Live billing block costs with ccusage integration
- Real-time financial monitoring
Line 3: MCP Server Health (Component: mcp_status
)
- Connected vs total server count
- Server names with connection status
- Color-coded indicators (π’ connected, π΄ disconnected)
- Real-time health monitoring
Line 4: Block Reset Timer (Component: reset_timer
)
- Next reset time display
- Countdown to block expiration
- Smart detection and tracking
Line 5: Islamic Prayer Times (Component: prayer_times
)
- All 5 daily Islamic prayers (Fajr, Dhuhr, Asr, Maghrib, Isha) with accurate timing
- Real-time Hijri date with authentic Maghrib-based day changes
- Visual prayer status indicators (β completed, time remaining with green highlighting for upcoming)
- AlAdhan API integration with multiple calculation methods
- π Islamic formatting with moon phase indicators π
Available Components:
repo_info
- Directory path and git statuscommits
- Commit count (atomic)submodules
- Submodule status (atomic)version_info
- Claude Code versiontime_display
- Current timemodel_info
- Claude model with emojicost_repo
- Repository session costcost_monthly
- 30-day costs (atomic)cost_weekly
- 7-day costs (atomic)cost_daily
- Daily costs (atomic)cost_live
- Live block costmcp_status
- MCP server healthreset_timer
- Block reset countdownprayer_times
- Islamic prayer times
Configuration Examples:
# Compact 3-line layout
display.lines = 3
display.line1.components = ["repo_info", "commits", "submodules"]
display.line2.components = ["model_info", "cost_repo"]
display.line3.components = ["mcp_status"]
# Custom reordering - MCP first!
display.line1.components = ["mcp_status", "version_info"]
display.line2.components = ["prayer_times", "time_display"]
display.line3.components = ["repo_info", "model_info"]
π― ZERO CONFIGURATION: Works automatically for 2+ billion Muslims worldwide!
Our breakthrough auto-detection system automatically determines your location and selects the correct Islamic prayer calculation method, covering 98% of the global Muslim population with no manual setup required.
π Tier 1: IP Geolocation (Online)
- Uses free ip-api.com service (45 requests/min, no API key required)
- Detects country, city, precise coordinates, and timezone
- Maps country β appropriate prayer calculation method automatically
- Results cached for 7 days for offline reliability
πΎ Tier 2: Cached Location (Offline)
- Uses cached IP geolocation data (7-day expiry)
- Zero network requirements - works completely offline
- Maintains user privacy with local storage only
π Tier 3: System Timezone Mapping (Offline)
- Maps system timezone β country β prayer method
- Covers 98% of global Muslim population with 100+ timezone mappings
- Provides region-specific coordinates for major Islamic cities
- Lightning-fast offline operation (microsecond response times)
π Tier 4: System Locale Fallback
- Uses system locale as location hint
- Safe fallback for unknown regions with Muslim World League (MWL) method
π Automatic Support For:
- π 28 Major Islamic Countries - Indonesia, Pakistan, Saudi Arabia, Egypt, Turkey, etc.
- π All Middle Eastern Countries - Complete Gulf region coverage
- ποΈ Major Muslim Communities - Europe, Americas, Australia, Russia
- β° 100+ Timezone Mappings - Every Islamic region worldwide
- π³οΈ 80+ Country Codes - IP geolocation covers all countries
π Regional Coverage:
- Southeast Asia (450M Muslims) - Indonesia β KEMENAG, Malaysia β JAKIM, Singapore β MUIS
- South Asia (620M Muslims) - Pakistan/India/Bangladesh β Karachi University
- Middle East & Gulf (120M Muslims) - Saudi β Umm al-Qura, UAE β Dubai, Iran β Tehran
- North Africa (280M Muslims) - Egypt β Egyptian Authority, Morocco β Morocco method
- Europe (60M Muslims) - Russia β Spiritual Admin, France β UOIF, UK β MWL
- Americas & Oceania (15M Muslims) - USA/Canada β ISNA, Australia β MWL
# In your Config.toml file
prayer.location_mode = "auto" # β RECOMMENDED: Comprehensive auto-detection
prayer.location_mode = "ip_based" # Force IP geolocation only (requires internet)
prayer.location_mode = "manual" # Use manual coordinates (disable auto-detection)
- Privacy-First Design - Location data cached locally, no tracking or data collection
- IP Geolocation Transparency - When using auto-detection, your IP address is sent to ip-api.com for location lookup (can be disabled)
- Local Data Storage - All location and prayer data stored locally in
~/.cache/claude-code-statusline/
- No Personal Information - Only coordinates and prayer calculation method are stored, no personal data
- Manual Override Available - Set
prayer.location_mode = "manual"
to completely disable IP-based detection - Graceful Degradation - Works offline with timezone/locale fallbacks when internet unavailable
- Intelligent Caching - 7-day cache prevents repeated API calls, reduces external requests
- Ultra-Fast Offline - Timezone mapping completes in microseconds using local data structures
- Zero Dependencies - No external libraries required for offline operation
# Indonesia User
# Timezone: Asia/Jakarta β Method: KEMENAG (20) β Coordinates: Jakarta
π 12 JumΔdΓ‘ al-Ε«lΓ‘ 1453 β Fajr 04:35 β β Dhuhr 11:53 (2h 18m) β Asr 15:10 β Maghrib 17:52 β Isha 19:02
# USA User
# Timezone: America/New_York β Method: ISNA (2) β Coordinates: New York
π 12 JumΔdΓ‘ al-Ε«lΓ‘ 1453 β Fajr 05:42 β β Dhuhr 12:15 (3h 25m) β Asr 15:28 β Maghrib 18:05 β Isha 19:35
# Saudi User
# Timezone: Asia/Riyadh β Method: Umm al-Qura (4) β Coordinates: Riyadh
π 12 JumΔdΓ‘ al-Ε«lΓ‘ 1453 β Fajr 04:18 β β Dhuhr 11:47 (1h 52m) β Asr 15:02 β Maghrib 17:41 β Isha 19:11
π‘ The statusline works perfectly out-of-the-box for Muslims anywhere in the world - no configuration needed!
- π¦ 11 Specialized Modules - Clean separation of concerns with dedicated modules for each feature
core.sh
- Base utilities, module loading, and performance timingsecurity.sh
- Input sanitization and secure file operationsconfig.sh
- TOML configuration parsing and modular line managementthemes.sh
- Color theme system with inheritance supportcomponents.sh
- NEW Component registry and modular display systemgit.sh
- Repository status, branch detection, and commit trackingmcp.sh
- MCP server monitoring and health checkingcost.sh
- Cost tracking integration with ccusageprayer.sh
- Islamic prayer times and Hijri calendar with AlAdhan API integrationdisplay.sh
- Modular output formatting and 1-9 line statusline generationcache.sh
- Universal intelligent caching system with enterprise-grade featureslib/components/
- NEW Individual component modules for flexible arrangement
- π― 91.4% Code Reduction - Main orchestrator script reduced from 3930 to 338 lines
- π§ Enhanced Maintainability - Modular design enables easier testing, debugging, and feature development
- β‘ Improved Performance - Optimized module loading and reduced script complexity
Revolutionary performance enhancement system that transforms statusline response times from seconds to milliseconds:
- 95% Performance Improvement - Statusline response time from 2-6 seconds to sub-50ms
- 70-90% Command Reduction - Intelligent session-wide caching eliminates redundant operations
- Multi-Tier Duration Strategy - Optimized cache lifetimes (2s to 24h) based on data volatility
- XDG-Compliant Cache Location - Follows XDG Base Directory specification for secure, user-isolated storage
- SHA-256 Integrity Protection - Advanced checksum validation prevents cache corruption
- Intelligent Migration System - Seamlessly migrates from legacy
/tmp
location to secure directories - Multi-Instance Safety - Atomic operations with random backoff prevent race conditions under concurrent access
- Real-Time Statistics - Cache hit/miss ratios, response times, and efficiency metrics
- Performance Classification - EXCELLENT (β₯80%), GOOD (60-79%), MODERATE (40-59%), POOR (<40%)
- Memory Usage Monitoring - Track cache storage consumption and optimize resource usage
- Detailed Reporting - Per-operation analytics with comprehensive performance insights
- Actionable Error Messages - Context-aware warnings with specific recovery suggestions
- Automatic Corruption Detection - Advanced validation removes invalid cache files automatically
- Smart Fallback Systems - Graceful degradation ensures reliability even when caching fails
- Resource Cleanup - Comprehensive cleanup traps prevent resource leaks on interruption
cache.base_directory = "auto" # XDG-compliant auto-selection
cache.enable_universal_caching = true # Master cache toggle
cache.enable_statistics = true # Performance analytics
cache.enable_corruption_detection = true # SHA-256 integrity validation
cache.durations.command_exists = "session" # Session-wide command caching
cache.durations.claude_version = 900 # 15 minutes for CLI version
cache.durations.git_status = 10 # 10 seconds for git working directory
cache.durations.mcp_server_list = 120 # 2 minutes for MCP connections
cache.security.enable_checksums = true # SHA-256 integrity protection
cache.security.validate_on_read = true # Real-time corruption detection
cache.security.directory_permissions = "700" # Secure directory access
cache.security.file_permissions = "600" # Owner-only file access
- 100% Multi-Instance Success Rate - Verified across 5 concurrent instances with zero race conditions
- 77+ Comprehensive Tests - Unit, integration, and performance regression test coverage
- Cache Integrity Auditing - Built-in tools for cache health monitoring and validation
- Performance Benchmarking - Continuous monitoring prevents performance regressions
- π§ Intelligent Multi-Tier Caching - Differentiated cache durations by data type for optimal performance
- π Startup Detection - Forces fresh data on first Claude Code launch, then uses smart caching
- β‘ 98% API Call Reduction - 7DAY data cached for 1 hour, 30DAY for 2 hours (vs 30 seconds)
- π Multi-Instance Safe - Race condition protection for multiple Claude Code sessions
- π Enhanced Locking - Atomic writes, retry logic, and stale lock cleanup
- π¦ Cache Validation - JSON integrity checking and corrupted cache recovery
- β±οΈ Configurable Timeouts - Prevents hanging on slow networks
- π Real-time Live Data - Active blocks still update every 30 seconds
- π Cross-Platform - Works seamlessly on macOS, Linux, and WSL
- πΎ Memory Efficient - Minimal resource usage with maximum information
- π TOML Configuration System - Modern structured configuration files
- π§ Rich CLI Tools - Generate, test, validate, and manage configurations
- ποΈ Feature Toggles - Enable/disable any display section via TOML
- π Environment Overrides -
ENV_CONFIG_*
variables for dynamic settings - π¨ Advanced Theme System - Theme inheritance, profiles, and custom color schemes
- π Live Configuration Reload - Hot reload with file watching capabilities
- β²οΈ Enhanced Timeout Controls - Comprehensive validation with contextual bounds checking
- π·οΈ Label Customization - Modify all display text and formats via TOML
- π Emoji Customization - Personalize status indicators
- β Configuration Validation - Built-in testing with auto-fix suggestions
The statusline features a revolutionary universal caching system that optimizes ALL external operations - not just API calls. This comprehensive system achieves 70-90% reduction in external command execution while maintaining real-time responsiveness for all operations.
Operation | Before | After | Reduction |
---|---|---|---|
command -v git |
Every execution | Session-wide cache | π 100% |
command -v claude |
Every execution | Session-wide cache | π 100% |
command -v jq |
Multiple calls per execution | Session-wide cache | π 100% |
command -v bunx |
Multiple calls per execution | Session-wide cache | π 100% |
Operation | Before | Cache Duration | Reduction |
---|---|---|---|
is_git_repository() |
Every call | 30 seconds | π 95%+ |
get_git_branch() |
Every call | 10 seconds | π 90%+ |
get_git_status() |
Every call | 5 seconds | π 80%+ |
git config --get |
Every call | 1 hour | π 98%+ |
git submodule status |
Every call | 5 minutes | π 95%+ |
Command | Before | Cache Duration | Reduction |
---|---|---|---|
claude --version |
1 hour | 15 minutes | π 83% |
claude mcp list |
30 seconds | 2 minutes | π 75% |
bunx ccusage 7day |
30 seconds | 1 hour | π 98% |
bunx ccusage 30day |
30 seconds | 2 hours | π 99% |
Operation | Before | After | Reduction |
---|---|---|---|
uname -s (OS Type) |
Every call | Session-wide cache | π 100% |
uname -m (Architecture) |
Every call | Session-wide cache | π 100% |
pwd results |
Every call | 5 seconds per directory | π 80%+ |
The system intelligently detects when Claude Code starts for the first time and forces a complete refresh of ALL cached operations. Subsequent statusline calls use the optimized cache durations for maximum performance.
# First startup: Forces refresh of ALL operations
[INFO] Universal cache module initialized
[INFO] Cache instance ID: 1001
[INFO] First startup detected for cache instance 1001
[INFO] Force refresh triggered for cache: cmd_exists_git
[INFO] Force refresh triggered for cache: git_is_repo
[INFO] Force refresh triggered for cache: claude_version
# Subsequent calls: Smart caching across all operations
[INFO] Using cached result: cmd_exists_git # Session-wide cache
[INFO] Using cached result: git_branch_main # 10-second cache
[INFO] Using cached result: claude_mcp_list # 2-minute cache
[INFO] Using cached result: external_claude_version # 6-hour cache
Revolutionary Results:
- 70-90% reduction in total external command execution
- Sub-50ms statusline responses (from 200-500ms)
- 100% reduction in command existence checks after first execution
- 95%+ reduction in git operations through intelligent caching
- Dramatically improved battery life on laptops
- Consistent performance regardless of system speed or network conditions
Before vs After:
# Before: Every statusline call
β command -v git # Expensive PATH lookup
β command -v claude # Expensive PATH lookup
β command -v jq # Expensive PATH lookup
β git rev-parse --is-inside-work-tree # File system check
β git branch # Git command execution
β claude --version # External command
β claude mcp list # Network-dependent command
# After: Intelligent caching
β Cached results used for 70-90% of operations
β Only refresh when actually needed
β Multi-instance safe with no race conditions
When running multiple Claude Code instances simultaneously, the system prevents race conditions with:
-
π·οΈ Instance-Specific Markers: Each Claude Code instance gets its own session marker
CLAUDE_INSTANCE_ID=DEV_001
β/tmp/.claude_statusline_session_DEV_001
CLAUDE_INSTANCE_ID=PROD_002
β/tmp/.claude_statusline_session_PROD_002
-
π Enhanced Locking: Cache files protected with:
- Atomic writes (temp file β rename)
- Retry logic with random backoff
- JSON integrity validation
- Orphaned lock cleanup
All cache files are stored in /tmp/.claude_statusline_cache/
with automatic cleanup:
# Universal cache directory structure
/tmp/.claude_statusline_cache/
βββ cmd_exists_git_12345.cache # Command existence (session-wide)
βββ cmd_exists_claude_12345.cache # Command existence (session-wide)
βββ git_is_repo_path_hash_12345.cache # Git repository check (30s cache)
βββ git_branch_repo_hash_12345.cache # Git branch name (10s cache)
βββ git_status_repo_hash_12345.cache # Git status (5s cache)
βββ external_claude_version_12345.cache # Claude version (6h cache)
βββ external_claude_mcp_list_12345.cache # MCP server list (2m cache)
βββ system_os_shared.cache # OS type (permanent)
βββ system_arch_shared.cache # Architecture (permanent)
βββ ccusage_*.cache # Cost tracking data
- π§Ή Automatic Cleanup: Old cache files and dead process locks removed
- π Integrity Validation: Corrupted cache files automatically regenerated
- βΎοΈ Graceful Degradation: Falls back to existing cache during high contention
Intelligent Organization:
- Instance-specific cache files prevent cross-contamination
- Shared system info cached once for all instances
- Automatic cleanup of old and orphaned cache files
- Path-based hashing ensures unique cache keys per directory
Cache File Types:
- Session-wide: Command existence, system info (never expire during session)
- Long-term: Version info, configuration (hours)
- Medium-term: Git repository data, MCP servers (minutes)
- Short-term: Git status, current directory (seconds)
Environment Variables:
# Control cache instance ID
CACHE_INSTANCE_ID=MY_DEV_SESSION ./statusline.sh
# Debug comprehensive caching behavior
STATUSLINE_DEBUG_MODE=true ./statusline.sh
# Monitor cache performance
./statusline.sh --cache-stats # View cache statistics
Cache Management Commands:
# Clear all cache files
rm -rf /tmp/.claude_statusline_cache/
# View cache files created
ls -la /tmp/.claude_statusline_cache/*.cache
# Monitor cache efficiency
STATUSLINE_DEBUG_MODE=true ./statusline.sh 2>&1 | grep "Using cached"
The ultra-comprehensive caching system transforms statusline performance:
- π 70-90% reduction in external command execution
- β‘ Sub-50ms responses (from 200-500ms)
- π Zero command existence lookups after first execution
- π‘οΈ Bulletproof multi-instance operation with no race conditions
- π Universal optimization covering ALL external operations
This system automatically adapts to your usage patterns while maintaining the responsiveness you expect from a real-time statusline.
The caching system automatically adapts to your usage patterns while maintaining the responsiveness you expect from a real-time statusline.
Transform your terminal aesthetic with our carefully crafted theme collection. Each theme is optimized for readability and visual appeal across different terminal environments.
Rich, warm colors inspired by the beloved Catppuccin palette. Perfect for dark mode enthusiasts.
TOML Configuration (Recommended):
# In your Config.toml file
theme.name = "catppuccin"
Environment Override:
# Temporary theme change
ENV_CONFIG_THEME=catppuccin ~/.claude/statusline.sh
CLI Generation:
# Generate Config.toml with catppuccin theme
~/.claude/statusline.sh --generate-config
# Then edit ~/.claude/statusline/Config.toml to set theme.name = "catppuccin"
Soft, pastel colors that create a gentle and soothing terminal environment. Ideal for extended coding sessions.
TOML Configuration (Recommended):
# In your Config.toml file
theme.name = "garden"
Environment Override:
# Temporary theme change
ENV_CONFIG_THEME=garden ~/.claude/statusline.sh
Traditional terminal colors with modern polish. ANSI-compatible and universally readable.
TOML Configuration (Recommended):
# In your Config.toml file
theme.name = "classic"
Environment Override:
# Temporary theme change
ENV_CONFIG_THEME=classic ~/.claude/statusline.sh
Complete creative control with full RGB/256-color/ANSI color customization capabilities.
TOML Configuration (Recommended):
# In your Config.toml file
theme.name = "custom"
# Define your custom color palette
colors.basic.red = "\\033[38;2;255;182;193m" # Soft pink
colors.basic.blue = "\\033[38;2;173;216;230m" # Light blue
colors.basic.green = "\\033[38;2;144;238;144m" # Light green
colors.basic.yellow = "\\033[38;2;255;165;0m" # Orange
colors.basic.magenta = "\\033[38;2;221;160;221m" # Plum
colors.basic.cyan = "\\033[38;2;175;238;238m" # Pale turquoise
colors.extended.orange = "\\033[38;2;255;140;0m"
colors.extended.light_gray = "\\033[38;2;211;211;211m"
colors.extended.purple = "\\033[38;2;147;112;219m"
Advanced Custom Configuration:
# Generate base config then customize
~/.claude/statusline.sh --generate-config MyTheme.toml
# Edit MyTheme.toml with your custom colors
~/.claude/statusline.sh --test-config MyTheme.toml
Clean repository with detailed branch and status information.
For users who want additional installation options, development features, or specific configuration control.
Choose your platform and install the required dependencies:
π macOS
# Install dependencies via Homebrew
brew install jq coreutils
# Install optional but recommended tools
npm install -g bunx ccusage
π§ Linux (Ubuntu/Debian)
# Install required dependencies
sudo apt update && sudo apt install jq
# Install optional but recommended tools
npm install -g bunx ccusage
πͺ Windows (WSL)
# Install required dependencies
sudo apt update && sudo apt install jq
# Install optional but recommended tools
npm install -g bunx ccusage
Our breakthrough v2.9.0 installer eliminates GitHub rate limits forever with intelligent 3-tier architecture and provides 100% download guarantee:
# π¦ PRODUCTION (Recommended for Most Users)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash
# π οΈ DEVELOPMENT (Stable Development Features)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/dev/install.sh | bash -s -- --branch=dev
# π DEV6 (Current Development - Settings.json Enhancement)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/dev6/install.sh | bash -s -- --branch=dev6
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/dev6/install.sh | bash -s -- --branch=dev6 --preserve-statusline
# π NIGHTLY (β οΈ Experimental - Advanced Users Only)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/nightly/install.sh | bash -s -- --branch=nightly
π Branch Descriptions:
- π¦ main: Stable releases (v2.9.0) - Perfect for production use
- π οΈ dev: Stable development features - Early access to tested improvements
- π dev6: Enhanced settings.json handling with unified backup strategy and
--preserve-statusline
option - π nightly: Bleeding-edge experimental features (v2.9.0-nightly-YYYYMMDD) - Community testing platform
# Enhanced dependency analysis
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash -s -- --check-all-deps
# Interactive installation menu
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash -s -- --interactive
# Full analysis with user menu
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash -s -- --check-all-deps --interactive
# Skip settings.json configuration (dev6 feature)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/dev6/install.sh | bash -s -- --branch=dev6 --preserve-statusline
π Revolutionary 3-Tier Download System Features
π― 3-Tier Architecture (v2.9.0):
- Tier 1: Direct Raw URLs β Unlimited requests, no API usage, fastest method (99% success rate)
- Tier 2: GitHub API Fallback β Optional token support (5,000/hour vs 60/hour)
- Tier 3: Comprehensive Retry β Exponential backoff with intelligent verification
π‘οΈ 100% Download Guarantee:
- Either all modules download successfully or clear failure with troubleshooting
- Zero intervention required for normal installations
- Enhanced error handling with actionable guidance
β‘ Smart System Detection:
- Automatically detects your OS and package manager (brew, apt, yum, dnf, pacman)
- Provides platform-specific installation commands
π Comprehensive Dependency Analysis:
curl
+jq
β Core installation and configurationbun/bunx
β Cost tracking with ccusage integrationbc
β Precise cost calculationspython3
β Advanced TOML features and date parsingtimeout/gtimeout
β Network operation protection
User-Friendly Options:
- Install now, upgrade later - Get 67-100% functionality immediately
- Show commands only - Copy-paste exact commands for your system
- Exit to install manually - For users who prefer full control
No Package Manager? No Problem:
- Homebrew installation guidance for macOS users
- Manual installation instructions for restricted environments
Quick Download & Inspect:
# Download and inspect before running
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh -o install.sh
chmod +x install.sh
# See all available options
./install.sh --help
# Run with your preferred mode
./install.sh --check-all-deps --interactive
Perfect for dotfiles management with GNU Stow:
# Place in your dotfiles structure
mkdir -p ~/.dotfiles/claude/.claude/
mkdir -p ~/.dotfiles/claude/.claude/lib/
# Download main script and all modules
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/statusline.sh -o ~/.dotfiles/claude/.claude/statusline.sh
chmod +x ~/.dotfiles/claude/.claude/statusline.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/core.sh -o ~/.dotfiles/claude/.claude/lib/core.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/security.sh -o ~/.dotfiles/claude/.claude/lib/security.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/config.sh -o ~/.dotfiles/claude/.claude/lib/config.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/themes.sh -o ~/.dotfiles/claude/.claude/lib/themes.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/git.sh -o ~/.dotfiles/claude/.claude/lib/git.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/mcp.sh -o ~/.dotfiles/claude/.claude/lib/mcp.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/cost.sh -o ~/.dotfiles/claude/.claude/lib/cost.sh
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/display.sh -o ~/.dotfiles/claude/.claude/lib/display.sh
# Deploy with Stow
cd ~/.dotfiles && stow claude
# Configure Claude Code (manual JSON editing)
# Add to ~/.claude/settings.json:
# "statusLine": {"type": "command", "command": "bash ~/.claude/statusline.sh"}
# Create Claude directory if it doesn't exist
mkdir -p ~/.claude/
# Download the main orchestrator script
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/statusline.sh -o ~/.claude/statusline.sh
chmod +x ~/.claude/statusline.sh
# Create lib directory and download all modules
mkdir -p ~/.claude/lib/
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/core.sh -o ~/.claude/lib/core.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/security.sh -o ~/.claude/lib/security.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/config.sh -o ~/.claude/lib/config.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/themes.sh -o ~/.claude/lib/themes.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/git.sh -o ~/.claude/lib/git.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/mcp.sh -o ~/.claude/lib/mcp.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/cost.sh -o ~/.claude/lib/cost.sh
curl -L https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/lib/display.sh -o ~/.claude/lib/display.sh
# Configure Claude Code (manual JSON editing)
# Add to ~/.claude/settings.json:
# "statusLine": {"type": "command", "command": "bash ~/.claude/statusline.sh"}
π‘ Why use the Enhanced Installer?
- Smart dependency analysis - Know exactly what features you'll get
- Platform-aware guidance - Tailored commands for your system
- Zero manual JSON editing - Automatic settings.json configuration
- User choice - Install now or install dependencies first
- Backward compatible - Existing workflow unchanged
Test your installation:
# Check if the statusline script and lib directory are present
ls -la ~/.claude/statusline.sh ~/.claude/lib/
# Verify Claude Code configuration (check settings.json)
cat ~/.claude/settings.json | jq '.statusLine'
# Test the statusline directly
~/.claude/statusline.sh --help
Skip this step if you want to use defaults - the statusline works immediately with beautiful built-in themes!
# Navigate to your preferred location
cd ~/ # or any project directory
# Generate Config.toml with current settings
~/.claude/statusline.sh --generate-config
# Customize your configuration
vim ~/.claude/statusline/Config.toml
# Test your new configuration
~/.claude/statusline.sh --test-config
# Change theme temporarily (no file needed)
ENV_CONFIG_THEME=garden ~/.claude/statusline.sh
# Or create a simple config file
cat > ~/.claude/statusline/Config.toml << 'EOF'
theme.name = "catppuccin"
features.show_commits = true
features.show_cost_tracking = true
EOF
# Test your theme
~/.claude/statusline.sh --test-config
Edit your comprehensive Config.toml directly - ALL settings included:
# Open your comprehensive configuration file (227 settings pre-filled!)
nano ~/.claude/statusline/Config.toml
# OR use your preferred editor
code ~/.claude/statusline/Config.toml
vim ~/.claude/statusline/Config.toml
# Edit any settings you want:
# - Change display.lines = 5 to any number 1-9
# - Edit display.line1.components array
# - Modify theme.name = "catppuccin" to "garden" or "classic"
# - Update any of the 227 settings!
# Test your configuration instantly
~/.claude/statusline.sh
Quick Component Arrangement Testing:
# Test different line counts instantly
ENV_CONFIG_DISPLAY_LINES=2 ~/.claude/statusline.sh # Minimal 2-line
ENV_CONFIG_DISPLAY_LINES=5 ~/.claude/statusline.sh # Standard 5-line
ENV_CONFIG_DISPLAY_LINES=7 ~/.claude/statusline.sh # Comprehensive 7-line
# Custom component arrangement on-the-fly
ENV_CONFIG_LINE1_COMPONENTS="mcp_status,prayer_times" \
ENV_CONFIG_LINE2_COMPONENTS="repo_info,model_info" \
~/.claude/statusline.sh
Your configuration is stored in a single, consistent location:
~/.claude/statusline/Config.toml
- Your configuration file (automatically created during installation)
π‘ Pro Tip: Start with
~/.claude/statusline.sh --generate-config
to create your base configuration, then customize from there!
Start a new Claude Code session to see your enhanced statusline in action! Your configuration will be automatically detected and applied.
Edit your ONE comprehensive Config.toml file to create any layout you want! No more confusion from 13 different example files. Bismillah!
Revolutionary Single Source System - All 227 settings in ONE place:
# Open your comprehensive configuration file (ALL settings included!)
nano ~/.claude/statusline/Config.toml
# OR use your favorite editor
code ~/.claude/statusline/Config.toml
vim ~/.claude/statusline/Config.toml
# Ultra-Minimal (1-line) - Just the essentials
ENV_CONFIG_DISPLAY_LINES=1 \
ENV_CONFIG_LINE1_COMPONENTS="repo_info,model_info" ./statusline.sh
# Essential Compact (3-line) - Clean and focused
ENV_CONFIG_DISPLAY_LINES=3 \
ENV_CONFIG_LINE1_COMPONENTS="repo_info,commits,version_info" \
ENV_CONFIG_LINE2_COMPONENTS="model_info,cost_repo,cost_live" \
ENV_CONFIG_LINE3_COMPONENTS="mcp_status" ./statusline.sh
# Standard Familiar (5-line) - Default comprehensive layout
ENV_CONFIG_DISPLAY_LINES=5 \
ENV_CONFIG_LINE1_COMPONENTS="repo_info,commits,submodules,version_info,time_display" \
ENV_CONFIG_LINE2_COMPONENTS="model_info,cost_repo,cost_monthly,cost_live" \
ENV_CONFIG_LINE3_COMPONENTS="mcp_status" \
ENV_CONFIG_LINE4_COMPONENTS="reset_timer" \
ENV_CONFIG_LINE5_COMPONENTS="prayer_times" ./statusline.sh
# Atomic Components (separate git data)
ENV_CONFIG_LINE1_COMPONENTS="repo_info,commits,submodules,version_info" \
ENV_CONFIG_LINE2_COMPONENTS="model_info,cost_monthly,cost_weekly,cost_daily" ./statusline.sh
- β No More Hunting - All 227 settings in ONE file, just edit values
- β Zero Confusion - No need to choose from 13 different config files
- β Complete Control - Edit display.lines, components, themes, everything
- β User-Friendly - Parameters pre-filled with sensible defaults
- β Maintainable - Single source of truth eliminates redundancy
- β
Environment Overrides - Still works for testing:
ENV_CONFIG_THEME=garden ./statusline.sh
# Demonstrates flexible component reordering and custom arrangements
cp ~/.claude/statusline/examples/Config.modular-custom.toml ~/.claude/statusline/Config.toml
- Components: MCP status first, prayer times second, creative mixing
- Layout: Shows complete flexibility of modular system
- Best for: Users who want personalized arrangements
# Test any modular example without copying
./statusline.sh --config examples/Config.modular-compact.toml
# Compare different layouts instantly
./statusline.sh --config examples/Config.modular-minimal.toml
./statusline.sh --config examples/Config.modular-comprehensive.toml
# Use environment variables for instant testing
ENV_CONFIG_DISPLAY_LINES=3 \
ENV_CONFIG_LINE1_COMPONENTS="repo_info,git_stats" \
ENV_CONFIG_LINE2_COMPONENTS="model_info,cost_repo" \
ENV_CONFIG_LINE3_COMPONENTS="mcp_status" \
./statusline.sh
Traditional configuration files for specific use cases:
# Base configuration template
cp examples/Config.base.toml Config.toml
# Advanced features showcase
cp examples/Config.advanced.toml Config.toml
# Islamic prayer times focused
cp examples/Config.prayer.toml Config.toml
# Professional work environment (in sample-configs/)
cp examples/sample-configs/work-profile.toml Config.toml
# Personal projects setup (in sample-configs/)
cp examples/sample-configs/personal-profile.toml Config.toml
# Power developer setup (in sample-configs/)
cp examples/sample-configs/developer-config.toml Config.toml
# Performance-optimized minimal setup (in sample-configs/)
cp examples/sample-configs/minimal-config.toml Config.toml
π‘ Pro Tip: Start with a modular example closest to your needs, then customize the
display.lineN.components
arrays to create your perfect layout!
Transform your statusline with the revolutionary single source configuration system. ONE comprehensive Config.toml file with all 227 settings - no more hunting for parameter names!
# 1. Install (creates comprehensive Config.toml automatically)
curl -fsSL https://raw.githubusercontent.com/rz1989s/claude-code-statusline/main/install.sh | bash
# 2. Edit your comprehensive Config.toml (ALL 227 settings included!)
nano ~/.claude/statusline/Config.toml
# 3. Start using your enhanced statusline!
~/.claude/statusline.sh
The statusline now uses a streamlined single source approach:
- Environment variables (
ENV_CONFIG_*
) - Temporary overrides for testing ~/.claude/statusline/Config.toml
- Your comprehensive configuration file (227 settings)- Auto-regeneration - If missing, copied from examples/Config.toml template
π― No More Configuration Hunting!
- β All 227 settings pre-filled in Config.toml
- β Just edit values, don't search for parameter names
- β No hardcoded defaults in code
- β No jq fallbacks to confuse you
# === THEME CONFIGURATION ===
theme.name = "catppuccin" # Options: classic, garden, catppuccin, custom
# === MODULAR DISPLAY CONFIGURATION ===
display.lines = 5 # Number of lines (1-9)
display.line1.components = ["repo_info", "commits", "submodules", "version_info", "time_display"]
display.line1.separator = " β "
display.line1.show_when_empty = true
# === FEATURE TOGGLES ===
features.show_commits = true
features.show_version = true
features.show_mcp_status = true
features.show_cost_tracking = true
# === DISPLAY LABELS ===
labels.commits = "Commits:"
labels.repo = "REPO"
labels.monthly = "30DAY"
labels.weekly = "7DAY"
# === TIMEOUTS & PERFORMANCE ===
# Enhanced validation with contextual bounds checking (v1.2+)
timeouts.mcp = "10s" # 1s-60s recommended, optimal: 3s-15s
timeouts.version = "2s" # 1s-10s recommended, optimal: 1s-3s
timeouts.ccusage = "8s" # 1s-30s recommended, optimal: 3s-10s
# === CUSTOMIZATION ===
emojis.opus = "π§ "
emojis.haiku = "β‘"
emojis.sonnet = "π΅"
emojis.clean_status = "β
"
labels.commits = "Commits:"
labels.repo = "REPO"
labels.mcp = "MCP"
# === CUSTOM THEME COLORS ===
theme.name = "custom"
colors.basic.red = "\\033[31m"
colors.basic.blue = "\\033[34m"
colors.basic.green = "\\033[32m"
colors.basic.yellow = "\\033[33m"
colors.extended.orange = "\\033[38;5;208m"
colors.extended.light_gray = "\\033[38;5;248m"
colors.extended.purple = "\\033[95m"
colors.extended.teal = "\\033[38;5;73m"
# === CONFIGURATION GENERATION ===
~/.claude/statusline.sh --generate-config # Create Config.toml from current settings
~/.claude/statusline.sh --generate-config MyTheme.toml # Generate custom config file
# === TESTING & VALIDATION ===
~/.claude/statusline.sh --test-config # Test current configuration
~/.claude/statusline.sh --test-config MyTheme.toml # Test specific config file
~/.claude/statusline.sh --test-config-verbose # Detailed testing output
~/.claude/statusline.sh --validate-config # Validate configuration with enhanced timeout bounds checking
# === COMPARISON & ANALYSIS ===
~/.claude/statusline.sh --compare-config # Compare inline vs TOML settings
# === LIVE CONFIGURATION RELOAD ===
~/.claude/statusline.sh --reload-config # Reload configuration now
~/.claude/statusline.sh --reload-interactive # Interactive config management menu
~/.claude/statusline.sh --watch-config 3 # Watch for changes every 3 seconds
# === MIGRATION & BACKUP ===
~/.claude/statusline.sh --backup-config backup-dir/ # Backup current configuration
~/.claude/statusline.sh --restore-config backup-dir/ # Restore from backup
# === HELP SYSTEM ===
~/.claude/statusline.sh --help # Complete help documentation with timeout guidance
~/.claude/statusline.sh --help config # Configuration-specific help
# === ADDITIONAL COMMANDS ===
~/.claude/statusline.sh # Run statusline with current configuration
π‘ Pro Tip: Use environment overrides for temporary configuration changes without modifying your Config.toml file.
Temporarily override any TOML setting with environment variables:
# === TEMPORARY THEME CHANGES ===
ENV_CONFIG_THEME=garden ~/.claude/statusline.sh # Use garden theme once
ENV_CONFIG_THEME=classic ~/.claude/statusline.sh # Use classic theme once
# === FEATURE OVERRIDES ===
ENV_CONFIG_SHOW_MCP_STATUS=false ~/.claude/statusline.sh # Disable MCP status
ENV_CONFIG_MCP_TIMEOUT=15s ~/.claude/statusline.sh # Increase MCP timeout (validated: 1s-60s)
# === PERFECT FOR CI/CD & AUTOMATION ===
ENV_CONFIG_SHOW_COST_TRACKING=false \
ENV_CONFIG_SHOW_RESET_INFO=false \
ENV_CONFIG_THEME=classic \
~/.claude/statusline.sh
# Use the actual modular-minimal example
cp ~/.claude/statusline/examples/Config.modular-minimal.toml ~/.claude/statusline/Config.toml
Key Features from Config.modular-minimal.toml
:
# Ultra-minimal 2-line layout
display.lines = 2
# Line 1: Repository and Model Only
display.line1.components = ["repo_info", "model_info"]
# Line 2: Session Cost Only
display.line2.components = ["cost_repo"]
# Only essentials enabled
components.repo_info.enabled = true
components.model_info.enabled = true
components.cost_repo.enabled = true
# Use the actual comprehensive example
cp ~/.claude/statusline/examples/Config.modular-comprehensive.toml ~/.claude/statusline/Config.toml
Key Features from Config.modular-comprehensive.toml
:
# Comprehensive 7-line layout
display.lines = 7
# Line 1: Islamic Prayer Times (Priority Display)
display.line1.components = ["prayer_times"]
# Lines 2-7: Strategic component arrangement
display.line2.components = ["repo_info", "commits", "submodules"]
display.line3.components = ["model_info", "version_info", "time_display"]
display.line4.components = ["cost_repo", "cost_live"]
display.line5.components = ["cost_monthly", "cost_weekly", "cost_daily"]
display.line6.components = ["mcp_status"]
display.line7.components = ["reset_timer"]
# Use the advanced features example
cp examples/Config.advanced.toml Config.toml
# Or use a sample-configs developer setup
cp examples/sample-configs/developer-config.toml Config.toml
Traditional feature-based configuration:
# Developer Config.toml with all features
theme.name = "catppuccin"
features.show_commits = true
features.show_version = true
features.show_mcp_status = true
features.show_cost_tracking = true
features.show_reset_info = true
timeouts.mcp = "10s" # Enhanced validation: 1s-60s range
timeouts.version = "2s" # Enhanced validation: 1s-10s range
timeouts.ccusage = "8s" # Enhanced validation: 1s-30s range
labels.commits = "Today's Commits:"
labels.mcp = "MCP Servers"
labels.repo = "Repository Cost"
# Use the minimal performance-focused setup
cp examples/sample-configs/minimal-config.toml Config.toml
Ultra-fast configuration for CI/CD and performance-critical environments:
# Minimal Config.toml for maximum speed
theme.name = "classic" # Maximum terminal compatibility
features.show_commits = true # Only essential commit tracking
features.show_version = false # Disable network calls for speed
features.show_mcp_status = false
features.show_cost_tracking = false
timeouts.mcp = "1s" # Ultra-fast timeouts
timeouts.version = "1s"
timeouts.ccusage = "1s"
labels.commits = "C:" # Minimal labels for speed
labels.repo = "R"
labels.monthly = "M"
cache.version_duration = 7200 # Extended 2-hour caching for performance
# Work environment - Professional setup
cp examples/sample-configs/work-profile.toml Config.toml
# Personal projects - Relaxed setup
cp examples/sample-configs/personal-profile.toml Config.toml
# Power developer - Maximum information display
cp examples/sample-configs/developer-config.toml Config.toml
# Performance focus - Ultra-fast execution
cp examples/sample-configs/minimal-config.toml Config.toml
# Prayer-focused configuration
cp examples/Config.prayer.toml Config.toml
π‘ Note: Profile-based automatic switching is planned for a future release. Currently, use different config files for different contexts.
Your existing inline configuration continues to work unchanged! When you're ready:
# 1. Generate TOML from your current inline settings
~/.claude/statusline.sh --generate-config
# 2. Compare to see the differences
~/.claude/statusline.sh --compare-config
# 3. Test the new TOML configuration
~/.claude/statusline.sh --test-config
# 4. Your inline config becomes the fallback
# TOML configuration takes precedence automatically
- π Complete Configuration Guide - Detailed TOML configuration reference
- π¨ Themes Guide - Theme creation and customization with TOML
- π Migration Guide - Step-by-step migration from inline configuration
- π§ CLI Reference - Complete command-line interface documentation
- β±οΈ Cache & Update Frequencies - Technical reference for cache durations and update intervals
- π Troubleshooting - TOML configuration troubleshooting
β‘ Pro Tip: Start with
~/.claude/statusline.sh --generate-config
to create your base Config.toml, then customize from there! Changes are validated automatically.
Understand every element of your enhanced statusline with this detailed breakdown:
~/local-dev (main) β
β Commits:0 β ver2.1.45 β SUB:β β π 08:22
- π Directory: Current working directory with elegant
~
notation - πΏ Git Branch: Active branch name with visual status indicators
- β
Status: Clean (β
) or dirty (
β οΈ ) repository state - π Commits: Today's commit count for productivity tracking
- π’ Version: Claude Code version (intelligently cached for performance)
- π¦ Submodules: Git submodule count (shows
β
when none) - π Time: Current system time for session awareness
π΅ Sonnet 4 β REPO $3.87 β 30DAY $108.81 β 7DAY $66.48 β DAY $9.35 β π₯ LIVE $6.74
- π΅ Model: Current Claude model with distinctive emoji indicator
- π REPO: Total cost for current repository session
- π 30DAY: Monthly spending total across all sessions
- π 7DAY: Weekly spending for budget tracking
- π DAY: Today's accumulated costs
- π₯ LIVE: Active billing block cost (when block is active)
Powered by ccusage for accurate cost monitoring
MCP (3/4): upstash-context-7-mcp, supabase-mcp-server, firecrawl-mcp, sqlscan-mcp
- π‘ Status Count: Connected servers vs total configured servers
- π Server List: Individual MCP server names
- π’ Connection Status: Color-coded health indicators
- π’ Connected: Server is healthy and responding
- π΄ Disconnected: Server is down or unreachable
- β‘ Real-time: Updates automatically as servers come online/offline
RESET at 11.00 (2h 37m left) # Normal countdown
RESET at 06.00 (waiting API response...) # API calculating projection
(Hidden when no active block) # No active billing block
- π Reset Time: When current 5-hour conversation block expires
- β³ Smart States: Three intelligent display modes:
- π Active Countdown:
(4h 15m left)
when projection data available - β³ API Processing:
(waiting API response...)
during calculation delays - π Hidden Display: Automatically hidden when no active block
- π Active Countdown:
- π― Enhanced Detection: Validates both block status and projection data
- π Context Aware: Handles API timing issues gracefully
We support all major Unix-like systems with comprehensive testing and optimization:
Platform | Support Level | Core Dependencies | Optional Tools |
---|---|---|---|
π macOS | β Full Support | jq coreutils |
bunx ccusage |
π§ Linux | β Full Support | jq |
bunx ccusage |
πͺ Windows WSL | β Full Support | jq |
bunx ccusage |
πͺ Windows Native | β Not Supported | N/A | Bash incompatible |
jq
- JSON processing and data parsing- macOS:
brew install jq
- Linux:
sudo apt install jq
orsudo yum install jq
- Purpose: Parse Claude Code JSON data and MCP server responses
- macOS:
bash
- Shell execution environment (v3.2+ with automatic upgrade to modern bash)git
- Version control integrationgrep
,sed
,date
- Text processing and utilitiestimeout
/gtimeout
- Command timeout management
π Revolutionary Bash Compatibility:
- Runtime Detection: Automatically finds and uses modern bash (4.0+) if available
- Compatibility Mode: Falls back gracefully for old bash versions
- Universal Support: Works across all system configurations without manual intervention
bunx
- Bun package runner for ccusage execution- Install:
npm install -g bunx
- Install:
ccusage
- Claude Code usage and cost monitoring- Install:
npm install -g ccusage
- Purpose: Real-time cost tracking and billing information
- Install:
- GNU Coreutils (macOS) - Enhanced command compatibility
- Install:
brew install coreutils
- Provides
gtimeout
and other GNU-style commands
- Install:
Tool | Minimum Version | Recommended | Notes |
---|---|---|---|
Bash | 3.2+ | 5.0+ | Universal compatibility - auto-detects modern bash |
jq | 1.5+ | 1.6+ | JSON processing performance |
Git | 2.0+ | 2.30+ | Modern git features |
Node.js | 16+ | 18+ | For ccusage integration |
π― Bash Compatibility Revolution:
- Automatic Detection: Runtime bash detection finds the best available bash version
- Universal Compatibility: Works on all Mac configurations (Apple Silicon, Intel, any package manager)
- Graceful Fallback: Compatibility mode for old bash versions (3.2+) with reduced functionality
- Zero Configuration: No manual shebang fixes needed - everything handled automatically
Verify your system is ready:
# Check core requirements
bash --version && echo "β
Bash OK" || echo "β Bash missing"
jq --version && echo "β
jq OK" || echo "β jq missing"
git --version && echo "β
Git OK" || echo "β Git missing"
# Check optional tools
bunx --version && echo "β
bunx OK" || echo "β οΈ bunx missing (install with: npm install -g bunx)"
ccusage --version && echo "β
ccusage OK" || echo "β οΈ ccusage missing (install with: npm install -g ccusage)"
- π¦ Installation Guide - Platform-specific setup instructions
- βοΈ Configuration Guide - Detailed customization options
- π¨ Themes Guide - Theme showcase and custom theme creation
- β±οΈ Cache & Update Frequencies - Technical reference for cache durations
- π Troubleshooting - Common issues and solutions
We welcome contributions from the community! π
Whether you're interested in:
- π Bug fixes and issue reports
- π‘ New features and enhancements
- π¨ Theme creation and design
- π Documentation improvements
- π§ͺ Testing and quality assurance
Please see our comprehensive CONTRIBUTING.md for detailed guidelines on:
- Development environment setup
- Code standards and testing requirements
- Pull request process and review workflow
- Community guidelines and project structure
# Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/claude-code-statusline.git
cd claude-code-statusline
# Install dependencies and verify setup
npm install
npm test
# Check our development roadmap
cat TODOS.md
Jazakallahu khairan for helping make this project better for the Claude Code community! π
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the amazing projects and communities that make this statusline possible:
- Claude Code - The revolutionary AI development tool that inspired this project
- ccusage - Excellent cost tracking and monitoring integration
- jq - Powerful JSON processing for data parsing
- Catppuccin - Beautiful color palette that inspired our Catppuccin theme
- Nerd Fonts - Icon fonts that enhance the visual experience
- Terminal Color Standards - ANSI, 256-color, and RGB color support communities
- GNU Stow - Elegant dotfiles management solution
- Bash - The shell that powers our cross-platform compatibility
- Git - Version control integration and repository monitoring
- Open Source Community - For fostering innovation and collaboration
- Terminal Enthusiasts - For pushing the boundaries of command-line aesthetics
- Claude Code Users - For feedback and feature requests that drive improvements
Love this project? Give it a star! β
π Report Bug β’ π‘ Request Feature β’ π Documentation β’ π¬ Discussions
Made with β€οΈ for the Claude Code community