CLI-Max (read as climax)

Hi All,

I’ve built a library in Node.js called cli-max, It’s a library that tries to make the experience of building a CLI app easy and pleasant.

cli-max: An opinionated solution for building CLI applications using Node.js.

The API of cli-max consciously tries to make your code more declarative and thus be easier to build, understand and maintain.


  • supports both single and multi command CLI Apps. Ex: npm, git for Multi command and mkdir or touch for a single command app
  • supports option parsing out of the box
  • supports default sub-commands, you can configure a sub-command to be executed by default if no valid command name is passed at runtime.
  • Sub-Commands can have aliases, making it easy for end-users to pass alternative command names
  • Options/Flags can have aliases too (supports both short flags and long alternatives)
  • Options/Flags can be configured with default values
  • “help” details for every command and sub-command is auto-generated using the details provided in the configuration


I would love to get some feedback on this.

I love the educational approach you’ve taken with the docs. I think using your library as a teaching vehicle to help people understand cli development is a great approach to educate and spread the word about your tool.

Do you blog at all?

I am building my site right now and will soon start blogging there. Hopefully I’ll finish it very soon.:crossed_fingers:

This lib would probably be the first thing going on there.

Beyond the library I’d consider thinking about how people can use CLIs and generally the concepts of CLI creation and use, with your library as a tool to solve those problems.

You could focus on your library itself as well, but that has a more narrow audience where I think that general CLI development has a much broader audience to attract (and ultimately see cli-max).


Also, I am working on building a CLI helper that comes in-built with cli-max which would help the users set up a CLI project and generate code scaffolds to get started easily. This would be similar to what Angular-cli i.e, ng does for Angular.

1 Like