ccstatusline
RepositoryFree🚀 Beautiful highly customizable statusline for Claude Code CLI with powerline support, themes, and more.
Capabilities13 decomposed
widget-based status line composition with modular data rendering
Medium confidenceImplements a pluggable widget architecture where each status line element (model info, git status, token usage, session duration) is a discrete, composable component that processes JSON input from Claude Code CLI and renders formatted output. Widgets are registered in a central registry, executed sequentially, and their outputs are combined with configurable separators (including Powerline arrow glyphs) to produce multi-segment status lines. The system supports up to 3 independent status lines with different widget configurations per line.
Uses a declarative widget registry pattern where widgets are registered with input/output schemas and executed in a pipeline, enabling runtime composition without code changes. Supports Powerline font integration natively with fallback separators, and allows widgets to declare dependencies on external data sources (git, shell commands) that are resolved at render time.
More modular than hardcoded status line formatters because widgets are independently testable and composable; more flexible than simple template systems because widgets can execute arbitrary logic and fetch live data.
interactive tui-based configuration with real-time preview
Medium confidenceProvides a React/Ink-based terminal UI that allows users to interactively select widgets, configure their properties, choose color themes, and preview the resulting status line in real-time without restarting Claude Code. The TUI reads the current configuration, renders interactive screens for widget selection and property editing, and persists changes back to ~/.claude/settings.json. Configuration changes are immediately reflected in the preview pane, enabling iterative customization.
Uses React/Ink to render an interactive terminal UI with live preview of status line changes, allowing users to see formatting, colors, and widget output in real-time before persisting configuration. Integrates directly with Claude Code's settings file format, automatically registering the status line hook during configuration.
More user-friendly than manual JSON editing because it provides visual feedback and validation; more powerful than simple CLI prompts because it supports complex multi-step configuration with preview.
configuration persistence and claude code settings integration
Medium confidenceManages configuration persistence by reading from and writing to ~/.claude/settings.json, the standard Claude Code configuration file. The system validates configuration against a schema, handles version migrations, and automatically registers the ccstatusline status line hook in Claude Code's settings. Configuration changes made in the TUI are immediately persisted, and Claude Code reads the updated configuration on the next execution. Supports configuration backup and rollback.
Directly integrates with Claude Code's native settings file format, automatically registering the status line hook without requiring manual configuration. Validates configuration against a schema and handles version migrations transparently.
More seamless than external configuration files because it uses Claude Code's native settings; more reliable than environment variables because configuration is persisted and version-controlled.
stdin-based json input processing with schema validation
Medium confidenceProcesses JSON input from Claude Code CLI via stdin, parsing the payload and validating it against a predefined schema to ensure required fields are present. The system handles malformed JSON gracefully, providing error messages without crashing. Supports multiple JSON payload formats (different Claude Code versions) through schema versioning. Input validation ensures that widgets receive correctly-typed data and can fail fast on invalid input.
Implements schema-based validation of Claude Code JSON payloads with support for multiple schema versions, enabling graceful handling of different Claude Code versions without code changes. Validates input before passing to widgets, ensuring data consistency.
More robust than unvalidated JSON parsing because it catches malformed input early; more flexible than hardcoded field access because schema versioning supports format evolution.
custom widget development framework with typescript support
Medium confidenceProvides a framework for developing custom widgets by implementing a standard widget interface (input/output types, render method, configuration schema). Widgets are written in TypeScript, compiled to JavaScript, and registered in the widget registry. The framework provides utilities for common tasks (color formatting, text truncation, number formatting) and handles widget lifecycle (initialization, configuration validation, rendering). Custom widgets can be packaged as npm modules or included inline in the configuration.
Provides a TypeScript-based widget framework with a standard interface, utilities for common formatting tasks, and a registry system for dynamic widget loading. Supports both inline widget definitions and npm module packages.
More extensible than hardcoded widgets because custom widgets can be developed independently; more developer-friendly than shell-based extensions because it provides TypeScript types and utilities.
git repository status integration with branch and diff metrics
Medium confidenceIntegrates with local git repositories to extract and display real-time metrics including current branch name, commit status (staged/unstaged changes), ahead/behind commit counts relative to upstream, and repository state (clean/dirty). The git widget executes git commands (git rev-parse, git status, git rev-list) to gather this data and formats it with customizable separators and color coding based on repository state. Supports both short and long format output.
Executes git commands directly to fetch live repository state rather than parsing git config files, enabling real-time tracking of branch changes, staged/unstaged modifications, and upstream divergence. Caches git command results within a single render cycle to avoid redundant executions.
More accurate than parsing .git/HEAD files because it uses official git commands; more efficient than full git status parsing because it only executes commands for enabled metrics.
token usage and model information display from claude code session data
Medium confidenceExtracts and formats token usage metrics (input tokens, output tokens, total tokens) and model information (model name, version) from JSON data passed by Claude Code CLI via stdin. The widget parses the JSON payload, calculates token statistics, and formats them with optional unit suffixes (K for thousands) and color coding based on token thresholds. Supports displaying cumulative session tokens or per-request token counts.
Parses Claude Code's native JSON status payload to extract token and model data, avoiding the need for external API calls or log parsing. Supports configurable formatting (e.g., '12.5K tokens' vs '12500 tokens') and color thresholds based on token consumption patterns.
More reliable than parsing Claude Code logs because it uses official JSON data; more efficient than querying the API separately because it uses data already provided by Claude Code.
session duration and elapsed time calculation with custom formatting
Medium confidenceCalculates and displays elapsed time since the Claude Code session started, parsing session start timestamps from JSON input and formatting the duration in human-readable units (seconds, minutes, hours, days). The widget supports multiple format options including compact (1h 23m), verbose (1 hour 23 minutes), and numeric (1:23:45) formats. Updates in real-time as the session progresses without requiring external time sources.
Calculates elapsed time client-side from session start timestamp without requiring external time services, enabling accurate duration display even in offline environments. Supports multiple human-readable format options and can apply color coding based on session duration thresholds.
More accurate than shell-based duration calculation because it uses precise timestamps from Claude Code; more flexible than hardcoded time formats because it supports multiple output styles.
jsonl transcript processing and session analysis metrics
Medium confidenceParses JSONL (JSON Lines) transcript files from Claude Code sessions to extract and display aggregate metrics such as total messages, conversation turns, message length statistics, and custom metrics derived from transcript analysis. The widget reads JSONL files line-by-line, parses each JSON object, and computes statistics without loading the entire file into memory. Supports filtering transcripts by date range or message type.
Implements streaming JSONL parsing to avoid loading entire transcript files into memory, enabling analysis of large conversation histories. Supports custom metric extraction via widget configuration, allowing users to define which transcript fields to aggregate without code changes.
More efficient than loading entire transcripts into memory because it uses line-by-line streaming; more flexible than hardcoded metrics because users can define custom aggregations.
shell command execution and output integration for custom metrics
Medium confidenceExecutes arbitrary shell commands and captures their output to display custom metrics in the status line. The widget spawns a subprocess, runs the configured command, captures stdout, and formats the output with optional text transformation (trimming, truncation, case conversion). Supports environment variable substitution in command strings and timeout handling for long-running commands. Output is cached within a single render cycle to avoid redundant executions.
Provides a generic shell command execution widget that allows users to integrate any external tool or script without writing custom widget code. Includes output caching within render cycles and environment variable substitution, enabling dynamic command construction.
More flexible than hardcoded integrations because any shell command can be executed; more powerful than simple environment variable display because commands can perform computation and transformation.
powerline font support with fallback separator rendering
Medium confidenceIntegrates Powerline font glyphs (Unicode arrows and separators) for visually distinctive status line segments, with automatic fallback to ASCII separators for terminals that don't support Unicode. The rendering system detects terminal capabilities and selects appropriate separator characters (e.g., U+E0B0 powerline right arrow vs '>' for ASCII). Supports both left-to-right and right-to-left separator styles with configurable colors and background styling.
Automatically detects terminal Unicode support and falls back to ASCII separators without user configuration, enabling Powerline appearance on capable terminals while maintaining compatibility with minimal environments. Supports both Powerline arrow glyphs and custom separator characters with full color styling.
More user-friendly than requiring manual font configuration because it auto-detects capabilities; more visually polished than plain ASCII separators while maintaining backward compatibility.
multi-line status line configuration with independent widget layouts
Medium confidenceSupports configuring up to 3 independent status lines, each with its own widget composition, layout, and styling. The rendering system processes each configured line separately, allowing different widgets and separators per line. Lines can be positioned at different locations in the terminal (top, middle, bottom) and styled independently. Configuration is stored as an array of line configurations, each specifying widgets, separators, and formatting options.
Allows independent configuration of up to 3 status lines, each with separate widget lists and styling, enabling hierarchical organization of status information. Each line is rendered independently, allowing different update frequencies or data sources per line.
More flexible than single-line status displays because information can be organized hierarchically; more powerful than simple multi-segment lines because each line can have completely different widgets and styling.
theme system with predefined color schemes and custom color configuration
Medium confidenceProvides a theme system with predefined color schemes (dark, light, solarized, etc.) that define colors for widgets, separators, and status indicators. Themes are stored as JSON objects mapping semantic color names (e.g., 'success', 'warning', 'error') to ANSI color codes or 24-bit RGB values. Users can select a predefined theme or create custom themes by overriding color values. The rendering system applies theme colors to all widgets and separators during output generation.
Implements a semantic color system where themes map logical color names (success, warning, error) to actual ANSI/RGB values, enabling consistent theming across widgets without hardcoding colors. Supports both predefined themes and custom color overrides.
More maintainable than hardcoded widget colors because themes centralize color definitions; more flexible than single-color schemes because semantic colors enable context-aware styling.
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with ccstatusline, ranked by overlap. Discovered automatically through the match graph.
Chat for Claude Code
Beautiful Claude Code Chat Interface for VS Code
@waniwani/sdk
WaniWani SDK - MCP event tracking, widget framework, and tools
core
A framework helps you quickly build AI Native IDE products. MCP Client, supports Model Context Protocol (MCP) tools via MCP server.
Mods
Pipe CLI output through AI models.
Claude Code Assistant for VSCode
Unofficial integration of Anthropic's Claude Code AI assistant into VSCode
claude-devtools
The missing DevTools for Claude Code — inspect session logs, tool calls, token usage, subagents, and context window in a visual UI. Free, open source.
Best For
- ✓Claude Code CLI users who want rich terminal status displays
- ✓developers building custom monitoring dashboards for AI coding sessions
- ✓teams standardizing status line appearance across development environments
- ✓non-technical users who prefer interactive configuration over JSON editing
- ✓developers iterating on status line appearance during development
- ✓teams onboarding new developers who need guided configuration
- ✓Claude Code CLI users who want persistent status line customization
- ✓teams managing configuration across multiple developer machines
Known Limitations
- ⚠Widget execution is synchronous — slow data sources (external API calls) block the entire status line render
- ⚠No built-in caching mechanism for expensive widget computations between renders
- ⚠Widget output is text-only; no support for inline images or complex terminal graphics
- ⚠TUI requires a terminal that supports React/Ink rendering (no web UI alternative)
- ⚠Complex nested widget configurations may be difficult to navigate in the TUI
- ⚠Preview may not perfectly match actual Claude Code rendering due to terminal capability differences
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Last commit: Apr 21, 2026
About
🚀 Beautiful highly customizable statusline for Claude Code CLI with powerline support, themes, and more.
Categories
Alternatives to ccstatusline
Are you the builder of ccstatusline?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →