From bash-output-styler
Applies gorgeous terminal styling to bash scripts using gum with ANSI fallback. Use when creating or modifying bash/shell scripts that produce user-facing terminal output. Use when asked to "style bash output", "make pretty", "add colors to shell script", or "improve terminal UX".
npx claudepluginhub tsilva/claudeskillz --plugin bash-output-stylerThis skill uses the workspace's default tool permissions.
Style all user-facing shell script output using the bundled `style.sh` library.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Style all user-facing shell script output using the bundled style.sh library.
style.sh doesn't exist alongside the target script, copy from references/style.sh into the same directorystyle.sh in the target script: source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/style.sh" 2>/dev/null || trueecho statements with styled output function callsread -p prompts with confirm, input, or choose as appropriatespin for animated feedbacktable for structured multi-column data and progress for counted loopsstyle.sh is missing (graceful degradation)| Name | Hex | ANSI 256 | Use |
|---|---|---|---|
| Brand | #AF87FF | 141 | Headers, emphasis |
| Success | #87D787 | 114 | Checkmarks, completion |
| Error | #FF5F5F | 203 | Errors, failures |
| Warning | #FFD75F | 221 | Warnings, caution |
| Info | #87CEEB | 117 | Info messages, tips |
| Muted | #808080 | 244 | Paths, secondary text |
| Function | Symbol | Color | Purpose |
|---|---|---|---|
header "brand" "subtitle" | box | Brand | Bordered header |
section "text" | ━━ | Brand | Horizontal rule divider (fills terminal width) |
success "text" | ✓ | Success | Completed actions |
error "text" | ✗ | Error | Error messages |
warn "text" | ⚠ | Warning | Warnings |
info "text" | ● | Info | Informational |
step "text" | → | Muted | Action log (suppressed when quiet) |
note "text" | — | Muted | "Note:" prefixed |
banner "text" | box | Success | Completion banner |
error_block "lines..." | │ | Error | Multi-line error box |
list_item "label" "value" | • | Brand+Muted | Key-value display |
dim "text" | — | Muted | De-emphasized text (suppressed when quiet) |
table "h1,h2" "v1,v2" ... | box | Brand+Muted | Formatted table with headers |
progress cur total [label] | ████░░ | Brand | Inline progress bar |
| Function | Returns | Purpose |
|---|---|---|
confirm "prompt" [timeout] [affirm] [neg] | Sets REPLY | y/n prompt (backward-compatible) |
spin "title" command [args...] | Exit code | Animated spinner wrapping a command |
choose "header" "opt1" "opt2" ... | stdout | Interactive selection menu |
input "prompt" [placeholder] [--password] | stdout | Styled text input |
| Old Pattern | New Pattern |
|---|---|
echo "Title" + echo "=====" | header "Title" "Subtitle" |
echo "✓ done" | success "done" |
echo "Error: ..." | error "..." |
echo "Warning: ..." | warn "..." |
echo " - Label: value" | list_item "Label" "value" |
read -p "Continue? (y/n) " | confirm "Continue?" |
echo "Section..." between blocks | section "Section" |
echo "Note: ..." | note "..." |
| Multi-line error block | error_block "line1" "line2" |
select opt in ... / numbered menu | choose "Pick one:" "A" "B" "C" |
read -p "Name: " | input "Name:" "placeholder" |
| Long command with no feedback | spin "Installing..." brew install pkg |
| Aligned columns / status tables | table "Name,Status" "jq,installed" |
| Counter loop with echo progress | progress $i $total "Processing" |
| Variable | Default | Effect |
|---|---|---|
NO_COLOR | unset | Disables all color output when set to any value |
STYLE_VERBOSE | 1 | 0=quiet (suppresses step/dim), 1=default, 2=verbose |
COLORTERM | unset | Set to truecolor or 24bit to enable RGB color palette |
style.sh with fallback: source "$SCRIPT_DIR/style.sh" 2>/dev/null || truestyle.sh handles tool detectionstyle.sh functions exclusivelyconfirm function sets REPLY variable, compatible with existing [[ $REPLY =~ ^[Yy]$ ]] checksspin returns the wrapped command's exit code — use in conditionals: if spin "Building..." make; then ...choose and input return values via stdout — capture with: result=$(choose "Pick:" "A" "B")spin — only use for commands that take noticeable timechoose, input, confirm) require a TTY — they read from /dev/ttystyle.sh is missing (plain echo fallback)