Because once you work out how to upload contracts, you'll want to use many of the other capabilities like can I deploy, recording deployments, creating webhooks etc.
The CLI saves you having to build all of that. You can use the API of course, it's up to you.
What problem do you have with the CLI?