# Inquirer.js changelog > Interactive command-line prompts for Node.js. - Vendor: Inquirer - Category: Developer Tools - Official site: https://github.com/SBoudrias/Inquirer.js - Tracked by: What's New (https://whatsnew.fyi/product/inquirer) - Harvested from: GitHub (SBoudrias/Inquirer.js) - Entries below: 25 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 8.6.0 - Date: 2026-08-19 - Version: 8.6.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.6.0 - **added** — Add initialValue option to @inquirer/search to pre-fill the search input - **changed** — Update @inquirer/core to 12.0.0, which makes the useState setter accept a reducer/updater function - **fixed** — Fix floating-point step errors in @inquirer/number - **fixed** — Allow @inquirer/number to accept explicit undefined as default - **fixed** — Allow @inquirer/confirm to accept explicit undefined as default - **fixed** — Allow @inquirer/editor to accept explicit undefined as default ##### @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](https://github.com/SBoudrias/Inquirer.js/pull/2205)) ###### What's fixed - **`@inquirer/number`** — avoid floating-point step errors; accept explicit `undefined` as default ([#2166](https://github.com/SBoudrias/Inquirer.js/pull/2166), [#2182](https://github.com/SBoudrias/Inquirer.js/pull/2182)) - **`@inquirer/confirm`** — accept explicit `undefined` as default ([#2182](https://github.com/SBoudrias/Inquirer.js/pull/2182)) - **`@inquirer/editor`** — accept explicit `undefined` as default ([#2182](https://github.com/SBoudrias/Inquirer.js/pull/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. ### 8.5.2 - Date: 2026-05-31 - Version: 8.5.2 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.2 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.5.2 - Fix security warnings in external-editor ### 8.5.1 - Date: 2026-05-29 - Version: 8.5.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.5.1 - **changed** — Rolled back mute-stream dependency from v4 to v3 to restore compatibility with supported Node.js versions - **changed** — Updated explicit engines field to match the minimum Node.js version already enforced by the tooling - 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. ### 8.5.0 - Date: 2026-05-25 - Version: 8.5.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.5.0 - **added** — Read env variable INQUIRER_KEYBINDINGS to enable vim or emacs keybindings as a user preference - **changed** — Search feature in the select prompt is disabled when using vim or emacs keybindings - **fixed** — Line wraps no longer cause the cursor to be mispositioned relative to the input - 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. ### 8.4.3 - Date: 2026-05-10 - Version: 8.4.3 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.3 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.4.3 - **fixed** — Windows rendering bug - **fixed** — Preserve exact literal types in choices array (Typescript only) - **fixed** — Allow input default value to be of type undefined (Typescript only) * 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 ### 8.4.2 - Date: 2026-04-19 - Version: 8.4.2 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.2 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.4.2 - Fix: some Windows terminals would freeze and not react to keypresses. ### 8.4.1 - Date: 2026-04-07 - Version: 8.4.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.4.1 * Improve `expand` prompt type inferrence. ### 8.4.0 - Date: 2026-04-06 - Version: 8.4.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.4.0 - **added** — Add a loading message while validating editor prompt input - **changed** — Improve type inference with checkbox, search and expand prompts - **fixed** — Fix editor prompt not always properly handling editor path on windows - 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. ### 8.3.2 - Date: 2026-03-15 - Version: 8.3.2 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.2 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.3.2 - Fix broken 8.3.1 release process. ### 8.3.1 - Date: 2026-03-15 - Version: 8.3.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.3.1 - Bump dependencies ### 8.3.0 - Date: 2026-02-22 - Version: 8.3.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.3.0 - **fixed** — Keypresses happening before a prompt is rendered are now ignored - **fixed** — Checkbox elements that are both checked and disabled are now always included in the returned array - **added** — Cursor will now hover disabled options of the list while still preventing interaction with them - **added** — Various new theme options to make all prompts content localizable - 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](https://github.com/SBoudrias/Inquirer.js/tree/main/packages/i18n)! ### 8.2.1 - Date: 2026-02-14 - Version: 8.2.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.2.1 - chore: Switch `wrap-ansi` with `fast-wrap-ansi` ### 8.2.0 - Date: 2026-01-11 - Version: 8.2.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.2.0 - **added** — Add support for `default` in search prompts - **added** — Add support for `description` of choices in rawlist prompts, displayed under the list when the choice is highlighted - 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 ### 8.1.0 - Date: 2025-12-13 - Version: 8.1.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.1.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.1.0 - **added** — rawlist now supports default option - **fixed** — select now infers return type properly when passing a choices array of string literals * Feat: `rawlist` now supports `default` option. * Fix: `select` now infer return type properly when passing a `choices` array of string literals. ### 8.0.2 - Date: 2025-12-02 - Version: 8.0.2 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.2 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.0.2 - **fixed** — Fix TypeScript not discovering types when moduleResolution is set to commonjs * 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) ### 8.0.0 - Date: 2025-11-16 - Version: 8.0.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/8.0.0 - **removed** — CommonJS support; all packages are now ESM-only - **changed** — Minimum Node.js version is now 20.x (specifically >=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0) - **removed** — list prompt alias from inquirer package; use select instead - **removed** — helpMode theme property; use theme.style.keysHelpTip instead - **removed** — instructions config property; use theme.style.keysHelpTip instead - **removed** — cancel() method on prompt return promise; use AbortSignal instead - **changed** — Replaced yoctocolors with Node.js built-in util.styleText() for terminal colors #### 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. ```js // ❌ 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 ```js // ❌ 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 ```js // ❌ 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. ```js // ❌ 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. ### 7.10.1 - Date: 2025-11-12 - Version: 7.10.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.10.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.10.1 - **changed** — Downgraded mute-stream to version 2 to maintain Node 18 compatibility - [Node 18 compat] Downgraded to mute-stream@2 to maintain Node 18 compatibility. ### 7.10.0 - Date: 2025-11-08 - Version: 7.10.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.10.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.10.0 - **added** — Add support for simple RegExp validation with `pattern`/`patternError` in `@inquirer/input` - **fixed** — Fix typo in `@inquirer/editor` renaming `waitForUseInput` to `waitForUserInput` * feat `@inquirer/input`: Now support simple RegExp validation with `pattern`/`patternError`. * fix `@inquirer/editor`: Fix typo `s/waitForUseInput/waitForUserInput` * Bump dependencies ### 7.9.0 - Date: 2025-10-13 - Version: 7.9.0 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.9.0 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.9.0 - **added** — New design for the keys help tip with themable and localizable styling via theme.style.keysHelpTip - **added** — Option to match up/down actions with vim or emacs keybindings, enabled with theme.keybindings - 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` ### 7.8.6 - Date: 2025-09-14 - Version: 7.8.6 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.6 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.6 - Reduce number of transitive dependencies ### 7.8.5 - Date: 2025-09-14 - Version: 7.8.5 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.5 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.5 - **fixed** — Allow specifying numbers as explicit keys of options within the rawlist prompt type - Fix #1834: (rawlist) Allows specifying numbers as explicit keys of option within the list. ### 7.8.4 - Date: 2025-08-24 - Version: 7.8.4 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.4 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.4 - **fixed** — Remove vim/emacs bindings that conflicted with the type-to-search feature - fix: Remove "easter-egg" vim/emacs bindings conflicting with the type-to-search feature. ### 7.8.3 - Date: 2025-08-17 - Version: 7.8.3 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.3 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.3 - **fixed** — Fix Unix yes not properly being processed by the confirm prompt - Fix Unix `yes` not properly being processed by the confirm prompt. (`yes | node confirm-script.js`) ### 7.8.2 - Date: 2025-08-13 - Version: 7.8.2 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.2 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.2 - Make `@types/node` an optional peer dependency. ### 7.8.1 - Date: 2025-08-12 - Version: 7.8.1 - Original notes: https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.8.1 - Permalink: https://whatsnew.fyi/product/inquirer/releases/7.8.1 - **changed** — Replace `external-editor` dependency with new `@inquirer/external-editor` - **security** — Remove the vulnerable `tmp` transitive dependency from the dependency tree - Replace `external-editor` dependency with new `@inquirer/external-editor`. This remove the vulnerable `tmp` transitive dependency from the dependency tree.