Inquirer.js

Developer Tools

Interactive command-line prompts for Node.js.

Latest 8.6.0 · by InquirerWebsiteSBoudrias/Inquirer.js

Release activity

Release activity — 23 releases across 21 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 3, 20261 release on May 10, 2026No releases on May 17, 2026No releases on May 24, 20261 release on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026
MondayNo releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 20261 release on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026
TuesdayNo releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026
WednesdayNo releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 20261 release on Aug 19, 2026
ThursdayNo releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 20261 release on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026

23 releases in the last year, busiest day 2

Changelog

8.6.0

Latest
Added 1
  • Add initialValue option to @inquirer/search to pre-fill the search input
Changed 1
  • Update @inquirer/core to 12.0.0, which makes the useState setter accept a reducer/updater function
Fixed 4
  • Fix floating-point step errors in @inquirer/number
  • Allow @inquirer/number to accept explicit undefined as default
  • Allow @inquirer/confirm to accept explicit undefined as default
  • Allow @inquirer/editor to accept explicit undefined as default

From Inquirer.js

@inquirer/prompts@8.6.0

The all-in-one prompts package, re-exporting every individual prompt at its latest version.

Highlights

This release rides on @inquirer/core@12.0.0, which makes the useState setter accept a reducer/updater function. It also brings a new initialValue option to search, plus fixes for number, confirm, and editor.

