webup-buddy-reroll
Reroll Claude Code /buddy companion to a target species and rarity, or rename/customize companion name and personality. Triggers…
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
$ npx -y skills add webup/skills-cc --skill webup-statusline --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/webup-statuslineContext 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
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.
Generate a custom Claude Code status line script with your choice of columns and a color theme. Installs directly to `~/.claude/settings.json`.
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.
**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 |
# 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| 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` |
| 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` |
**`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) |
| 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`.
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.
This skill can be invoked with or without arguments:
Reroll Claude Code /buddy companion to a target species and rarity, or rename/customize companion name and personality. Triggers…