NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #919 most downloaded on npm
Inquirer core TS types
Last release today
04 Oct 2026
Ships fairly regularly
a new release about every 6 weeks
Some releases are documented
notes for 24 of 51 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
52 releases · first in 2022
One column per quarter.
Nothing published for this version
Nothing published for this version
Prettify is now recursive, so makeTheme returns a fully flattened theme type (nested style intersections merged into one object) for better IDE displa
Prettify is now recursive, so makeTheme returns a fully flattened theme type (nested style intersections merged into one object) for better IDE display (#2239).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Improve Windows rendering to properly match terminal size
Improve Windows rendering to properly match terminal size
Update dependency to fix a LGPL license issue.
All prompts are now themable. See each prompts documentation about the options available.
message option of each prompt must now be a string. It could previously be an asynchronous function. See recipes for a migration option.Major rewrite of the core to rely on node's async hooks for better isolation of each prompts. Relying on this means each prompt context is fully isolated (previously it would rely on the module level context.)
We expect this update to be transparent to most. Though some custom event handlers within useEffect could stop working. If you find any issues there, first please let us know - there might be thing to improve internally to make it transparent. The manual fix will likely be to explicitly define events callback as an AsyncResource.
Let us know how this works for you!
The core codebase went through a major es5 to 6 refactor. As such, we're dropping support for Node 4.
This change will likely require changes to the community Plugins as es6 classes are enforcing more restriction (like constructor can only be invoked with new).
list, expand and rawlist prompts now accepts the value as default (previously it would only accept the choice index).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix help message not always disappearing after interaction in list prompt
ctrl-c) signal on UbuntuProperly respect the pageSize option when deciding whether to paginate or not.
Properly respect the pageSize option when deciding whether to paginate or not.
Fix extra whitespace being printed #506
Fix extra whitespace being printed #506
fix: preserve Value type inference in render()
render()Properly reset the prompt state when a SIGINT signal is emitted. (this fix bug where texts under the input wouldn't be cleared off the terminal after
Nothing published for this version
Tried to maintain backward compatibility as best as possible, but there could be type issue surface. Legacy API marked as deprecated.
Rewrite internals to support a clean promise API. Tried to maintain backward compatibility as best as possible, but there could be type issue surface. Legacy API marked as deprecated.
@inquirer/core.Paginator is deprecated in favour of the usePagination hook. This hook will always properly reflect the width of the output stream.This shouldn't cause issue for most, but if you had specific or uncommon use of the testing framework, this could be a breaking change.
Rewrote how raw input is handled. This shouldn't cause issue for most, but if you had specific or uncommon use of the testing framework, this could be a breaking change.
Major refactor of the core to allow multiple features:
input(...).cancel())Now includes a stricter answer parser. Prior to this change, the prompt would default to Yes on almost any input.
name with . are now expand in the answer object. e.g. name.sub would generate an answer object formatted as {name: {sub: 'answer'}}.expand prompt default value if not specified is now help.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
New required prompt config. Makes sure at least one choice is selected.
New features!
required prompt config. Makes sure at least one choice is selected.validate prompt config. Provide a function that'll validate the user selection with any logic you want (like enforcing a min or max selection amount.) Please use this config with parsimony since complicated validation scheme can lead to sub-optimal UX!Now supports the loop: false option. (This feature was available on inquirer, but not ported to new prompts yet)
loop: false option. (This feature was available on inquirer, but not ported to new prompts yet)Nothing published for this version
Nothing published for this version
Nothing published for this version
Now supports the loop: false option. (This feature was available on inquirer, but not ported to new prompts yet)
loop: false option. (This feature was available on inquirer, but not ported to new prompts yet)Nothing published for this version
Nothing published for this version
Now exposes the waitForUserInput option. Setting it to false will automatically launch the editor.
Now exposes the waitForUserInput option. Setting it to false will automatically launch the editor.
Be careful using this option as this mean the user will not have read the question/instruction before reaching the editor.
a and i keys to trigger select all and invert selection.editor prompt is now non blocking.filter functions are now surfaced to the user.Bugfix: Cursor position now reflected properly when using arrow keys.
Bugfix: Cursor position now reflected properly when using arrow keys.
Nothing published for this version
Nothing published for this version
Fix bug where options passed to Inquirer were mutated.
Fix list prompts being re-render each time enter key was pressed.
Correctly ignore validation on list prompts. (previously the function would be run and throw an exception)
Instead of validation, you can:
choices so you can filter out invalid choicesSeparators. That way, they'll be seen, but won't be selectable.Search now support autocomplete like behaviours - See documentation
@inquirer/core@9.1.0 adding support for { signal: AbortSignal } in the context options to programatically cancel a prompt.editor prompt to launch an editor allowing to easily enter multiline content - or edit file content.Nothing published for this version
Nothing published for this version
Allow falsy values as option value in expand prompt.
value in expand prompt.Release tooling package.
package pin <dependency> command rewrites caret/tilde ranges to exact versions across public packages; the release pipeline uses it to pin @inquirer/type in published manifests (#2247).package normalize command applies the fixups required to make manifests valid for npm publishing. It replaces the inline jq step that stripped workspace:* devDependencies (byte-identical output, now also covering the published tools/* packages).index.ts + command.ts, tests colocated); bin.ts only assembles the CLI.Fix issue where vim/emacs keybindings would conflict with the search term input when typing letters used to navigate through the list.
Fix issue where vim/emacs keybindings would conflict with the search term input when typing letters used to navigate through the list.
expand prompt to correctly use the value key as the prompt answer.expand prompt support the filter key.Make @types/node an optional peer dependency.
@types/node an optional peer dependency.Fix issue where typing would disallow the following
search({
...,
source: async (term: string = '') => {
...
},
});
space key instead of any keys.readline2 in favor of Node core version. This might fix some edge cases some users on windows encountered.Drop-in replacement for @inquirer/prompts with localized text.
New package - first release!
Drop-in replacement for @inquirer/prompts with localized text.
The whole inquirer API is now based on promises!
inquirer.prompt(questions).then(). There's no more callback function.this.async().filter is now always run before validate #122inquirer.prompt doesn't take a callback argument anymoreAnd various other minor fixes and cleanup to the code base.
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →