The art of creating awesome CLI's

By Gabriel Bussolo

Elevator Pitch

Developers often use many CLI tools, but expertise doesn’t guarantee user-friendly designs. Let me give you tips on usability, user experience, project organization, and intention expression when creating custom CLIs for user satisfaction.


As developers, we often use dozens of CLI tools. However, being a good user does not always translate to creating good tools. When we create our own tools, we sometimes overlook usability, user experience, and project organization, resulting in a CLI that fails to express our intentions.

When creating a CLI, we should take the same care as we do when creating a web app. We need to consider how the user will achieve their goal with our tool, how it will improve their workflow, or if it will make it harder. We should ask ourselves, ‘How can the user achieve success with our tool? Is it intuitive to use, or does it require too much thinking to achieve their goals?’


Hi, I’m Gabriel Bussolo, a software engineer at Calyptia. I have 6 years of programming experience, including 2 years with Golang. At Calyptia, we take care of Fluent Bit (an open-source project) and have created a product called Core to make it easier to deploy on our clients’ Kubernetes, AWS EC2, and Google Compute Engine. To facilitate deployment, we created a CLI.

Since then, I have dedicated myself to learning more about CLIs and have created my own in addition to public ones. I’m excited to share my experience and what I’ve learned about CLIs.