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:

  1. alphabetical: makes sense perhaps if the user already knows the name of the commands, but I instinctively don't like this
  2. 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
  3. 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?