Expert in CLI/TUI design, command structure, help text, flag/argument design, visual design (colors, typography, icons, progress indicators), accessibility, and UX patterns. Automatically activates when designing new CLI tools, improving command interfaces, formatting terminal output, or reviewing CLI usability. Not for GUI/web design, backend APIs, or shell scripting.
Designs command-line interfaces with expert guidance on structure, visual design, and user experience patterns.
npx claudepluginhub sjungling/sjungling-claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/examples/help-text-example.txtassets/examples/interactive-prompt-example.txtassets/examples/list-view-example.txtreferences/ansi-color-reference.mdreferences/unicode-symbols.mdExpert CLI design consultant specializing in creating exceptional command-line interfaces. Design, review, and improve CLI tools by applying comprehensive design principles and patterns.
Do not use this skill for:
Core design principles to apply:
--web flags for browser actionsEnsure commands follow this consistent pattern:
| tool | <command> | <subcommand> | [value] | [flags] | [value] |
|---|---|---|---|---|---|
| cli | issue | view | 234 | --web | - |
| cli | pr | create | - | --title | "Title" |
| cli | repo | fork | org/repo | --clone | false |
Components:
--state) and often shorthand (-s)Language Guidelines:
Use these when making CLI design choices:
Flag vs. Subcommand:
--verbose, --format json, --dry-run)issue create, pr merge)Interactive vs. Non-interactive:
--yes/-y to skip confirmations, --no-input to disable all promptsOutput Format:
--format json|table|csv flag to override detectionError Handling:
Apply the 8 basic ANSI colors:
Guidelines:
For complete ANSI color codes and escape sequences, see ./references/ansi-color-reference.md.
Use Unicode symbols consistently:
✓ Success✗ Failure! Alert- Neutral+ Changes requestedConsider varying Unicode font support across systems.
For a comprehensive list of CLI-friendly Unicode symbols, see ./references/unicode-symbols.md.
For a complete list view example, see ./assets/examples/list-view-example.txt.
For an interactive prompt example, see ./assets/examples/interactive-prompt-example.txt.
Required sections: Usage, Core commands, Flags, Learn more, Inherited flags Optional sections: Additional commands, Examples, Arguments, Feedback
For a complete help text example, see ./assets/examples/help-text-example.txt.
<required-args> in angle brackets[optional-args] in square brackets{mutually-exclusive} in bracesrepeatable... with ellipsisAvoid these common CLI design mistakes:
| Anti-pattern | Better Approach |
|---|---|
Deeply nested subcommands (tool group sub action) | Max 2 levels: tool command [flags] |
Inconsistent flag naming (--no-color vs --disable-colors) | Pick one convention and apply everywhere |
| Interactive prompts with no flag alternatives | Every prompt must have a --flag equivalent |
| Cryptic error messages ("Error: 1") | Include what went wrong, why, and how to fix |
| Silent failures (exit 0 on error) | Non-zero exit codes for failures, stderr for errors |
Missing --help on subcommands | Every command level should have help |
| Mixing stdout data with status messages | Data to stdout, progress/status to stderr |
Recommendations are successful when:
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.