Skip to content
Productivity
Skill

/webup-statusline

Generate and install a custom Claude Code status line with selectable columns (model, context, effort level, git, dir, worktree, vim) and a color theme. Context and effort elements color-change based on level. Triggers on "status line", "statusline", "customize status", "status

BOOST
From plugin
skills-cc
1342 skills
Install
$ npx -y skills add webup/skills-cc --skill webup-statusline --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/webup-statusline

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate and install a custom Claude Code status line with selectable columns (model, context, effort level, git, dir, worktree, vim) and a color theme. Context and effort elements color-change based on level. Triggers on "status line", "statusline", "customize status", "status

SKILL.md

webup-statusline.SKILL.md
name: webup-statusline
description: Generate and install a custom Claude Code status line with selectable columns (model, context, effort level, git, dir, worktree, vim) and a color theme. Context and effort elements color-change based on level. Triggers on "status line", "statusline", "customize status", "status bar", "effort level display", "状态栏", "ステータスライン", or similar.

Status Line Generator

Generate a custom Claude Code status line script with your choice of columns and a color theme. Installs directly to `~/.claude/settings.json`.

How It Works

Claude Code supports custom status lines via a shell script configured in `~/.claude/settings.json`. The script receives session JSON on stdin (model, context window, workspace, vim, worktree, etc.) and prints formatted text to stdout.

This skill generates a bash script tailored to your preferences and installs it automatically.

Script Directory

**Important**: All scripts are located in the `scripts/` subdirectory of this skill.

**Agent Execution Instructions**: 1. Determine this SKILL.md file's directory path as `SKILL_DIR` 2. Script path = `${SKILL_DIR}/scripts/<script-name>.mjs` 3. Replace all `${SKILL_DIR}` in this document with the actual path

**Script Reference**: | Script | Purpose | |--------|---------| | `scripts/generate.mjs` | Generate and install status line script from chosen options |

Prerequisites

  • **jq** — required by the generated status line script to parse JSON input from Claude Code. On Windows, the script auto-detects jq installed via WinGet or scoop; if jq is still not found, add its directory to your PATH manually.
  • **Bun** — required to run the generator. Use `npx -y bun` if not installed globally.

Usage

# Preview generated script
npx -y bun ${SKILL_DIR}/scripts/generate.mjs --elements model,context,effort,git,dir --theme gruvbox

# Generate and install
npx -y bun ${SKILL_DIR}/scripts/generate.mjs --elements model,context,effort,git,dir --theme dracula --install

Options

| Flag | Default | Description | |------|---------|-------------| | `--elements <list>` | `model,context,cost,effort,style,git,dir` | Comma-separated columns to display | | `--theme <name>` | `gruvbox` | Color theme — see table below | | `--effort-icon <preset>` | `arrow` (`↯`) for iconic themes, none otherwise | Override the effort prefix icon. Presets: `arrow`, `bolt`, `flash`, `reason`, `dot`, `none`. A raw character is also accepted. | | `--install` | off | Write script to `~/.claude/scripts/statusline.sh` and update `settings.json` |

Columns

| Column | Description | Data source | |--------|-------------|-------------| | `model` | Active model name (e.g. "Opus 4.7") | `model.display_name` | | `context` | Progress bar + percentage — **color changes with remaining capacity** | `context_window.remaining_percentage` | | `cost` | Session API spend formatted as `$X.XX` in gold — hidden when rounds to `$0.00` | `cost.total_cost_usd` from input JSON | | `effort` | Reasoning effort level — **color changes with level** | `effortLevel` in `~/.claude/settings.local.json` → `~/.claude/settings.json` | | `style` | Output style name (e.g. Explanatory, Learning) — hidden when "default" | `output_style.name` from input JSON | | `git` | Git branch name (yellow when dirty) | `worktree.branch` → git CLI | | `dir` | Repo basename (original repo when in a worktree) | `worktree.original_repo_dir` → `workspace.current_dir` | | `worktree` | Bold `worktree:<id>` label (hidden outside a worktree) | `worktree.name` → parent-dir basename via git CLI | | `vim` | Vim mode indicator (hidden when inactive) | `vim.mode` |

Color-changing elements

**`context`** — bar fill + percentage color scale with remaining capacity:

| Remaining | Color | Meaning | |-----------|-------|---------| | > 50% | green | plenty of context | | 20–50% | yellow | watch out | | < 20% | red | nearly full — compact soon |

**`effort`** — value + optional prefix icon color by level:

| Level | Color | |-------|-------| | `max`, `xhigh`, `high` | **bold red** | | `medium` | yellow | | `low`, `xlow`, `minimal` | green | | other / unset | dim (or hidden when completely unset) |

Themes

| Theme | Vibe | Icons rendered in bar | |-------|------|------------------------| | `gruvbox` | Warm retro, muted | `✦` model · `↯` effort · `❋` style · `⌂` dir · `⊕` worktree · `⎇` git · `⌨` vim | | `dracula` | Modern dark, high saturation | `◈` model · `↯` effort · `❋` style · `⌂` dir · `⊕` worktree · `⎇` git · `⌨` vim | | `robbyrussell` | Classic oh-my-zsh | no prefix icons — colors + labels only | | `minimal` | Default terminal colors | no prefix icons — plain text |

The `context` column intentionally skips a prefix icon — the colored progress bar is already visually rich. The `effort` prefix (`↯`) is baked into iconic themes and can be overridden with `--effort-icon`.

Effort icons

Pass `--effort-icon <preset>` to swap the glyph in front of the effort value. Presets:

| Preset | Glyph | Notes | |--------|-------|-------| | `arrow` | `↯` | Electric arrow — **default**, narrow | | `bolt` | `ϟ` | Greek koppa — narrow lightning | | `flash` | `⚡` | Classic lightning — wide in emoji-presentation fonts | | `reason`| `∴` | Therefore | | `dot` | `◉` | Filled circle | | `none` | (hidden) | Drop the icon entirely |

You can also pass any raw character as `--effort-icon <char>`.

**Worktree behavior**: When inside a git worktree (detected via the input JSON's `worktree.*` fields or via `git rev-parse --git-common-dir` fallback), the `worktree` column shows a bold `worktree:<id>` label using the parent dir name (e.g. `~/.codex/worktrees/46a6/clawmaster` → `worktree:46a6`). The `git` column prefers `worktree.branch` from the input JSON; the `dir` column prefers `worktree.original_repo_dir` so the repo identity stays stable across worktrees.

Invocation

This skill can be invoked with or without arguments:

  • **No args** (`/webup-statusline`): Interactive pr
Read more
Ships withskills-cc

Claude Code utility skills for customization and hacks.

Get the whole plugin
Stats
134
Stars
6
Forks
Maintained
Maintenance
JavaScript
Language
3mo ago
Last commit
6mo ago
Created
9h ago
Added

Repo: webup/skills-cc

Other skills on skills-cc.