What's new
  • @inquirer/search — new initialValue?: string option to pre-fill the search input (#2205)
What's fixed
  • @inquirer/number — avoid floating-point step errors; accept explicit undefined as default (#2166, #2182)
  • @inquirer/confirm — accept explicit undefined as default (#2182)
  • @inquirer/editor — accept explicit undefined as default (#2182)
Included prompts
  • @inquirer/checkbox@5.2.2
  • @inquirer/confirm@6.2.0
  • @inquirer/editor@5.3.0
  • @inquirer/expand@5.1.2
  • @inquirer/input@5.1.3
  • @inquirer/number@4.2.0
  • @inquirer/password@5.1.2
  • @inquirer/rawlist@5.3.2
  • @inquirer/search@4.3.0
  • @inquirer/select@5.2.2

Note: This release depends on @inquirer/core@^12.0.0, which contains a breaking change to the useState setter type (it now accepts a reducer function). See the @inquirer/core@12.0.0 release notes for details.

View originalPermalink
How 8.6.0 went

8.5.2

  • Fix security warnings in external-editor
View originalPermalink
How 8.5.2 went

8.5.1

Changed 2
  • Rolled back mute-stream dependency from v4 to v3 to restore compatibility with supported Node.js versions
  • Updated explicit engines field to match the minimum Node.js version already enforced by the tooling

From Inquirer.js

  • Rolled back mute-stream dependency from v4 to v3 to undo breaking compatible engines.
  • Added tooling to prevent regression of the above in the future. This surfaced our min engines already enforced a higher limit, so adjusted the explicit limits to match the current state.
View originalPermalink
How 8.5.1 went

8.5.0

Added 1
  • Read env variable INQUIRER_KEYBINDINGS to enable vim or emacs keybindings as a user preference
Changed 1
  • Search feature in the select prompt is disabled when using vim or emacs keybindings
Fixed 1
  • Line wraps no longer cause the cursor to be mispositioned relative to the input

From Inquirer.js

  • Feat: Read env variable INQUIRER_KEYBINDINGS to enable vim or emacs keybindings; making this a user preference instead of a library author preference. One caveat is doing so disable the search feature in the select prompt. Syntax: INQUIRER_KEYBINDINGS=vim,emacs.
  • Fix: Line wraps would sometime cause the cursor to be mispositioned relative to the input.
  • Chore: Bump dependencies.
View originalPermalink
How 8.5.0 went

8.4.3

Fixed 3
  • Windows rendering bug
  • Preserve exact literal types in choices array (Typescript only)
  • Allow input default value to be of type undefined (Typescript only)

From Inquirer.js

  • Fix: Windows rendering bug
  • Fix: Preserve exact literal types in choices array (Typescript only)
  • Fix: Allow input default value to be of type undefined (Typescript only)
  • Bump dependencies
View originalPermalink
How 8.4.3 went

8.4.2

  • Fix: some Windows terminals would freeze and not react to keypresses.
View originalPermalink
How 8.4.2 went

8.4.1

  • Improve expand prompt type inferrence.
View originalPermalink
How 8.4.1 went

8.4.0

Added 1
  • Add a loading message while validating editor prompt input
Changed 1
  • Improve type inference with checkbox, search and expand prompts
Fixed 1
  • Fix editor prompt not always properly handling editor path on windows

From Inquirer.js

  • Feat: Added a loading message while validating editor prompt input.
  • Type improvement: Better type inference with checkbox, search and expand prompts.
  • Fix: editor prompt not always properly handling editor path on windows.
View originalPermalink
How 8.4.0 went

8.3.2

  • Fix broken 8.3.1 release process.
View originalPermalink
How 8.3.2 went

8.3.0

Added 2
  • Cursor will now hover disabled options of the list while still preventing interaction with them
  • Various new theme options to make all prompts content localizable
Fixed 2
  • Keypresses happening before a prompt is rendered are now ignored
  • Checkbox elements that are both checked and disabled are now always included in the returned array

From Inquirer.js

  • Fix: Keypresses happening before a prompt is rendered are now ignored.
  • Fix (checkbox): Element who're both checked and disabled are now always included in the returned array.
  • Feat (select/checkbox): Cursor will now hover disabled options of the list; but they still cannot be interacted with. This prevents the cursor jumping ahead in ways that can be confusing.
  • Feat: various new theme options to make all prompts content localizable.

Finally, see our new @inquirer/i18n package!

View originalPermalink
How 8.3.0 went

8.2.1

  • chore: Switch wrap-ansi with fast-wrap-ansi
View originalPermalink
How 8.2.1 went

8.2.0

Added 2
  • Add support for `default` in search prompts
  • Add support for `description` of choices in rawlist prompts, displayed under the list when the choice is highlighted

From Inquirer.js

  • feat(search): Add support for default.
  • feat(rawlist): Add support for description of choices. That information is displayed under the list when the choice is highlighted.
  • Bump dependencies
View originalPermalink
How 8.2.0 went

8.1.0

Added 1
  • rawlist now supports default option
Fixed 1
  • select now infers return type properly when passing a choices array of string literals

From Inquirer.js

  • Feat: rawlist now supports default option.
  • Fix: select now infer return type properly when passing a choices array of string literals.
View originalPermalink
How 8.1.0 went

8.0.2

Fixed 1
  • Fix TypeScript not discovering types when moduleResolution is set to commonjs

From Inquirer.js

  • Fix Typescript not discovering types when moduleResolution is set to commonjs (you probably want to fix that in your project if it's still in your tsconfig)
View originalPermalink
How 8.0.2 went

8.0.0

Changed 2
  • Minimum Node.js version is now 20.x (specifically >=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0)
  • Replaced yoctocolors with Node.js built-in util.styleText() for terminal colors
Removed 5
  • CommonJS support; all packages are now ESM-only
  • list prompt alias from inquirer package; use select instead
  • helpMode theme property; use theme.style.keysHelpTip instead
  • instructions config property; use theme.style.keysHelpTip instead
  • cancel() method on prompt return promise; use AbortSignal instead

From Inquirer.js

Release Notes

🚨 Breaking Changes

This is a major release that modernizes the codebase for Node.js ≥ 20.

ESM Only - No More CommonJS Support

Impact: All packages are now ESM-only. CommonJS imports are no longer supported.

If you're on modern Node versions (≥ 20), this should be transparent and have no impact.

Node.js Version Requirement

Minimum Node.js version is now 20.x

Node.js versions below 20 are no longer supported. Please upgrade to Node.js 20 or later.

Node min versions: >=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0

Deprecated APIs Removed

The following deprecated APIs have been removed after being deprecated in previous releases:

list prompt alias removed (affects inquirer package only)

The list alias has been removed from the inquirer package. This only impacts users of the legacy inquirer package, not users of @inquirer/prompts or individual prompt packages.

// ❌ No longer available (inquirer package only)
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'list', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);

// ✅ Use 'select' instead
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'select', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);
helpMode theme property removed
// ❌ No longer available
const answer = await select({
  theme: { helpMode: 'never' }
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await select({
  theme: {
    style: {
      keysHelpTip: () => undefined // or your custom styling function
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select
instructions config property removed
// ❌ No longer available
const answer = await checkbox({
  instructions: 'Custom instructions'
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await checkbox({
  theme: {
    style: {
      keysHelpTip: (text) => 'Custom instructions'
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select
cancel() method removed

The cancel() method on prompt return custom Promise has been removed.

// ❌ No longer available
const answerPromise = input({ message: 'Name?' });
answerPromise.cancel();
const answer = await answerPromise;

// ✅ Use AbortSignal instead
const controller = new AbortController();
const answer = await input(
  { message: 'Name?' },
  { signal: controller.signal }
);
controller.abort();
Color Library Change: yoctocolors → Node.js styleText

Internal change: The project now uses Node.js built-in util.styleText() instead of the yoctocolors package for terminal colors. This makes Inquirer smaller and reduces risks of vulnerabilities coming from transitive dependencies.

View originalPermalink
How 8.0.0 went

7.10.1

Changed 1
  • Downgraded mute-stream to version 2 to maintain Node 18 compatibility

From Inquirer.js

  • [Node 18 compat] Downgraded to mute-stream@2 to maintain Node 18 compatibility.
View originalPermalink
How 7.10.1 went

7.10.0

Added 1
  • Add support for simple RegExp validation with `pattern`/`patternError` in `@inquirer/input`
Fixed 1
  • Fix typo in `@inquirer/editor` renaming `waitForUseInput` to `waitForUserInput`

From Inquirer.js

  • feat @inquirer/input: Now support simple RegExp validation with pattern/patternError.
  • fix @inquirer/editor: Fix typo s/waitForUseInput/waitForUserInput
  • Bump dependencies
View originalPermalink
How 7.10.0 went

7.9.0

Added 2
  • New design for the keys help tip with themable and localizable styling via theme.style.keysHelpTip
  • Option to match up/down actions with vim or emacs keybindings, enabled with theme.keybindings

From Inquirer.js

  • New design for the keys help tip. Themable/localizable with theme.style.keysHelpTip.
  • Re-introduce option to match up/down actions with vim or emacs keybindings. Enable with theme.keybindings
View originalPermalink
How 7.9.0 went

7.8.6

  • Reduce number of transitive dependencies
View originalPermalink
How 7.8.6 went

7.8.5

Fixed 1
  • Allow specifying numbers as explicit keys of options within the rawlist prompt type

From Inquirer.js

  • Fix #1834: (rawlist) Allows specifying numbers as explicit keys of option within the list.
View originalPermalink
How 7.8.5 went

7.8.4

Fixed 1
  • Remove vim/emacs bindings that conflicted with the type-to-search feature

From Inquirer.js

  • fix: Remove "easter-egg" vim/emacs bindings conflicting with the type-to-search feature.
View originalPermalink
How 7.8.4 went

7.8.3

Fixed 1
  • Fix Unix yes not properly being processed by the confirm prompt

From Inquirer.js

  • Fix Unix yes not properly being processed by the confirm prompt. (yes | node confirm-script.js)
View originalPermalink
How 7.8.3 went

7.8.2

  • Make @types/node an optional peer dependency.
View originalPermalink
How 7.8.2 went

7.8.1

Changed 1
  • Replace `external-editor` dependency with new `@inquirer/external-editor`
Security 1
  • Remove the vulnerable `tmp` transitive dependency from the dependency tree

From Inquirer.js

  • Replace external-editor dependency with new @inquirer/external-editor. This remove the vulnerable tmp transitive dependency from the dependency tree.
View originalPermalink
How 7.8.1 went
View all

Discussion

If you publish Inquirer.js, you can claim this product by proving you administer its repository.