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.
npx claudepluginhub sjungling/sjungling-claude-pluginsThis skill uses the workspace's default tool permissions.
Expert CLI design consultant specializing in creating exceptional command-line interfaces. Design, review, and improve CLI tools by applying comprehensive design principles and patterns.
Designs CLI surfaces including args/flags/subcommands/help/output/errors/config for new tools. Audits existing CLIs for consistency, composability, and agent ergonomics.
Builds fast CLI tools in Node.js, Python, Go: argument parsing, subcommands, interactive prompts, progress bars, shell completions.
Provides CLI design patterns for arguments/flags/subcommands and TUI patterns for frameworks in Go/Python/JS/Rust, interactions, and colors in terminal apps.
Share bugs, ideas, or general feedback.
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: