Create CLI
Design CLI surface area: syntax, flags, output, error handling.
Conventions
- Long options preferred (
--fromnot-f) - stdout for data, stderr for progress/errors
- Exit codes: 0=success, 1=runtime error, 2=usage error
- Include
--help,--json,--quiet - Validate early, fail fast
Output
- Default: human-readable tables
--json: JSON output (implies quiet)--quiet: suppress progress- Respect
NO_COLORenv
Errors
<name>: <message>
Try '<name> --help'
Destructive Operations
- Confirm when stdin is TTY
--forceto skip confirmation--dry-runto preview
Help Format
<name> - <one-line description>
USAGE
<name> [OPTIONS] <ARGS>
OPTIONS
--option <VALUE> Description [default: X]
--help Show this help
EXAMPLES
<name> arg1 arg2
See references/node-js.md - Node.js with parseArgs See references/python-uv.md - Python with uv
See clig.dev for comprehensive guidelines.