inquirer
14.2.5 · 27 Oct 2026MIT59.6M / weekRepositoryHomepagenpmAtom feed
245 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 14.x · latest line
14.2.4
19 Oct 202614.2.2
7 Sep 2026Fixed a race where keystrokes batched in the same tick as the key that settled a prompt could still reach keypress handlers after the prompt was done, cancelled, or aborted (
@inquirer/core, #2255, closes #1816).confirm()now trims surrounding whitespace from answers before matching yes/no keywords (@inquirer/confirm, #2254).@inquirer/core@^12.0.3
inquirer@14.2.2
The umbrella package, bundling
@inquirer/promptsand@inquirer/core.What's new
Fixed a race where keystrokes batched in the same tick as the key that settled a prompt could still reach keypress handlers after the prompt was done, cancelled, or aborted (
@inquirer/core, #2255, closes #1816).confirm()now trims surrounding whitespace from answers before matching yes/no keywords (@inquirer/confirm, #2254).
Included
@inquirer/core@^12.0.3@inquirer/prompts@^8.7.2
14.2.1
2 Sep 2026Published manifests now pin
@inquirer/typeto an exact version. Since these type definitions leak into consumers'tscruns, a semver range on the types-only dependency could break downstream TypeScript builds without any change to Inquirer.js itself (#2247, fixes #2244).@inquirer/core@^12.0.2@inquirer/prompts@^8.7.1
inquirer@14.2.1
The umbrella package, bundling
@inquirer/promptsand@inquirer/core.What's new
Published manifests now pin
@inquirer/typeto an exact version. Since these type definitions leak into consumers'tscruns, a semver range on the types-only dependency could break downstream TypeScript builds without any change to Inquirer.js itself (#2247, fixes #2244).
Included
@inquirer/core@^12.0.2@inquirer/prompts@^8.7.1@inquirer/type@4.1.1(pinned exactly)@inquirer/ansi@^2.0.8
14.2.0
26 Aug 2026Updated to
@inquirer/prompts@^8.7.0and@inquirer/core@^12.0.1.Includes the new
toggleMaskoption forpassword(ctrl+t to reveal), localized yes/no parsing forconfirm, and prettified prompt/theme types for better IDE display.@inquirer/core@^12.0.1
inquirer@14.2.0
The umbrella package, bundling
@inquirer/promptsand@inquirer/core.What's new
Updated to
@inquirer/prompts@^8.7.0and@inquirer/core@^12.0.1.Includes the new
toggleMaskoption forpassword(ctrl+t to reveal), localized yes/no parsing forconfirm, and prettified prompt/theme types for better IDE display.
Included
@inquirer/core@^12.0.1@inquirer/prompts@^8.7.0@inquirer/type@^4.1.0@inquirer/ansi@^2.0.7
14.1.0
19 Aug 2026Updated to
@inquirer/prompts@^8.6.0and@inquirer/core@^12.0.0.Includes the new
initialValueoption forsearch, floating-point step fixes fornumber, and explicit-undefineddefault handling innumber/confirm/editor.@inquirer/core@^12.0.0
inquirer@14.1.0
The umbrella package, bundling
@inquirer/promptsand@inquirer/core.What's new
Updated to
@inquirer/prompts@^8.6.0and@inquirer/core@^12.0.0.Includes the new
initialValueoption forsearch, floating-point step fixes fornumber, and explicit-undefineddefault handling innumber/confirm/editor.
Note on
@inquirer/core@12inquirer@14.1.0depends on@inquirer/core@^12.0.0, which changed theuseStatesetter to accept a reducer function(currentValue) => nextValue. This is a type-level change for consumers of the core hook API (relevant if you build custom prompts with@inquirer/core). The built-in prompts are unaffected.Included
@inquirer/core@^12.0.0@inquirer/prompts@^8.6.0@inquirer/type@^4.0.7@inquirer/ansi@^2.0.7
14.0.2
31 May 2026Fix security warnings in external-editor
14.0.1
29 May 2026Rolled back
mute-streamdependency from v4 to v3 to undo breaking compatibleengines.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.
14.0.0
25 May 2026Fix (breaking): Inquirer will now throw when encountering non-registered prompt. Prior to this fix, Inquirer would default to
type: 'input'in such cases - this behaviour was misleading and made it harder to detect broken code when not using Typescript.Read env variable
INQUIRER_KEYBINDINGSto enablevimoremacskeybindings; 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.Line wraps would sometime cause the cursor to be mispositioned relative to the input.
Fix (breaking): Inquirer will now throw when encountering non-registered prompt. Prior to this fix, Inquirer would default to
type: 'input'in such cases - this behaviour was misleading and made it harder to detect broken code when not using Typescript.Read env variable
INQUIRER_KEYBINDINGSto enablevimoremacskeybindings; 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.Line wraps would sometime cause the cursor to be mispositioned relative to the input.
- 13.x
13.4.3
10 May 2026Windows rendering bug
Preserve exact literal types in
choicesarray (Typescript only)Allow input
defaultvalue to be of typeundefined(Typescript only)
Windows rendering bug
Preserve exact literal types in
choicesarray (Typescript only)Allow input
defaultvalue to be of typeundefined(Typescript only)Bump dependencies
13.4.2
19 Apr 2026Some Windows terminals would freeze and not react to keypresses.
13.4.1
7 Apr 2026Improve
expandprompt type inferrence.
13.4.0
6 Apr 2026Added a loading message while validating editor prompt input.
Type improvement: Better type inference with checkbox, search and expand prompts.
editorprompt not always properly handling editor path on windows.
13.3.2
15 Mar 2026Fix broken 1.3.1 release process.
13.3.1
15 Mar 2026Bump dependencies
13.3.0
22 Feb 2026Keypresses 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.
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.
Various new theme options to make all prompts content localizable.
Finally, see our new
@inquirer/i18npackage!13.2.5
16 Feb 2026@inquirer/input: Handle numeric default values
@inquirer/testing: Add E2E testing support for CLI applications
@inquirer/testing: auto-mock @inquirer/prompts barrel re-exports
What's Changed
@inquirer/input: Handle numeric default values
@inquirer/testing: Add E2E testing support for CLI applications
@inquirer/testing: auto-mock @inquirer/prompts barrel re-exports
@inquirer/testing: Prevent artificial line wrapping in test output
@inquirer/testing: Declare @inquirer/* packages as optional peerDependencies
@inquirer/testing: Handle SWC-style module namespace objects in wrapPrompt
13.2.4
14 Feb 2026@inquirer/input: Handle numeric default values
@inquirer/testing: Add E2E testing support for CLI applications
@inquirer/testing: auto-mock @inquirer/prompts barrel re-exports
What's Changed
@inquirer/input: Handle numeric default values
@inquirer/testing: Add E2E testing support for CLI applications
@inquirer/testing: auto-mock @inquirer/prompts barrel re-exports
@inquirer/testing: Prevent artificial line wrapping in test output
@inquirer/testing: Declare @inquirer/* packages as optional peerDependencies
13.2.3
14 Feb 2026Maintenance only: docs, tests, build or refactoring. Nothing changes in how you use it.
13.2.2
28 Jan 2026Typescript disallow
type: 'list'unless there's a plugin installed under that name. (listwas replaced byselectand marked as deprecated for a few released, v13.0.0 removed the alias.)
13.2.1
20 Jan 2026Regression: Previous
answersweren't provided to the validate functions as the second arguments.
13.2.0
11 Jan 2026search: Add support fordefault.rawlist: Add support fordescriptionof choices. That information is displayed under the list when the choice is highlighted.Bump dependencies
13.1.0
13 Dec 2025rawlistnow supportsdefaultoption.selectnow infer return type properly when passing achoicesarray of string literals.
13.0.2
2 Dec 2025Fix Typescript not discovering types when
moduleResolutionis set tocommonjs(you probably want to fix that in your project if it's still in your tsconfig)
13.0.1
17 Nov 202513.0.0
16 Nov 2025- deprecated
- deprecated
- deprecated
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.0Deprecated APIs Removed
The following deprecated APIs have been removed after being deprecated in previous releases:
listprompt alias removed (affectsinquirerpackage only)The
listalias has been removed from theinquirerpackage. This only impacts users of the legacyinquirerpackage, not users of@inquirer/promptsor 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'] } ]);helpModetheme 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:
- deprecated
- deprecated
- deprecated
instructionsconfig 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:
- deprecated
- deprecated
- deprecated
cancel()method removedThe
cancel()method on prompt return customPromisehas 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
styleTextInternal change: The project now uses Node.js built-in
util.styleText()instead of theyoctocolorspackage for terminal colors. This makes Inquirer smaller and reduces risks of vulnerabilities coming from transitive dependencies.- 12.x
12.11.1
12 Nov 2025Downgraded to mute-stream@2 to maintain Node 18 compatibility.
Allow passing a
Partial<{ ... }>type as pre-filled answers.
12.11.0
8 Nov 2025Feat
@inquirer/input: Now support simple RegExp validation withpattern/patternError.Bump dependencies
Feat
@inquirer/input: Now support simple RegExp validation withpattern/patternError.Bump dependencies
12.10.0
13 Oct 2025New 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
12.9.6
14 Sep 2025Reduce number of transitive dependencies
12.9.4
24 Aug 2025Remove "easter-egg" vim/emacs bindings conflicting with the type-to-search feature.
12.9.3
17 Aug 2025Fix Unix
yesnot properly being processed by the confirm prompt. (yes | node confirm-script.js)
12.9.2
13 Aug 2025Make
@types/nodean optional peer dependency.
12.9.1
8 Aug 2025Replace
external-editordependency with new@inquirer/external-editor. This remove the vulnerabletmptransitive dependency from the dependency tree.
12.9.0
28 Jul 2025Search prompt: New
instructionsconfig to allow localizing the help tips.
12.8.0
20 Jul 2025Select prompt: When pressing a number key, we'll ignore separators in counting the index of the item to jump to.
Checkbox prompt: When pressing a number key, we'll ignore separators in counting the index of the item to select.
12.7.0
1 Jul 2025-
inputprompt: Newprefilloption to control if thedefaultvalue is editable inline or only after pressingtab.12.6.2
23 May 2025Only updates dependencies, nothing else changes.
12.6.0
24 Apr 2025@inquirer/select: Added an
instructionsoption allowing to customize the messages in the help tips.@inquirer/rawlist: Arrow keys will now cycle through the option, just like the
@inquirer/selectprompt. Also added aloopoption to control the list loop behaviour when reaching the boundaries.
12.5.2
3 Apr 2025README: Add new sponsor
README: Add new sponsor
12.5.1
3 Apr 202512.5.0
15 Mar 2025Feat (
select): Introducetheme.indexModeto control displaying an index prefix in front of each choice. (defaults to hidden)Fix (
select): Improve search when number keys are pressed
12.4.3
8 Mar 2025Fix an issue where inquirer would throw if Node is ran with the new
--frozen-intrinsicsflag.
12.4.2
15 Feb 2025