From nerdflair
Installs and configures nerdflair statusline for Claude Code/VSCode, including layout modes, terminal bell, chimes, color palettes, spinner verbs, and width.
npx claudepluginhub jcraigk/nerdflair --plugin nerdflairThis skill is limited to using the following tools:
Configure the nerdflair statusline. This skill handles both first-time install and ongoing configuration.
Customizes Claude Code statusline script by managing segments (directory, git branch, agent, model, context %, token usage, cost, rate limits, worktree) and themes (ansi-default, catppuccin-mocha, dracula, nord).
Sets up custom Claude Code status lines to display model name, git branch, token usage, project colors, and session costs via shell scripts or ccstatusline tool.
Interactive wizard sets up Claude Code's custom status line with progress bars, token counts, git branch, model name, and session info. Cross-platform for Mac/Linux/Windows via bash/PowerShell scripts.
Share bugs, ideas, or general feedback.
Configure the nerdflair statusline. This skill handles both first-time install and ongoing configuration.
Base directory for this skill: $CLAUDE_PLUGIN_ROOT
If the user provided arguments (e.g., /nerdflair install, /nerdflair layout full), handle that request directly using the Install or Configure sections below.
If the user invoked /nerdflair with NO arguments, first run info to get the current state, then display a complete command reference showing current settings and all available commands. Format it like a CLI help page:
info output as a formatted summarynerdflair
Current settings:
layout: full width: auto
terminal-bell: on chimes: on (BalladPiano) color-palette: vibrant
Commands:
/nerdflair chime-events Show/toggle which events play chimes
/nerdflair chime-session [style] Set chime for this session only (plays preview)
/nerdflair chime-style [style] Set or cycle global chime style (random, BalladPiano, ...)
/nerdflair chime-volume [0-100] Set chime volume (0 = muted)
/nerdflair color-palette [mode] Set or cycle palette (vibrant, muted, mono)
/nerdflair layout [mode] Set or cycle layout (full, compact, minimal)
/nerdflair install Install or upgrade (font check, settings.json; preserves settings)
/nerdflair uninstall Remove nerdflair from settings and clean up data
/nerdflair spinner-verbs Show/manage custom spinner verbs
/nerdflair terminal-bell Toggle terminal bell on/off (tab indicator)
/nerdflair width [auto|50-150] Set layout width
Stop after displaying the help. Do NOT prompt the user or use AskUserQuestion — just print the settings and commands, then wait for the user to run a command themselves.
A Nerd Font is required -- the progress bar, icons, and Powerline caps all use Nerd Font glyphs. Without one, the statusline renders as broken boxes.
find ~/Library/Fonts /Library/Fonts -maxdepth 1 -iname '*nerd*' 2>/dev/null | head -5
If fonts are found: Tell the user and continue to Step 2.
If no fonts found: Use AskUserQuestion with header "Nerd Font":
Question: "nerdflair requires a Nerd Font for icons and the progress bar. How would you like to install one?"
Options:
Handle each response:
brew install --cask font-jetbrains-mono-nerd-font, then continue to Step 1b.Installing a font only puts the files on disk -- the user must also select it in their terminal app. Use AskUserQuestion with header "Terminal Font Setup":
Question: "Which terminal are you using? I'll give you the exact steps to activate the Nerd Font."
Options:
Give terminal-specific instructions based on their selection:
font-family = JetBrainsMono Nerd Font to ~/.config/ghostty/config (create the file if it doesn't exist), then restart Ghostty.JetBrainsMono Nerd Font. Alternatively, add "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font" to your settings.json.After giving instructions, tell the user they can verify with echo "" -- if they see a box or question mark instead of an icon, the font isn't active yet.
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" install
This is idempotent: on first install it creates state with defaults; on upgrade it preserves existing settings. It also updates the statusLine entry in ~/.claude/settings.json to use ${CLAUDE_PLUGIN_ROOT}.
Before running, check if a non-nerdflair statusLine is already configured:
statusLine is absent or already points to nerdflair (command contains nerdflair): proceed.statusLine exists and points to something else: warn the user that a different statusline is configured and use AskUserQuestion to ask whether to replace it. Show the current command. If they decline, skip this step.bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" spinner-verbs enable
This loads the custom thinking/spinner phrases from assets/text/spinners.txt into ~/.claude/settings.json. If existing non-nerdflair spinner verbs are present, they are backed up first. If nerdflair verbs are already installed, they are refreshed in place (no backup needed).
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" info
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" chime-events
Display a summary table of settings from the info output. Format the table as follows:
chime-events output) instead of just a countTell the user to restart Claude Code for the changes to take effect.
Run the appropriate command based on what the user asked for. After running it, briefly confirm the change. The effect is visible on the next statusline render.
Cycle to the next layout:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" layout
Set layout directly:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" layout full
Cycle chime style (random -> BalladPiano -> DelicateBells -> ...):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" chime-style
Set chime for this session only (plays SessionStart sound):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" chime-session Vibraphone
List available session chime styles (no argument):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" chime-session
When the user runs /nerdflair chime-session with no argument, run the command above to get the numbered list,
then use AskUserQuestion to let them pick a style (use the numbered style names as options).
After they choose, run chime-session <name> or chime-session <number> to apply it.
Set chime volume (0 = muted, 100 = full):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" chime-volume 50
Cycle color palette (vibrant -> muted -> mono):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" color-palette
Toggle terminal bell on/off (tab indicator on Notification, PermissionRequest, Stop):
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" terminal-bell
Set width:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" width 60
Reset width to auto:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" width auto
Show current settings without changing anything:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" info
ls "$CLAUDE_PLUGIN_ROOT/assets/audio/" to discover available styles; "random" is always an option)
chime-style (or the random pick) for this sessionchime-session Vibraphone or chime-session 19chime-events <EventName>$CLAUDE_PLUGIN_ROOT/assets/text/spinners.txt (one per line) into ~/.claude/settings.jsonspinnerVerbs field from settings (restores Claude Code defaults)assets/text/spinners.txt directly to customize the verb listExamples:
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" spinner-verbs
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" spinner-verbs enable
bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" spinner-verbs disable
~/.claude/
spinnerVerbs from ~/.claude/settings.jsonstatusLine from ~/.claude/settings.json~/.claude/nerdflair/ directory (state, sessions)bash "$CLAUDE_PLUGIN_ROOT/scripts/nerdflair.sh" uninstall