Command line applications (CLI) are often the core tools for automating tasks, such as deploying production applications, running tests, building reports, migrating data, DevOps, and the list goes on and on. If you find yourself doing the same things over and over again, chances are you can automate those steps with a script and save yourself a lot of time.
A bad CLI can easily discourage users from interacting with it. Building successful CLIs requires attention to detail and empathy for the user in order to create a good user experience. It is very easy to get wrong.
- Commander.js - The complete solution for NodeJS command-line interfaces, has everything you need to declair program variables, handle actions, parse arguments, custom helps, custom event listeners, etc.
- ShellJS - A portable (Windows/Linux/macOS) implementation of Unix shell commands on top of the Node.js API. You can use it to eliminate your shell script’s dependency on Unix while still keeping its familiar and powerful commands.
- Inquirer.js - A collection of common interactive command line user interfaces, it eases the process of providing error feedback, asking questions, parsing input, validating answers, managing hierarchical prompts.
- Chalk - Chalk supports 256 colors and Truecolor (16 million colors) on supported terminal apps, detects color support automatically, ability to nest styles, etc.
- Ink - Ink provides the same component-based UI building experience that React offers in the browser, but for command-line apps. It uses Yoga to build Flexbox layouts in the terminal, so most CSS-like props are available in Ink as well. If you are already familiar with React, you already know Ink.