# sboudrias/inquirer.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sboudrias-inquirer-js).**

21,578 stars · 1,357 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/SBoudrias/Inquirer.js
- awesome-repositories: https://awesome-repositories.com/repository/sboudrias-inquirer-js.md

## Topics

`cli` `command-line` `javascript` `javascript-library` `node-js` `nodejs` `prompt` `typescript`

## Description

Inquirer.js is a command line input framework and prompt library for Node.js applications. It provides a structured set of tools for building interactive terminal interfaces, including menus, checklists, and text inputs, to gather user data and manage complex interactions.

The framework allows for the creation of dynamic user experiences through branching prompt logic and the resolution of asynchronous configurations. Users can define custom prompts using a provided API and localize interface text into different languages.

The library covers a wide range of input capabilities, including single and multiple choice selections, boolean confirmations, and real-time filtering and searching of lists. It also supports ranking items, selecting files from directories, and capturing long-form text by launching an external system editor.

## Tags

### Development Tools & Productivity

- [Interactive Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/advanced-execution-environments/interactive-command-line-interfaces.md) — Provides a comprehensive framework for building complex, interactive command-line interfaces. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Interactive CLI Tools](https://awesome-repositories.com/f/development-tools-productivity/interactive-cli-tools.md) — Provides a comprehensive framework for building command-line tools with advanced interactive user experiences.
- [Interactive Input Frameworks](https://awesome-repositories.com/f/development-tools-productivity/interactive-input-frameworks.md) — Provides a structured way to handle complex user interactions and branching logic within a terminal.
- [Terminal User Interface Frameworks](https://awesome-repositories.com/f/development-tools-productivity/terminal-user-interface-frameworks.md) — Serves as a primary framework for collecting user data through interactive terminal interfaces. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Command Line Configuration](https://awesome-repositories.com/f/development-tools-productivity/command-line-configuration.md) — Guides users through a multi-step configuration process using conditional branching logic.
- [File Selection Pickers](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/command-line-applications/file-selection-pickers.md) — Provides interactive pickers for navigating directories and selecting specific files. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Custom Prompt APIs](https://awesome-repositories.com/f/development-tools-productivity/custom-prompt-apis.md) — Provides an API and testing utilities to define and implement custom interactive prompt behaviors. ([source](https://github.com/sboudrias/inquirer.js#readme))

### Part of an Awesome List

- [Node.js CLI Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/node-js-cli-libraries.md) — Serves as a library for building interactive command line interfaces specifically for Node.js applications.
- [List Filtering](https://awesome-repositories.com/f/awesome-lists/security/vpn-as-a-service/list-filtering.md) — Ships real-time filtering and search capabilities for navigating long lists of selectable options. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [CLI Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/cli-frameworks.md) — Interactive CLI prompt collection.
- [Command Line Interfaces](https://awesome-repositories.com/f/awesome-lists/devtools/command-line-interfaces.md) — Library for creating interactive command-line prompts.
- [JavaScript CLI Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/javascript-cli-frameworks.md) — Library for creating beautiful, interactive command-line prompts.

### Operating Systems & Systems Programming

- [Terminal Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-interface-systems/terminal-interfaces.md) — Ships a set of components for building interactive terminal menus, checklists, and text inputs.

### Programming Languages & Runtimes

- [Promise-Based Flow Control](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/asynchronous-execution-engines/asynchronous-control-flows/promise-based-flow-control.md) — Manages the sequence of interactive prompts using asynchronous promise chains.

### User Interface & Experience

- [Conditional Prompt Logic](https://awesome-repositories.com/f/user-interface-experience/conditional-prompt-logic.md) — Supports branching prompt logic to ask specific questions based on previous user answers. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Multi-Select Inputs](https://awesome-repositories.com/f/user-interface-experience/date-selection-components/multi-select-inputs.md) — Implements checklist-style prompts where users can toggle multiple items on or off. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Processes raw keyboard streams to update the terminal interface in real time.
- [Input Collection Components](https://awesome-repositories.com/f/user-interface-experience/input-collection-components.md) — Ships a wide variety of interactive input components including lists, checkboxes, and toggles. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Single-Select Inputs](https://awesome-repositories.com/f/user-interface-experience/multi-select-inputs/single-select-inputs.md) — Provides components for users to choose a single item from a list of choices. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Terminal Rendering Engines](https://awesome-repositories.com/f/user-interface-experience/terminal-rendering-engines.md) — Tracks UI state and uses ANSI escape codes to redraw terminal lines for a dynamic experience.
- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — Provides a framework for building interactive text-based interfaces to collect user data within a terminal. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Terminal Input Validation](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation/input-validation-rules/selection-input-validators/terminal-input-validation.md) — Collects and structures terminal input through formatted prompts with built-in validation logic.
- [Input Response Aggregators](https://awesome-repositories.com/f/user-interface-experience/input-response-aggregators.md) — Combines answers from multiple prompts into a single object for easier data management. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [List Reordering Interfaces](https://awesome-repositories.com/f/user-interface-experience/list-reordering-interfaces.md) — Allows users to prioritize tasks or rank items by changing the sequence of selected options. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [Prompt Interfaces](https://awesome-repositories.com/f/user-interface-experience/prompt-interfaces.md) — Implements a common contract to ensure consistent behavior across all interactive prompt types.
- [List Search Filters](https://awesome-repositories.com/f/user-interface-experience/selectable-lists/list-search-filters.md) — Includes a real-time search interface to quickly filter and select items from long lists. ([source](https://github.com/sboudrias/inquirer.js#readme))
- [User Confirmation Dialogs](https://awesome-repositories.com/f/user-interface-experience/user-confirmation-dialogs.md) — Implements boolean confirmation prompts to require explicit user approval before proceeding with actions. ([source](https://github.com/sboudrias/inquirer.js#readme))

### Web Development

- [Node.js Terminal Frameworks](https://awesome-repositories.com/f/web-development/terminal-layout-engines/node-js-terminal-frameworks.md) — Offers a Node.js-based framework for creating responsive and interactive terminal user interfaces.
