webup-statusline について
Claude Code 用のステータスラインスクリプトを生成し、インストールするスキルです。列とテーマを選び、ターミナルでセッション、コンテキスト、Git の情報を確認できます。
主な機能
- 01表示する列の選択
- 024 種類のカラーテーマ
- 03残りコンテキスト量の色分け
- 04モデル、コスト、Git 情報の表示
- 05Bash スクリプトの生成とインストール
活用シーン
- 01セッションの残りコンテキスト確認
- 02ステータスラインでモデルと費用を表示
- 03現在のブランチとワークツリーの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ webup/ skills-cc --skill webup-statuslineインストール後、Claude Code で/webup-statuslineを入力して読み込まれたか確認します。
同梱ファイルscripts/generate.mjs
詳細
ステータスラインジェネレーター
表示する列とカラーテーマを選んで、Claude Code のカスタムステータスラインスクリプトを生成します。~/.claude/settings.json に直接インストールします。
仕組み
Claude Code は、~/.claude/settings.json で設定したシェルスクリプトを使って、カスタムステータスラインを表示できます。スクリプトは標準入力からセッションの JSON(モデル、コンテキストウィンドウ、ワークスペース、vim、worktree など)を受け取り、整形したテキストを標準出力に出力します。
このスキルは、ユーザーの希望に合わせて bash スクリプトを生成し、自動的にインストールします。
スクリプトディレクトリ
重要:すべてのスクリプトは、このスキルの scripts/ サブディレクトリにあります。
エージェントの実行手順:
- この SKILL.md ファイルのディレクトリパスを
SKILL_DIRとして特定します - スクリプトのパス =
${SKILL_DIR}/scripts/<script-name>.mjs - このドキュメント内のすべての
${SKILL_DIR}を実際のパスに置き換えます
スクリプトの参照先:
| スクリプト | 目的 |
|---|---|
scripts/generate.mjs | 選択したオプションからステータスラインスクリプトを生成してインストール |
前提条件
- jq — Claude Code からの JSON 入力を解析するために、生成されるステータスラインスクリプトで必要です。Windows では、WinGet または scoop でインストールされた jq をスクリプトが自動検出します。jq が見つからない場合は、ディレクトリを手動で PATH に追加してください。
- Bun — ジェネレーターの実行に必要です。グローバルにインストールされていない場合は、
npx -y bunを使用してください。
使用方法
# 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
オプション
| フラグ | デフォルト | 説明 |
|---|---|---|
--elements <list> | model,context,cost,effort,style,git,dir | 表示する列をカンマ区切りで指定 |
--theme <name> | gruvbox | カラーテーマ — 下の表を参照 |
--effort-icon <preset> | アイコン付きテーマでは arrow(↯)、それ以外ではなし | effort の接頭アイコンを上書きします。プリセット:arrow、bolt、flash、reason、dot、none。任意の文字も指定できます。 |
--install | オフ | スクリプトを ~/.claude/scripts/statusline.sh に書き込み、settings.json を更新 |
列
| 列 | 説明 | データソース |
|---|---|---|
model | アクティブなモデル名(例:「Opus 4.7」) | model.display_name |
context | プログレスバー + パーセンテージ — 残り容量に応じて色が変化 | context_window.remaining_percentage |
cost | セッションの API 使用額をゴールドで $X.XX 形式に表示 — $0.00 に丸められる場合は非表示 | 入力 JSON の cost.total_cost_usd |
effort | 推論 effort レベル — レベルに応じて色が変化 | ~/.claude/settings.local.json → ~/.claude/settings.json の effortLevel |
style | 出力スタイル名(例:Explanatory、Learning) — 「default」の場合は非表示 | 入力 JSON の output_style.name |
git | Git ブランチ名(変更がある場合は黄色) | worktree.branch → git CLI |
dir | リポジトリのベース名(worktree 内では元のリポジトリ) | worktree.original_repo_dir → workspace.current_dir |
worktree | 太字の worktree:<id> ラベル(worktree の外では非表示) | worktree.name → git CLI による親ディレクトリのベース名 |
vim | Vim モードインジケーター(非アクティブ時は非表示) | vim.mode |
色が変化する要素
context — バーの塗りつぶしとパーセンテージの色は、残り容量に応じて変化します:
| 残り容量 | 色 | 意味 |
|---|---|---|
| > 50% | 緑 | コンテキストに十分な余裕があります |
| 20–50% | 黄色 | 注意が必要です |
| < 20% | 赤 | ほぼ上限です — 早めに compact してください |
effort — 値と任意の接頭アイコンの色は、レベルに応じて変化します:
| レベル | 色 |
|---|---|
max、xhigh、high | 太字の赤 |
medium | 黄色 |
low、xlow、minimal | 緑 |
| その他/未設定 | 薄い表示(完全に未設定の場合は非表示) |
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 prompt viaAskUserQuestionto pick columns and theme. - With args (
/webup-statusline dracula): NLP parse for theme and column preferences.
Arg parsing (natural language)
The args string is free-form text. Use NLP to extract:
- theme — match against: gruvbox, robbyrussell, minimal, dracula. Recognize aliases (暗黑=dracula, 极简=minimal, 复古=gruvbox, レトロ=gruvbox).
- elements — look for mentions of: model, context/进度/コンテキスト, effort/推理强度/努力度, git/分支/ブランチ, dir/目录/ディレクトリ, worktree/工作树/ワークツリー, vim.
Unspecified fields use defaults: model,context,effort,git,dir columns, gruvbox theme.
ワークフロー
-
引数が指定されていない場合:
AskUserQuestionを使用して、1 回のプロンプトで 2 つの質問をします。AskUserQuestionでは質問ごとの選択肢が 4 つまでなので、網羅的な切り替えリストではなく、厳選した列のプリセットを提示してください。ユーザーが「Other」を選んだ場合は、自由入力をカンマ区切りの列リスト(または対応する自然言語の説明)として解釈します。Q1 — 列のプリセット(単一選択):表示する列を選んでください。厳選した次の 3 つのプリセットを提示します。
AskUserQuestionにより、列リストや説明を自由入力できる「Other」オプションが自動的に追加されます。- 「Everything (Recommended)」—
model,context,cost,effort,style,git,dir,worktree(現時点で有用な情報があるすべての列。ほとんどのユーザーは vim キーバインドを使用しないため、vimは除外します) - 「Default」—
model,context,effort,style,git,dir(バランス重視。cost と worktree を除外し、スキルのデフォルトのフラグ値に一致します) - 「Essentials」—
model,context,git,dir(シンプルな構成。effort、style、cost は含みません)
ユーザーが自動追加された「Other」を選んだ場合は、自由入力をカンマ区切りの列リスト、または列に対応する自然言語の説明として扱います。解析が曖昧な場合は、
Defaultにフォールバックします。Q2 — テーマ(単一選択):配色テーマを選んでください。
- 「Dracula」— モダンなダークテーマ。パープル、ピンク、シアン(推奨)
- 「Gruvbox Dark」— 温かみのあるレトロな配色。24 ビットのトゥルーカラー
- 「Robbyrussell」— クラシックな oh-my-zsh スタイル。アイコンなし
- 「Minimal」— 装飾なし。区切り線のみを暗く表示
引数が指定されている場合:引数からテーマと列を解析します。プロンプトは表示しません。
- 「Everything (Recommended)」—
-
ユーザーの選択をスクリプトのフラグに対応付けます。
- 列のプリセット → プリセットの標準
--elementsリストに展開します。Everything→model,context,cost,effort,style,git,dir,worktreeDefault→model,context,effort,style,git,dirEssentials→model,context,git,dirOther(AskUserQuestionによって自動追加)→ 自由入力を解析し、認識される列名(model,context,cost,effort,style,dir,worktree,git,vim)のみを使用します。解析が曖昧な場合は、Defaultにフォールバックします。
- テーマ →
--themeの値(gruvbox、dracula、robbyrussell、minimalのいずれか)
- 列のプリセット → プリセットの標準
-
--installを指定してジェネレーターを実行します。npx -y bun ${SKILL_DIR}/scripts/generate.mjs --elements <list> --theme <theme> --install -
新しいステータスラインを表示するには、Claude Code を再起動するようユーザーに伝えます。
出力例
Dracula(すべての列)、残量=49%、コスト=$0.42、effort=high、出力スタイル=Explanatory、worktree 内:
◈ Opus 4.7 | [■■■■■■■■■■□□□□□□□□□□] 51% | $0.42 | ↯ high | ❋ Explanatory | ⌂ clawmaster | ⊕ worktree:46a6 | ⎇ feat/xyz
(バーは黄色 — 残量 49%。$0.42 のセッション支出額はゴールドでバーの横に表示されます。effort の「high」は太字の赤。パープルの ❋ Explanatory は effort と dir の間に表示されます。コンテキストには接頭辞アイコンがありません — バーだけで十分視覚的に表現されています)
Gruvbox Dark(model + context + effort + dir + git)、残量=88%、effort=medium:
✦ Opus 4.7 | [■■□□□□□□□□□□□□□□□□□□] 12% | ↯ medium | ⌂ skills-cc | ⎇ main
(バーは緑 — 残量 88%。effort の「medium」は黄色)
Minimal(model + effort + dir + git)、effort=low:
Claude Opus 4.7 · low · skills-cc · main
(Minimal では接頭辞アイコンはありません。effort の「low」は緑)
注記
- 生成されたスクリプトは
~/.claude/scripts/statusline.shに保存されます。 - スキルを再実行すると既存のスクリプトが上書きされます。テーマや列を変更するには、再実行してください。
- スクリプトは JSON 入力の解析に
jqを使用します。インストールされていることを確認してください。Windows では、スクリプトが WinGet と scoop の jq パスを自動検出します。それでも jq が見つからない場合は、手動で PATH に追加してください。 - Git の変更検出では、ほかの git 操作への干渉を避けるために
--no-optional-locksを使用します。