Inquirer.js
A collection of common interactive command line user interfaces
...If you don't want to affect other libraries that also rely on inquirer when you overwrite or add new prompt types. Internally, Inquirer uses the JS reactive extension to handle events and async flows. This mean you can take advantage of this feature to provide more advanced flows. For example, you can dynamically add questions to be asked.