How this command is triggered — by the user, by Claude, or both
Slash command
/claude-statusbar:setupThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
## Step 1: Detect Platform & Runtime **IMPORTANT**: Determine the platform from your environment context (`Platform:` value). | Platform | Command Format | |----------|---------------| | `darwin` | bash (macOS) | | `linux` | bash (all Linux distros) | | `win32` | PowerShell | --- **macOS/Linux** (Platform: `darwin` or `linux`): 1. Get plugin path: If empty, tell user to install the plugin first: 2. Get runtime absolute path (prefer bun for performance, fallback to node): If empty, stop and tell user to install Node.js or Bun. 3. Determine source file based on runtim...
IMPORTANT: Determine the platform from your environment context (Platform: value).
| Platform | Command Format |
|---|---|
darwin | bash (macOS) |
linux | bash (all Linux distros) |
win32 | PowerShell |
macOS/Linux (Platform: darwin or linux):
Get plugin path:
ls -td ~/.claude/plugins/cache/claude-statusbar/claude-statusbar/*/ 2>/dev/null | head -1
If empty, tell user to install the plugin first:
/plugin marketplace add KwCCCC/claude-statusbar
/plugin install claude-statusbar@claude-statusbar
Get runtime absolute path (prefer bun for performance, fallback to node):
command -v bun 2>/dev/null || command -v node 2>/dev/null
If empty, stop and tell user to install Node.js or Bun.
Determine source file based on runtime:
If runtime is "bun", use src/index.ts (native TypeScript support). Otherwise use dist/index.js.
Generate command:
bash -c '"{RUNTIME_PATH}" "$(ls -td ~/.claude/plugins/cache/claude-statusbar/claude-statusbar/*/ 2>/dev/null | head -1){SOURCE}"'
Windows (Platform: win32):
Get plugin path:
(Get-ChildItem "$env:USERPROFILE\.claude\plugins\cache\claude-statusbar\claude-statusbar" | Sort-Object LastWriteTime -Descending | Select-Object -First 1).FullName
Get runtime:
if (Get-Command bun -ErrorAction SilentlyContinue) { (Get-Command bun).Source } elseif (Get-Command node -ErrorAction SilentlyContinue) { (Get-Command node).Source } else { Write-Error "Neither bun nor node found" }
If bun, use src\index.ts. Otherwise use dist\index.js.
Generate command:
powershell -Command "& {$p=(Get-ChildItem $env:USERPROFILE\.claude\plugins\cache\claude-statusbar\claude-statusbar | Sort-Object LastWriteTime -Descending | Select-Object -First 1).FullName; & '{RUNTIME_PATH}' (Join-Path $p '{SOURCE}')}"
Run the generated command. It should produce output within a few seconds. If it errors, do not proceed to Step 3.
Read ~/.claude/settings.json (or $env:USERPROFILE\.claude\settings.json on Windows).
Merge in the statusLine config, preserving all existing settings:
{
"statusLine": {
"type": "command",
"command": "{GENERATED_COMMAND}"
}
}
Say: "Setup complete! The statusbar should appear below your input field."
If it doesn't work, debug:
{GENERATED_COMMAND} 2>&1npx claudepluginhub kwcccc/claude-statusbar --plugin claude-statusbar/setupConfigures claude-pulse as your statusline: enables plugin in settings, detects OS (macOS/Linux/Windows), runtime (bun/node), generates shell/PowerShell execution command.
/setupInstalls the which-claude-code statusline into ~/.claude/settings.json by running an idempotent Bash setup script that backs up existing config. Requires new session or /reload.
/setupInstalls and configures claudeline as Claude Code statusline: downloads latest binary via curl or go install, verifies it, and sets statusLine in settings.json. Re-running updates.
/setupInitializes or resumes project setup via interactive Q&A, creating conductor/ artifacts for product definition, guidelines, tech stack, workflow, and style guides.
/setupWalks an enterprise admin through configuring the Claude Office add-in to call their own cloud (Vertex, Bedrock, Foundry, or gateway), producing a customized manifest.xml for M365 deployment.