enquirer 0.3.0

Command Line Utility for Stylish Interactive Prompts
Documentation

Getting started

Get started with Enquirer, the most powerful command line utility for creating interactive CLI prompts.

Install

enquirer is available on Linux, macOS

With Homebrew

$ brew tap termapps/tap
$ brew install enquirer

This is recommended way for installation on macOS since updating to the new version is easy.

With cargo

$ cargo install enquirer

Direct

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

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.

#!/bin/bash

TRUE="true"
CONFIRM=$(enquirer confirm -m "Do you want to continue?" -d)

if [ "$TRUE" = "$CONFIRM" ]; 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

Library

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 :(");
    }
}

Prompts

Confirm Prompt

Prompt that returns true or false (as strings)

Usage

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

Input Prompt

Prompt that takes user input and returns a string

Usage

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

Secret Prompt

Prompt that takes user input, hides it from the terminal, and returns a string

Usage

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

Select Prompt

Prompt that allows the user to select from a list of options

Usage

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

Multi Select Prompt

Prompt that allows the user to select multiple items from a list of options

Usage

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

Sort Prompt

Prompt that allows the user to sort items in a list

Usage

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

About

Roadmap

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.

License

MIT/X11

Bug Reports

Report here.

Creator

Pavan Kumar Sunkara (pavan.sss1991@gmail.com)

Follow me on github, twitter