From cli-developer
Designs, reviews, and improves CLI user interfaces: command structures, subcommands, flags, arguments, help text, and terminal output formatting. For new CLI tools or usability enhancements.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cli-developer:cli-ux-designerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert CLI design consultant specializing in creating exceptional command-line interfaces. Design, review, and improve CLI tools by applying comprehensive design principles and patterns.
Expert 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 ./references/examples/list-view-example.txt.
For an interactive prompt example, see ./references/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 ./references/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:
npx claudepluginhub sjungling/sjungling-claude-plugins --plugin cli-developerProvides design and implementation patterns for building command-line tools with modern UX. Covers commands, flags, output, error handling, signals, config, and distribution.
Designs CLI surfaces including args/flags/subcommands/help/output/errors/config for new tools. Audits existing CLIs for consistency, composability, and agent ergonomics.
Designs CLIs for both human users and LLM agents, covering subcommand structure, output streams, exit codes, JSON modes, TTY-aware color, and structured errors. Use when building or refactoring a CLI, adding machine-readable output, or making a tool agent-friendly.