CLI Command Naming Examples
Concrete examples by category, each with a one-line rationale. Steal the structure, not necessarily the words.
User management
mycli create-user # verb-noun: the default pattern
mycli invite-user # specific verb beats generic add
mycli list-users # plural noun reads naturally
mycli deactivate-user # precise; not disable/remove
mycli reset-password # action + object, no ambiguityPrefer precise verbs (invite, deactivate) over generic ones (add, remove) when the domain has meaningful distinctions.
Configuration
mycli config set # two-level: namespace groups all config ops
mycli config get
mycli config list
mycli config reset --force # destructive: confirmation by defaultConfig is the textbook case for two-level namespaces: one topic, a small fixed verb set, used constantly.
Deployment
mycli deploy # verb-only: the obvious default action
mycli deploy --dry-run # flags over deeper nesting
mycli rollback --to v1.4.2
mycli deploy status # noun after verb for sub-stateKeep the happy path as short as possible (deploy), and push variations into flags.
Data and backups
mycli backup create
mycli backup list
mycli backup restore --from latest
mycli export --format csv --output report.csv
mycli migrate --dry-runResource-first grouping (backup create, backup list) keeps everything about one resource in one place in help output.
Verb bank
A short, consistent verb set covers most CLIs: add, remove, list, get, set, create, delete, update, sync, deploy, rollback, backup, restore, migrate, export, import, validate, reset, refresh, publish, revoke, enable, disable, check, scan. Pick from it before inventing a new verb — the free command name generator draws from exactly this kind of bank.