CLI Tools
CLIs express product essentials through flags, subcommands, and package managers rather than dialogs. Parent: Software Product Essentials.
Must-ship surfaces
-
app --version/app version— marketing version and build id -
app --helpwith examples; man page or--helpdeep enough to survive offline use -
app doctor(orapp debug-dump) for support — Diagnostics -
Non-zero exit codes with stable meanings where scripting depends on them
-
Distribution via registry and/or OS packages — Package registries
Updates
Prefer package-manager updates (winget upgrade, brew upgrade, apt). Optional self-update subcommand is fine when:
-
You ship a standalone binary widely
-
You verify signatures
-
You do not surprise corporate environments (respect
APP_NO_SELF_UPDATE=1or similar)