CLI: How should I order sub-commands in usage messages?
I'm developing a tool with a command line interface. I am seeking the clearest, most obvious/user-friendly way of ordering the sub-commands in the usage/error messages.
The nature of the tool is that some commands act purely locally, and some commands require network activities. Here are the various ways I can think of ordering or grouping the commands:
- alphabetical: makes sense perhaps if the user already knows the name of the commands, but I instinctively don't like this
- progressive: my term for the listing commands in the same order in which the user is likely to encounter them as they get to know the tool
- progressive, but grouped by (non-)network use: that is, similar order to progressive, but grouping by network related commands (import, export, push, sync) and non-network related commands (the rest).
Are there other criteria/options I should consider for determining optimal order when user clarity / ease-of-use is the goal?