Discoverability. CLIs are notoriously bad at discoverability. GUIs, on the other hand, are much better about showing a user what options / commands are available.

If you look around, GUIs and CLIs are both around because they are each good at specific kinds of tasks. We use CLIs to remote into servers because it doesn't require much bandwidth and it works with high latency, etc.

The right tool for the right job. I don't understand this mentality that people have that one tool is superior to another in all cases (e.g., linux is always better than Windows, open source is always better than proprietary, etc).

You can make modern CLI tools today with great discoverability, there are a couple of great frameworks that makes this possible like Click[1] for Python or cobra[2] for Go.

[1] http://click.pocoo.org/6/

[2] https://github.com/spf13/cobra