enquirer
Command line utility for stylish interactive prompts
(uses dialoguer underneath)
## Getting started
Get started with Enquirer, the most powerful command line utility for creating interactive CLI prompts.
* [Install](#install)
* [Usage](#usage)
* [Prompts](#prompts)
* [About](#about)
## Install
`enquirer` is available on Linux, macOS
### With [Homebrew](https://brew.sh/)
```
$ brew install termapps/tap/enquirer
```
This is recommended way for installation on macOS since updating to the new version is easy.
### With [cargo](https://crates.io/)
```
$ cargo install enquirer
```
### Direct
Pre-built binary executables are available at [releases page](https://github.com/termapps/enquirer/releases) for macOS (64bit), Linux (64bit, 32bit).
Download and unarchive the binary then put the executable in `$PATH`.
> Check [roadmap](#roadmap) for other ways
## Usage
### Command Line Utility
The main reason I created this tool is to use it as an stylish interactive and user-friendly prompt for bash scripting.
```bash
#!/bin/bash
confirm=$(enquirer confirm -m "Do you want to continue?" -d)
if [ "$confirm" = "true" ]; then
echo "Continuing ..."
else
echo "Thanks for using this tool. Quitting ..."
exit
fi
```
See [prompts](#prompts) for more information on subcommands.
```
enquirer 0.5.1
Command Line Utility for Stylish Interactive Prompts
USAGE:
enquirer [FLAGS]
FLAGS:
-h, --help Prints help information
--no-color Disable colors in the prompt
-V, --version Prints version information
SUBCOMMANDS:
confirm Prompt that returns `true` or `false` (as strings)
help Prints this message or the help of the given subcommand(s)
input Prompt that takes user input and returns a string
multi-select Prompt that allows the user to select multiple items from a list of options
secret Prompt that takes user input, hides it from the terminal, and returns a string
select Prompt that allows the user to select from a list of options
sort Prompt that allows the user to sort items in a list
```
## Prompts
* [Confirm Prompt](#confirm-prompt)
* [Input Prompt](#input-prompt)
* [Secret Prompt](#secret-prompt)
* [Select Prompt](#select-prompt)
* [Multi Select Prompt](#multi-select-prompt)
* [Sort Prompt](#sort-prompt)
### Confirm Prompt
Prompt that returns `true` or `false` (as strings)
#### Usage
```
enquirer-confirm 0.5.1
Prompt that returns `true` or `false` (as strings)
USAGE:
enquirer confirm [FLAGS] --message
FLAGS:
-c, --cancel Makes the prompt cancellable with 'Esc' or 'q'
-d, --default Sets the default value for the prompt as `true`
-h, --help Prints help information
OPTIONS:
-m, --message Message for the prompt
```
### Input Prompt
Prompt that takes user input and returns a string
#### Usage
```
enquirer-input 0.5.1
Prompt that takes user input and returns a string
USAGE:
enquirer input [FLAGS] [OPTIONS] --message
FLAGS:
-a, --allow-empty Allow empty input. Conflicts with `default`
-h, --help Prints help information
OPTIONS:
-d, --default Default value for the prompt
-m, --message Message for the prompt
```
### Secret Prompt
Prompt that takes user input, hides it from the terminal, and returns a string
#### Usage
```
enquirer-secret 0.5.1
Prompt that takes user input, hides it from the terminal, and returns a string
USAGE:
enquirer secret [FLAGS] [OPTIONS] --message
FLAGS:
-a, --allow-empty Allow empty secret
-h, --help Prints help information
OPTIONS:
-c, --confirm Enable confirmation prompt with this message
-e, --error Error message when secrets doesn't match during confirmation
-m, --message Message for the prompt
```
### Select Prompt
Prompt that allows the user to select from a list of options
#### Usage
```
enquirer-select 0.5.1
Prompt that allows the user to select from a list of options
USAGE:
enquirer select [FLAGS] [OPTIONS] --message [items]...
FLAGS:
-c, --cancel Makes the prompt cancellable with 'Esc' or 'q'
-h, --help Prints help information
-i, --index Returns index of the selected item instead of item itself
OPTIONS:
-m, --message Message for the prompt
-s, --selected Specify number of the item that will be selected by default
ARGS:
... Items that can be selected
```
### Multi Select Prompt
Prompt that allows the user to select multiple items from a list of options
#### Usage
```
enquirer-multi-select 0.5.1
Prompt that allows the user to select multiple items from a list of options
USAGE:
enquirer multi-select [FLAGS] [OPTIONS] --message [--] [items]...
FLAGS:
-c, --cancel Makes the prompt cancellable with 'Esc' or 'q'
-h, --help Prints help information
-i, --index Returns index of the selected items instead of items itself
--no-inline Do not print the selected items on the prompt line
-d, --default Makes the prompt return default values as given if --cancel option is present
OPTIONS:
-m, --message Message for the prompt
-s, --selected ... Specify numbers of items that will be selected by default
ARGS:
... Items that can be selected
```
### Sort Prompt
Prompt that allows the user to sort items in a list
#### Usage
```
enquirer-sort 0.5.1
Prompt that allows the user to sort items in a list
USAGE:
enquirer sort [FLAGS] --message [items]...
FLAGS:
-c, --cancel Makes the prompt cancellable with 'Esc' or 'q'
-h, --help Prints help information
-i, --index Returns index of the sorted items instead of items itself
--no-inline Do not print the sorted items on the prompt line
-d, --default Makes the prompt return default order as given if --cancel option is present
OPTIONS:
-m, --message Message for the prompt
ARGS:
... Items that can be sorted
```
## About
### Roadmap
* [Man page generation](https://github.com/clap-rs/clap/issues/552)
* Packaging for other operating systems
* [Auto Complete prompt](https://github.com/enquirer/enquirer#autocomplete-prompt) (like fzf)
* [Snippet Prompt](https://github.com/enquirer/enquirer#snippet-prompt)
* [Export hooks for Clap](https://github.com/clap-rs/clap/issues/1471)
#### Dialoguer issues
* Select and Multi-Select prompts cursors are after the items list while waiting for user. Maybe change them to be on prompt line.
### Changelog
Please see [CHANGELOG.md](CHANGELOG.md).
### License
MIT/X11
### Bug Reports
Report [here](http://github.com/termapps/enquirer/issues).
### Creator
Pavan Kumar Sunkara (pavan.sss1991@gmail.com)
Follow me on [github](https://github.com/users/follow?target=pksunkara), [twitter](http://twitter.com/pksunkara)