Back to the catalog

statusline

Themeable status line for Claude Code — shows project name, git branch, context usage, model, rate limits, and session stats at a glance. Fo

Open source Open in the app JSON README (API)

About

Themeable status line for Claude Code — shows project name, git branch, context usage, model, rate limits, and session stats at a glance. Four built-in themes (powerline, minimal, compact, full), three detail levels, and custom theme support. Like zsh themes for your AI coding sessions.

Details

Kind
Plugins
Topic
Version control
Publisher
dan1d
Origin
marketplace
Category
ferramentas
Last push
2026-04-12T18:31:55Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-30 01:48:58
Updated
2026-08-30 01:48:58
Origin id
dan1d/statusline/statusline

README

# statusline

**Stop guessing which project you're in.** When you're running 5+ Claude Code sessions across different repos, every tab looks the same. You waste time clicking through tabs trying to find the right one, or worse — you start coding in the wrong project.

`statusline` puts a persistent, color-coded status bar at the bottom of every Claude Code session showing exactly where you are and what's happening.

![demo](demo/demo.gif)

## The problem

Claude Code's default UI doesn't show which project or repo you're working in. When you're deep in a session, you can't tell at a glance:

- Which repo am I in?
- Is this branch dirty?
- How much context window is left?
- Am I about to hit my rate limit?
- How many lines has Claude changed this session?

This plugin solves all of that with a single glance.

## Install

```bash
# Add the marketplace (one-time)
claude plugins marketplace add dan1d/claude-marketplace

# Install the plugin
claude plugins install statusline@dan1d
```

Then run `/statusline:setup` inside Claude Code to activate the status line.

## What you get

```
❯ my-project │ main ✗ │ ctx:47% │ Opus 4.6 │ session +1410/-68 │ uncommitted +23/-5 │ time 42m │ 5h quota 49% resets ~2h38m │ 7d quota 64%
```

At a glance: project name, branch with dirty indicator, context usage, model, lines changed, uncommitted diff, session duration, and quota usage with reset countdowns.

## Themes

Four built-in themes — switch anytime with `/statusline:sl <theme>`:

### powerline (default)
```
❯ my-project │ main ✗ │ ctx:70% │ Opus 4.6 │ session +1410/-68 │ time 42m │ 5h quota 49% resets ~2h38m
```

### minimal
```
my-project main ✗ rate 5h:49%
```

### compact
```
my-project (main ✗) · 70% ctx · rate 5h:49%
```

### full
```
r1:~/projects/my-project main ✗ ctx:70% Opus 4.6 rate 5h:49% ~2h38m lines +1410/-68 time 42m
```

## Detail levels

Control how much info you see. Default is `high`.

| Level      | What's shown |
|------------|--------------|
| **low**    | Project name, branch, dirty indicator (✗) |
| **medium** | + context %, model, cost or rate limit |
| **high**   | + session lines, uncommitted diff, duration, todos, quota resets |

## Metrics

| Metric | Description |
|--------|-------------|
| **Project name** | Git repo name or directory basename |
| **Branch + dirty** | Current branch with red ✗ for uncommitted changes |
| **Context %** | How much context window is consumed |
| **Model** | Active model (Opus 4.6, Sonnet, etc.) |
| **Session lines** | Lines added/removed by Claude this session |
| **Uncommitted diff** | Lines in your uncommitted git changes |
| **Duration** | Session wall-clock time |
| **Quota (5h/7d)** | Rolling rate limit usage with reset countdown |
| **Session cost** | USD spent (API billing users only) |
| **Todos** | Active todo count |

### Smart billing detection

The plugin auto-detects subscription vs API billing:

- **Max plan subscribers** see rate limit quotas with reset countdowns
- **API billing users** see session cost in USD

Rate limits are color-coded: gray (< 60%), orange (60-79%), red (80%+).

## Switch on the fly

```
/statusline:sl powerline        # switch theme
/statusline:sl high             # switch detail level
/statusline:sl minimal low      # switch both
/statusline:sl                  # preview all themes
```

Or edit `~/.claude/statusline-config.json` directly — changes apply immediately.

## Custom themes

Create `~/.claude/statusline-themes/mytheme.js`:

```js
'use strict';

function render(data) {
  // data.project, data.branch, data.dirty (' ✗' or '')
  // data.model, data.contextUsedPct, data.detail
  // data.isSubscription, data.costUsd, data.rateLimit5h, data.rateLimit7d
  // data.resetIn5h, data.resetIn7d (seconds)
  // data.linesAdded, data.linesRemoved (session totals)
  // data.diffAdded, data.diffRemoved (uncommitted git diff)
  // data.durationMs, data.todoCount
  // data.user, data.cwd, data.raw (full JSON from Claude Code)

  return `${data.project} [${data.branch}${data.dirty}]`;
}

module.exports = { render };
```

Then `/statusline:sl mytheme` to activate.

## Uninstall

```
/statusline:setup uninstall
```

## License

[MIT](LICENSE)

More