Command Line Utility for Stylish Interactive Prompts
(uses dialoguer underneath)
Get started with Enquirer, the most powerful command line utility for creating interactive CLI prompts.
enquirer
is available on Linux, macOS
With Homebrew
$ brew install termapps/tap/enquirer
This is recommended way for installation on macOS since updating to the new version is easy.
With cargo
$ cargo install enquirer
Pre-built binary executables are available at releases page for macOS (64bit), Linux (64bit, 32bit).
Download and unarchive the binary then put the executable in $PATH
.
Check roadmap for other ways
The main reason I created this tool is to use it as an stylish interactive and user-friendly prompt for bash scripting.
#!/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 for more information on subcommands.
enquirer 0.3.0
Command Line Utility for Stylish Interactive Prompts
USAGE:
enquirer [FLAGS] <SUBCOMMAND>
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
If you want the dialoguer theme used in this tool you can add this package to your Cargo.toml
use dialoguer::Confirmation;
use enquirer::ColoredTheme;
fn main() {
let prompt = Confirmation::with_theme(&ColoredTheme::default())
.with_text("Do you want to continue?")
.with_default(true);
if prompt.interact()? {
println!("Looks like you want to continue");
} else {
println!("nevermind then :(");
}
}
Prompt that returns true
or false
(as strings)
enquirer-confirm 0.3.0
Prompt that returns `true` or `false` (as strings)
USAGE:
enquirer confirm [FLAGS] [OPTIONS] --message <message>
FLAGS:
-d, --default Default value for the prompt is `true`
-h, --help Prints help information
OPTIONS:
-m, --message <message> Message for the prompt
Prompt that takes user input and returns a string
enquirer-input 0.3.0
Prompt that takes user input and returns a string
USAGE:
enquirer input [FLAGS] [OPTIONS] --message <message>
FLAGS:
-a, --allow-empty Allow empty input. Conflicts with `default`
-h, --help Prints help information
OPTIONS:
-d, --default <default> Default value for the prompt
-m, --message <message> Message for the prompt
Prompt that takes user input, hides it from the terminal, and returns a string
enquirer-secret 0.3.0
Prompt that takes user input, hides it from the terminal, and returns a string
USAGE:
enquirer secret [FLAGS] [OPTIONS] --message <message>
FLAGS:
-a, --allow-empty Allow empty secret
-h, --help Prints help information
OPTIONS:
-c, --confirm <confirm> Enable confirmation prompt with this message
-e, --error <error> Error message when secrets doesn't match during confirmation
-m, --message <message> Message for the prompt
Prompt that allows the user to select from a list of options
enquirer-select 0.3.0
Prompt that allows the user to select from a list of options
USAGE:
enquirer select [FLAGS] [OPTIONS] --message <message> [items]...
FLAGS:
-h, --help Prints help information
-p, --paged Enables paging. Uses your terminal size
OPTIONS:
-m, --message <message> Message for the prompt
-s, --selected <selected> Specify number of the item that will be selected by default
ARGS:
<items>... Items that can be selected
Prompt that allows the user to select multiple items from a list of options
enquirer-multi-select 0.3.0
Prompt that allows the user to select multiple items from a list of options
USAGE:
enquirer multi-select [FLAGS] [OPTIONS] --message <message> [--] [items]...
FLAGS:
-h, --help Prints help information
--no-inline Do not print the selected items on the prompt line
-p, --paged Enables paging. Uses your terminal size
OPTIONS:
-m, --message <message> Message for the prompt
-s, --selected <selected>... Specify numbers of items that will be selected by default
ARGS:
<items>... Items that can be selected
Prompt that allows the user to sort items in a list
enquirer-sort 0.3.0
Prompt that allows the user to sort items in a list
USAGE:
enquirer sort [FLAGS] --message <message> [items]...
FLAGS:
-h, --help Prints help information
--no-inline Do not print the sorted items on the prompt line
-p, --paged Enables paging. Uses your terminal size
OPTIONS:
-m, --message <message> Message for the prompt
ARGS:
<items>... Items that can be sorted
- Man page generation
- Packaging for other operating systems
- Auto Complete prompt (like fzf)
- Snippet Prompt
- Export hooks for Clap
- Select and Multi-Select prompts cursors are after the items list while waiting for user. Maybe change them to be on prompt line.
Please see CHANGELOG.md.
MIT/X11
Report here.
Pavan Kumar Sunkara (pavan.sss1991@gmail.com)