Files
SuperCharged-Claude-Code-Up…/skills/plugins/claude-code-safety-net/commands/set-statusline.md
admin b723e2bd7d Reorganize: Move all skills to skills/ folder
- Created skills/ directory
- Moved 272 skills to skills/ subfolder
- Kept agents/ at root level
- Kept installation scripts and docs at root level

Repository structure:
- skills/           - All 272 skills from skills.sh
- agents/           - Agent definitions
- *.sh, *.ps1       - Installation scripts
- README.md, etc.   - Documentation

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-23 18:05:17 +00:00

3.7 KiB

description, allowed-tools
description allowed-tools
Set Safety Net status line in Claude Code settings Bash, Read, Write, AskUserQuestion

You are helping the user configure the Safety Net status line in their Claude Code settings.

Context

Schema Documentation

The statusLine field in ~/.claude/settings.json has this structure:

{
  "statusLine": {
    "type": "command",
    "command": "<shell command to execute>",
    "padding": <optional number>
  }
}
  • type: Must be "command"
  • command: Shell command that outputs the status line text
  • padding: Optional number for spacing

Your Task

Follow this flow exactly:

Step 1: Ask for Package Runner

Use AskUserQuestion to let user select their preferred package runner:

{
  "questions": [
    {
      "question": "Which package runner would you like to use?",
      "header": "Runner",
      "multiSelect": false,
      "options": [
        {
          "label": "bunx (Recommended)",
          "description": "Uses Bun's package runner - faster startup"
        },
        {
          "label": "npx",
          "description": "Uses npm's package runner - more widely available"
        }
      ]
    }
  ]
}

Step 2: Check Existing Settings

Read the current settings file:

cat ~/.claude/settings.json 2>/dev/null || echo "{}"

Parse the JSON and check if statusLine.command already exists.

Step 3: Handle Existing Command

If statusLine.command already exists:

  1. Show the current command to the user
  2. Use AskUserQuestion to let user choose:
{
  "questions": [
    {
      "question": "The statusLine command is already set. What would you like to do?",
      "header": "Existing",
      "multiSelect": false,
      "options": [
        {
          "label": "Replace",
          "description": "Replace the existing command with Safety Net statusline"
        },
        {
          "label": "Pipe",
          "description": "Add Safety Net at the end using pipe (existing_command | cc-safety-net --statusline)"
        }
      ]
    }
  ]
}

Step 4: Generate the Configuration

Based on user choices:

If Replace or no existing command:

{
  "statusLine": {
    "type": "command",
    "command": "bunx cc-safety-net --statusline"
  }
}

(Use npx -y instead of bunx if user selected npx)

If Pipe:

{
  "statusLine": {
    "type": "command",
    "command": "<existing_command> | bunx cc-safety-net --statusline"
  }
}

Step 5: Show and Confirm

Show the generated config to the user.

Use AskUserQuestion to confirm:

{
  "questions": [
    {
      "question": "Does this configuration look correct?",
      "header": "Confirm",
      "multiSelect": false,
      "options": [
        {
          "label": "Yes, apply it",
          "description": "Write the configuration to ~/.claude/settings.json"
        },
        {
          "label": "No, cancel",
          "description": "Cancel without making changes"
        }
      ]
    }
  ]
}

Step 6: Write Configuration

If user confirms:

  1. Read existing ~/.claude/settings.json (or start with {} if it doesn't exist)
  2. Merge the new statusLine configuration
  3. Write back to ~/.claude/settings.json with proper JSON formatting (2-space indent)

Use the Write tool to update the file.

Step 7: Confirm Success

Tell the user:

  1. Configuration saved to ~/.claude/settings.json
  2. Changes take effect immediately - no restart needed
  3. Summary of what was configured

Important Notes

  • The settings file is located at ~/.claude/settings.json
  • If the file doesn't exist, create it with the statusLine configuration
  • Preserve all existing settings when merging
  • Use npx -y (not just npx) to skip prompts when using npm