Prompt and user input library.

Downloads in past


0.2.08 years ago9 years agoMinified + gzip package size for cli-input in KB


Table of Contents
Install Features Documentation Usage
* [Options](#options)
* [Prompt](#prompt-1)
  * [prompt(options, cb)](#promptoptions-cb)
  * [run(prompts, cb)](#runprompts-cb)
  * [select(options, cb)](#selectoptions-cb)
  * [multiline(options, cb)](#multilineoptions-cb)
Examples Developer
* [Test](#test)
* [Readme](#readme)
Prompt and user input library, a component of the toolkit.


npm i cli-input --save


  • ANSI escape sequences fully supported.
  • Comprehensive history file support.
  • Tab completion functions.
  • Schema validation.
  • Native type coercion.
  • Infinite REPL prompts.
  • Collate multiple prompts (set) into an object.
  • Collections of common prompt sets (username/password etc).
  • Question prompts (arbitrary input).
  • Confirmation prompts (binary response).
  • Silent prompts (passwords etc).
  • Select option lists.
  • Multiline input.


See the examples, test specifications have a poke around the source and see below.


var prompt = require('cli-input');
var ps = prompt({infinite: true});
ps.on('value', function(value, options, ps) {
  // do something with value


The Prompt class accepts the following options at instantiation:
  • input: Input stream, default is process.stdin.
  • output: Output stream, default is process.stdout.
  • prompt: Default prompt string, defaults to >.
  • replace: Replacement character for silent prompts, default is *.
  • infinite: Whether the prompt should be displayed infinitely, default is false.
  • native: Object that defines configuration for native type coercion, default is null.
  • restore: When running in infinite mode and another set of prompts is executed, should the default infinite prompt be displayed at the end of the run, default is true.
  • repeat: Repeat prompt on invalid input, default is true.
  • trim: Remove leading and trailing whitespace from input lines, default is false.
  • split: Split line into an array on the specified string or regexp, default is null.
  • delimiter: Default value for the :delimiter format property, default is .
  • name: Default value for the :name format property, default is path.basename(process.argv[1]).
  • format: Prompt format string specification, default is :name :delimiter :location :status :message :default.


prompt(options, cb)

Show a single prompt.

run(prompts, cb)

Run an array of prompt definitions and invoke callback with the result. The result contains a map property which maps the definitions key to the input value.

select(options, cb)

Display select menu output followed by a prompt.

multiline(options, cb)

Capture multiline input.
Note this overrides several internal readline module methods, use with discretion.


Examples are in the example
directory, execute an example with:
node example/repl.js

Caution: the above example executes commands via the shell, be careful.



Run all tests with code coverage:
npm test

Execute an individual test with:
npm run pretest && NODE_ENV=test ./node_modules/.bin/mocha --reporter list ./test/spec/confirm.js


To build the readme file from the partial definitions (requires mdp
npm run readme

Generated by mdp(1).