From claude-code-mascot-statusline
Configure claude-code-mascot-statusline statusLine and hooks
npx claudepluginhub texmeijin/claude-code-mascot-statusline --plugin claude-code-mascot-statusline## Step 0: Choose mascot pack Ask the user which mascot pack they want to use. Use AskUserQuestion (adapt language to the user's language): - Question: Which mascot pack would you like to use? - Options: - "pixel-buddy" — A pixel-art cat that reacts to your coding session (default) - "space-invader" — A retro arcade-style space invader If the user chooses **pixel-buddy**, skip to Step 1 (it's the default, no config needed). If the user chooses **space-invader**, proceed to Step 0.5. ## Step 0.5: Choose scope (space-invader only) Ask the user where they want to apply the space-inva...
/setupInitializes or resumes project setup via interactive Q&A, creating conductor/ artifacts for product definition, guidelines, tech stack, workflow, and style guides.
/setupDetects ghost (inconsistent) claude-hud plugin installations by checking cache, registry, and temp files on macOS/Linux/Windows; reports status and cleans up on user confirmation.
/setupChecks local Codex CLI readiness, prompts to install if unavailable via npm, and optionally toggles stop-time review gate.
/setupGuides enterprise admins through Claude Office add-in setup for Vertex AI, Bedrock, or custom gateway; provisions credentials and generates deployable manifest.xml.
/setupRuns interactive setup wizard: detects AI providers (Codex, Gemini, Ollama, etc.), installs missing ones via Bash, configures auth, and sets up RTK token optimization.
Ask the user which mascot pack they want to use.
Use AskUserQuestion (adapt language to the user's language):
If the user chooses pixel-buddy, skip to Step 1 (it's the default, no config needed).
If the user chooses space-invader, proceed to Step 0.5.
Ask the user where they want to apply the space-invader pack.
The config directory is $CLAUDE_CONFIG_DIR if set, otherwise ~/.claude. Resolve it first:
echo "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
Use AskUserQuestion (adapt language to the user's language):
<config-dir>/plugins/claude-code-mascot-statusline/config.json.claude/mascot.json in the current projectBased on the user's choice, write the config file:
For user global:
mkdir -p "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/plugins/claude-code-mascot-statusline"
Then use the Write tool to write <resolved-config-dir>/plugins/claude-code-mascot-statusline/config.json:
{
"pack": "space-invader"
}
For this project only:
mkdir -p .claude
Then use the Write tool to write .claude/mascot.json:
{
"pack": "space-invader"
}
Confirm to the user which path was written.
Ask the user if they want to customize which items appear in the status line summary.
Use AskUserQuestion (adapt language to the user's language):
If the user chooses Show all, skip to Step 1.
If the user chooses Customize, ask in two rounds.
Round 1 — Basic info (AskUserQuestion, multiSelect: true):
project — Project directory namebranch — Git branchmodel — Model name (e.g., Opus 4.6)context — Context window usage %Round 2 — Monitoring (AskUserQuestion, multiSelect: true):
usage5h — 5-hour API usage %usage7d — 7-day API usage %tools, failures, subagents as a group)Combine the user's selections from both rounds to build the final summaryItems array. If the user selected "Tool activity", expand it to ["tools", "failures", "subagents"].
Then ask for scope:
Use AskUserQuestion (adapt language to the user's language):
<config-dir>/plugins/claude-code-mascot-statusline/config.json.claude/mascot.json in the current projectWrite the config file at the chosen scope. If the file already exists, merge the summaryItems field without overwriting other settings. Use the Read tool to check for existing content first.
Example config:
{
"summaryItems": ["project", "branch", "context", "usage5h", "usage7d"]
}
Ask the user if they want to enable compact mode (face-only, 6-row display instead of 8-row).
Use AskUserQuestion (adapt language to the user's language):
If the user chooses Normal, skip to Step 1.
If the user chooses Compact, ask for scope:
Use AskUserQuestion (adapt language to the user's language):
<config-dir>/plugins/claude-code-mascot-statusline/config.json.claude/mascot.json in the current projectWrite the config file at the chosen scope. If the file already exists, merge the compact field without overwriting other settings. Use the Read tool to check for existing content first.
Example config:
{
"compact": true
}
Run the setup helper to merge statusLine and hooks into the user's settings.json (respects $CLAUDE_CONFIG_DIR).
The --plugin-root flag tells the helper where the plugin is installed:
node "${CLAUDE_PLUGIN_ROOT}/dist/cli/setup-helper.js" --write --plugin-root "${CLAUDE_PLUGIN_ROOT}"
If the command fails with "Cannot find module", the plugin may not be built. Try:
cd "${CLAUDE_PLUGIN_ROOT}" && npm run build && cd -
node "${CLAUDE_PLUGIN_ROOT}/dist/cli/setup-helper.js" --write --plugin-root "${CLAUDE_PLUGIN_ROOT}"
Read the settings.json that was just updated and confirm:
statusLine.command is set and points to render-status-line.jshooks contains entries for mascot hook events (SessionStart, Stop, etc.)Show the user the configured statusLine command.
Then, verify the render script actually works by running it with empty input:
echo '{}' | node "${CLAUDE_PLUGIN_ROOT}/dist/cli/render-status-line.js" 2>&1
If it fails (e.g., Cannot find package / ERR_MODULE_NOT_FOUND), install dependencies and retry:
cd "${CLAUDE_PLUGIN_ROOT}" && npm install --production && cd -
echo '{}' | node "${CLAUDE_PLUGIN_ROOT}/dist/cli/render-status-line.js" 2>&1
If it still fails, show the error to the user and stop.
Tell the user:
Then, show the GitHub repository URL and ask if they'd like to star it.
Use AskUserQuestion (adapt language to the user's language):
If user chooses to star and gh CLI is available, run:
gh api -X PUT /user/starred/TeXmeijin/claude-code-mascot-statusline
Then confirm the star was successful.
If user chooses to skip, thank them and end.