2025-08-08 07:20:28 -04:00
2025-08-08 07:20:28 -04:00
2025-08-08 07:20:28 -04:00
2025-08-08 07:20:28 -04:00
2025-08-08 07:20:28 -04:00
2025-08-08 07:20:28 -04:00

ccstatusline

🎨 A highly customizable status line formatter for Claude Code CLI that displays model info, git branch, token usage, and other metrics in your terminal.

Demo

Features

  • 📊 Real-time Metrics - Display model name, git branch, token usage, session duration, and more
  • 🎨 Fully Customizable - Choose what to display and customize colors for each element
  • 📐 Multi-line Support - Configure up to 3 independent status lines
  • 🖥️ Interactive TUI - Built-in configuration interface using React/Ink
  • 🚀 Cross-platform - Works seamlessly with both Bun and Node.js
  • 📏 Smart Width Detection - Automatically adapts to terminal width with flex separators
  • Zero Config - Sensible defaults that work out of the box

🚀 Quick Start

No installation needed! Use directly with npx:

# Run the configuration TUI
npx ccstatusline@latest

Configure ccstatusline

The interactive configuration tool provides a terminal UI where you can:

  • Configure up to 3 separate status lines
  • Add/remove/reorder status line items
  • Customize colors for each element
  • Configure flex separator behavior
  • Edit custom text items
  • Install/uninstall to Claude Code settings
  • Preview your status line in real-time

💡 Tip: Your settings are automatically saved to ~/.config/ccstatusline/settings.json

📖 Usage

Once configured, ccstatusline automatically formats your Claude Code status line. The status line appears at the bottom of your terminal during Claude Code sessions.

📊 Available Status Items

  • Model Name - Shows the current Claude model (e.g., "Claude 3.5 Sonnet")
  • Git Branch - Displays current git branch name
  • Git Changes - Shows uncommitted insertions/deletions (e.g., "+42,-10")
  • Session Clock - Shows elapsed time since session start (e.g., "2hr 15m")
  • Version - Shows Claude Code version
  • Tokens Input - Shows input tokens used
  • Tokens Output - Shows output tokens used
  • Tokens Cached - Shows cached tokens used
  • Tokens Total - Shows total tokens used
  • Context Length - Shows current context length in tokens
  • Context Percentage - Shows percentage of context limit used
  • Terminal Width - Shows detected terminal width (for debugging)
  • Custom Text - Add your own custom text to the status line
  • Custom Command - Execute shell commands and display their output (refreshes every 5 seconds)
  • Separator - Visual divider between items (customizable: |, -, comma, space)
  • Flex Separator - Expands to fill available space

⌨️ TUI Controls

Main Menu

  • ↑↓ - Navigate menu items
  • Enter - Select item
  • Ctrl+C - Exit

Line Editor

  • ↑↓ - Select item
  • ←→ - Change item type
  • Enter - Enter move mode (reorder items)
  • a - Add item at end
  • i - Insert item before selected
  • d - Delete selected item
  • c - Clear entire line
  • r - Toggle raw value mode (no labels)
  • e - Edit value (for custom-text and custom-command items)
  • Space - Change separator character (for separator items)
  • ESC - Go back

Color Configuration

  • ↑↓ - Select item
  • Enter - Cycle through colors
  • ESC - Go back

Flex Options

Configure how flex separators calculate available width:

  • Full width always - Uses full terminal width (may wrap with auto-compact message)
  • Full width minus 40 - Leaves space for auto-compact message (default)
  • Full width until compact - Switches based on context percentage threshold

🔤 Raw Value Mode

Some items support "raw value" mode which displays just the value without a label:

  • Normal: Model: Claude 3.5 Sonnet → Raw: Claude 3.5 Sonnet
  • Normal: Session: 2hr 15m → Raw: 2hr 15m
  • Normal: Ctx: 18.6k → Raw: 18.6k

🔧 Custom Widgets

Custom Text Widget

Add static text to your status line. Perfect for:

  • Project identifiers
  • Environment indicators (dev/prod)
  • Personal labels or reminders

Custom Command Widget

Execute shell commands and display their output dynamically:

  • Refreshes automatically every 5 seconds
  • Displays command output inline in your status line
  • Examples:
    • pwd | xargs basename - Show current directory name
    • node -v - Display Node.js version
    • git rev-parse --short HEAD - Show current commit hash
    • date +%H:%M - Display current time
    • curl -s wttr.in?format="%t" - Show current temperature

⚠️ Note: Commands should complete quickly (<1s) to avoid delays. Long-running commands will be killed after timeout.

✂️ Smart Truncation

When terminal width is detected, status lines automatically truncate with ellipsis (...) if they exceed the available width, preventing line wrapping.

🛠️ Development

Prerequisites

  • Bun (v1.0+)
  • Git
  • Node.js 18+ (optional, for npm publishing)

Setup

# Clone the repository
git clone https://github.com/yourusername/ccstatusline.git
cd ccstatusline

# Install dependencies
bun install

Development Commands

# Run in TUI mode (configuration)
bun run src/ccstatusline.ts

# Build for distribution
bun run build

📁 Project Structure

ccstatusline/
├── src/
│   ├── ccstatusline.ts     # Main entry point
│   ├── tui.tsx             # React/Ink configuration UI
│   ├── config.ts           # Settings management
│   └── claude-settings.ts  # Claude Code settings integration
├── dist/                   # Built files (generated)
├── package.json
├── tsconfig.json
└── README.md

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

MIT © Matthew Breedlove

👤 Author

Matthew Breedlove

🙏 Acknowledgments

  • Built for use with Claude Code CLI by Anthropic
  • Powered by Ink for the terminal UI
  • Made with ❤️ for the Claude Code community

npm version License

S
Description
🚀 Beautiful highly customizable statusline for Claude Code CLI with powerline support, themes, and more.
Readme MIT
8.8 MiB
Languages
TypeScript 98.1%
JavaScript 1.9%