Skip to content
Development
Skill

/statusline

Install or configure the PBR status line in Claude Code.

From plugin
plan-build-run
1847 skills18 agents70 commands

Claude Code

$ npx -y skills add SienkLogic/plan-build-run --skill statusline --agent claude-code

SKILL.md

statusline.SKILL.md
name: statusline
description: "Install or configure the PBR status line in Claude Code."
allowed-tools: Read, Write, Bash, AskUserQuestion
argument-hint: "[install | uninstall | preview]"

**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~3,000 tokens. Begin executing Step 0 immediately.**

Step 0 — Immediate Output

**Before ANY tool calls**, display this banner:

╔══════════════════════════════════════════════════════════════╗
║  PLAN-BUILD-RUN ► STATUS LINE                                ║
╚══════════════════════════════════════════════════════════════╝

Then proceed to Step 1.

/pbr:statusline — Status Line Setup

The PBR status line displays live project state (phase, plan, status, git branch, context usage) in the Claude Code terminal status bar.

---

Subcommand Parsing

Parse `$ARGUMENTS`:

| Argument | Action | |----------|--------| | `install` or empty | Install/enable the status line | | `uninstall` or `remove` | Remove the status line configuration | | `preview` | Show what the status line looks like without installing |

---

Subcommand: install (default)

Step 1: Locate the status-line script

**CRITICAL: You must resolve the correct absolute path to `status-line.js`. Do NOT hardcode paths.**

1. The script lives at `${CLAUDE_PLUGIN_ROOT}/scripts/status-line.js` 2. Resolve `${CLAUDE_PLUGIN_ROOT}` to its absolute path using `pwd` or by checking the plugin root 3. If running from a local plugin dir (`claude --plugin-dir .`), the path is the local repo's `plugins/pbr/scripts/status-line.js` 4. If running from the installed plugin cache (`~/.claude/plugins/cache/`), use that path 5. **Verify the script exists** with `ls` before proceeding. If it doesn't exist, show an error and stop.

Store the resolved absolute path as `SCRIPT_PATH`.

Step 2: Read current settings

Read `~/.claude/settings.json` (or `$HOME/.claude/settings.json`).

  • If the file doesn't exist: start with an empty object `{}`
  • If it exists: parse the JSON content
  • Check if `statusLine` key already exists:
  • If yes and points to the same script: inform user "PBR status line is already installed." and stop (unless they want to reconfigure)
  • If yes but points to a different command: warn user and ask if they want to replace it

Step 3: Configure settings.json

Use AskUserQuestion: question: "Install the PBR status line? This adds a `statusLine` entry to ~/.claude/settings.json." header: "Install?" options:

  • label: "Install" description: "Enable the PBR status line in Claude Code"
  • label: "Preview first" description: "Show a preview before installing"
  • label: "Cancel" description: "Don't install"

multiSelect: false

If "Preview first": run the preview subcommand (show sample output), then ask again. If "Cancel": stop. If "Install":

**CRITICAL: Use Read tool to read the file, then Write to update it. Do NOT use sed or other text manipulation on JSON files.**

**CRITICAL: Back up settings.json NOW.** Write the original content to `~/.claude/settings.json.bak` before making any changes.

1. Read `~/.claude/settings.json` 2. Write the original content to `~/.claude/settings.json.bak` 3. Parse the JSON 4. Set `statusLine` to:

   {
     "type": "command",
     "command": "node \"SCRIPT_PATH\""
   }

Where `SCRIPT_PATH` is the resolved absolute path from Step 1. Use forward slashes even on Windows. 5. Write the updated JSON back (preserve all other settings, use 2-space indentation)

Step 4: Verify and confirm

Display:

✓ PBR status line installed

  Script: {SCRIPT_PATH}
  Config: ~/.claude/settings.json

The status line will appear on your next Claude Code session.
Restart Claude Code or run `/clear` to activate it now.

Customize per-project via .planning/config.json:
  "status_line": {
    "sections": ["phase", "plan", "status", "git", "context"],
    "brand_text": "PBR"
  }

---

Subcommand: uninstall

1. Read `~/.claude/settings.json` 2. If no `statusLine` key: inform user "No status line configured." and stop 3. **CRITICAL: Back up settings.json NOW.** Write the original content to `~/.claude/settings.json.bak` before making any changes. 4. Remove the `statusLine` key from the JSON 5. Write the updated file 5. Display: `✓ PBR status line removed. Restart Claude Code to take effect.`

---

Subcommand: preview

1. Locate and run the status-line script: `node {SCRIPT_PATH}`

  • Pass sample stdin JSON: `{"context_window": {"used_percentage": 35}, "model": {"display_name": "Claude Opus 4.6"}, "cost": {"total_cost_usd": 0.42}}`

2. Display the raw output to the user 3. Also show a description of each section:

  • **Phase**: Current phase number and name from STATE.md
  • **Plan**: Plan progress (N of M)
  • **Status**: Phase status keyword (planning, building, built, etc.)
  • **Git**: Current branch + dirty indicator
  • **Context**: Unicode bar showing context window usage (green/yellow/red)

---

Edge Cases

No .planning/ directory

The status line works even without `.planning/` — it will show only git and context sections. Installation doesn't require a PBR project.

Plugin installed from npm vs local

The script path differs between `~/.claude/plugins/cache/plan-build-run/pbr/{version}/scripts/status-line.js` and a local `plugins/pbr/scripts/status-line.js`. The install command must resolve the actual path at install time.

Existing non-PBR status line

If `statusLine` already exists with a different command, warn the user and confirm before replacing.

Read more
@sienklogic
Ships withplan-build-run

Plan it. Build it. Run it. A Claude Code plugin for structured development with context-engineered agents.

1847 skills18 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
18
Star history of SienkLogic/plan-build-run on GitHub, a chart by star-history.com

Other skills on plan-build-run.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about statusline.

Which coding agents can use statusline?
statusline installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.